파이썬은 몬티 파이썬에서 따왔다

 

와! 유럽제비! 나도 모르는데!

 

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보다 커지니까 표시하고 꺼짐

 

 

 

 

+ Recent posts