파이썬은 몬티 파이썬에서 따왔다
와! 유럽제비! 나도 모르는데!
1. 리스트와 딕셔너리
1.1 리스트란?
리스트 만든다. ['a','b','c']
리스트의 첫번째를 부르려면 print(a_list[0])
0,1,2,3,4로 0부터 시작함.
' ' 이 붙는 문자열 뿐만 아니라 숫자, true/false도 넣는다
리스트도 넣을 수 있는데
a_list = [2,'배',false,['사과','감']] 해도 먹힌다
이 경우 리스트 안의 리스트의 '감'을 print 하려면
print(a_list[3][1])
1.2 명령어로 리스트 추가 등 작업하기

이런 식으로 리스트가 있을 때, 위의 리스트를 손으로 수정하지 않아도
appenf를 사용하면 print(a-list)했을때 프린트에 표시되는 리스트에는
99가 포함되어있다.
그리고 리스트도 다른 이름으로 만들 수 있다 ex: result = a_list하면 result가 리스트 대용을 쓰인다
변칙적인것이 -1번째 항목을 찍어볼 수 있다. 0부터 시작하는 양수만 지정하는게 맞지만
만약 a_list = [1.2.3.4.5] 하고 b=a_list[-1]
print(b)하면 마지막 내용물인 5가 뜬다
a_list.sort 리스트의 내용물을 순서대로 정리한다
뒤에(reverse=True)를 붙이면 거꾸로
1.3 내용물 서치
내용물을 찾아보려면-아마 위에처럼 명령어로 쑤셔넣으면 코드에는 안보이니까 쓰는 것 같음
어쩌면 너무 많이 넣을 수도 있으니까
a_list = [1.2.3.4.5]
result = (5 in a_list)
print(result) 하면 트루가 뜬다, 있으니까
없으면 false
1.4 db에 자주쓰는 딕셔너리
a_dict = {'name' : 'bob', 'age' : '27'}
여기서 이름과 나이는 데이터로 들어가는 그런거 아니다
네임을 key, bob을 value라 하여 저장하는 것
물론 저기서 순서도 없다
이름을 추출하려면 print(a_dict =['name' ])
물론 여기도 value에 리스트를 넣을 수 있다
도중 추가 시에는 그냥 넣자 ex a_dict['height'] = 180
하면 래 키로 헤이트, 벨류로 180이 들어감
리스트에도 딕셔너리를 내용물로서 많이 넣을 수 있는데, 사실상 이게 가장 많이 쓰는 모양
예로 위의 리스트 이름을 피플로, 내용물로 딕셔너리 양식을 그대로 쓰고 저 밥 어쩌구가 두번째 내용물(딕셔너리)일때
print(people[1]['age']) 하면 27이 너옿ㄹ것
퀴즈1. 스미스 과학점수 출력하기
people = [
{'name': 'bob', 'age': 20, 'score':{'math':90,'science':70}},
{'name': 'carry', 'age': 38, 'score':{'math':40,'science':72}},
{'name': 'smith', 'age': 28, 'score':{'math':80,'science':90}},
{'name': 'john', 'age': 34, 'score':{'math':75,'science':100}}
]
print(people[2]['score']['science'])
맞았음
2.파이썬 연산과 문자열
' '면 내용물 문자열 취급
'2'와 '2'의 합은 print하면 22
print(a+b) 더하기
print(a-b) 빼기
print(a*b) 곱
print(a/b) 나눗셈
print(a%b) 나누고 나머지
print(a**b) 제곱
print(a//b) 몫
몫은 국내 용어를 몰라서 어려웠는데
만약 100/3 하면 33.3333333333...........이지만
100//3 하면 33 나오는거
2.1 기타
변수에 문자, 숫자, true/false 다 넣을 수 있다
심지어 3>2넣으면 트루 뜸
2.2 새로 안 것
str 내용물을 숫자로 바꾼다, 특히'123'같이 문자가 된거
한번 해봤는데
a = '2'
b = 2
print(a+b)
하면
TypeError: can only concatenate str (not "int") to str 뜬다
하나는ㄴ 숫자고 하나는 문자열이라서
str(2)는 '2'랑 같음
2.3 문자열 건드리기
first_name = "Harry"
last_name = "Potter"
first_name + last_name # HarryPotter
first_name + " " + last_name # Harry Potter
a = "3"
b = "5"
a + b # 35
문자열 끼리는 그냥 합침, 더하기 아님
a = "3"
a + 5 # 문자열과 숫자형은 더할 수 없어서 에러!
위에 했던거임
문자열의 길이는 len() 함수를 써서 구할 수 있습니다!
print(len("abcde")) # 5
print(len("Hello, Sparta!")) # 14
print(len("안녕하세요.")) # 6
렌을 넣으면 문자열 길이 구함
.2.4 [:}이란?
a='1234567890' 하면
b=a[:3]; c=a[7:]; d=a[4:6]
프린트하면 '123'; '7890','456'
2.5 split
# 이메일 주소에서 도메인 'gmail'만 추출하기
myemail = 'test@gmail.com'
result = myemail.split('@') # ['test','gmail.com']
정의해놓고 @기준으로 찢는거임
result[0] # test (리스트의 첫번째 요소)
result[1] # gmail.com (리스트의 두 번째 요소
필요한건 [1]
result2 = result[1].split('.') # ['gmail','com']
그리고 .기준으로 찢으면
result2[0] # gmail -> 우리가 알고 싶었던 것
result2[1] # com
# 한 줄로 한 번에!
myemail.split('@')[1].split('.')[0]
이렇게 지메일만 찢어냈음
퀴즈2
a = 'sparta'
b = a
print(b)
여기서 두번째 줄 a만 고쳐서 spa만 나오게 하려면
a[:3]
스플릿 기준값이 여럿일때
예로 전화번호
a= '02-123-4567' 해서 02만 빼려면
b= a.split('-')[0]인데 -가 2개니까 먼저 찢고 그중 0번째로 감
3. 조건문
ex
돈=?
if 돈>3000:
print('택시타')
elif 돈>1200:
print('버스타')
else:
print('걸어가')
보고 이해는 했지만 귀찮았다
4.반복문

하면

한다는 거임


위와 동일
만약 위에서

로 깔끔하게 뗀다 치면

이렇게 나옴
조건문도 넣으면


깔끔
enumerate문도 알아보자

들어갈게 더 많다

앞에 번호를 쫙 적어줌

프린트 밑에 넣어준다면?

여기서 끊김
여기서 브레이크는 i값인 머리숫자가 3보다 커지면 '그때' 표시를 종료해라
즉 3번까지는 같으니까 표시, 4는 3보다 커지니까 표시하고 꺼짐
'내배캠 TIL WIL > 내배캠 til' 카테고리의 다른 글
| 내배캠 TIL 8일차 (시간복잡도 etc) (0) | 2022.11.23 |
|---|---|
| 내배캠 7일차 TIL (js와 node) (0) | 2022.11.22 |
| 내배캠 TIL 5일차 (11/18) (0) | 2022.11.21 |
| 내배캠 TIL 4일차 (0) | 2022.11.17 |
| 내배캠 3일차 TIL (html의 audio태그) (0) | 2022.11.16 |