print('Hello World!')
# Hello world!를 출력하는 명령어
a = 1
# 1을 a에 넣는다.
print(a)
# 1 출력
b = a
# a에 들어 있는 값인 1을 b에 넣는다.
print(b)
# 1 출력
a = 2
# a에 2라는 새로운 값을 넣는다.
print(a, b)
# 2 1 출력
#숫자형 연산
a = 2
b = 1
a+b # 3
a-b # 1
a*b # 2
a/b # 2
a+3*b # 13 (사칙연산 순서대로 계산)
(a+3)*b # 20 (소괄호를 이용해서 먼저 계산할 부분 표시 가능)
a//b # (몫 연산)
a%b # (나머지 연산)
a**b # (거듭제곱)
# -----------------------------------------------------------------
a = 1
a = a + 2 # 1에 2을 더한 값을 다시 a에 저장
print(a) # 3
a += 3 # 위랑 같은 의미
Bool 자료형
참/거짓(True/False)을 나타내는 불(Boolean) 자료형
문자형
a = "aa"
b = 'aa'
a = 1
b = "a"
c = a
print(a, b, c) # 1 "a" 1 # 따옴표로 구분해서 써야함
# 문자열 연산
first_name = "Fried"
last_name = "Chicken"
first_name + last_name # FriedChicken 출력
first_name + " " + last_name # Fried Chicken 출력
a = "1"
b = "2"
a + b # 12 출력
# 문자열과 숫자형은 더할 수 없음
a = "3"
a + 5 # 에러
# 문자열의 길이는 len() 함수를 써서 구할 수 있음
print(len("abcde")) # 5
print(len("1234567")) # 7
# 인덱싱과 슬라이싱
f="abcdefghijklmnopqrstuvwxyz"
f[1] # b 파이썬은 숫자를 0부터 센다
f[4:15] # efghijklmno f[4]부터 f[15] 전까지
f[8:] # ijklmnopqrstuvwxyz f[8]부터 끝까지
f[:7] # abcdefg 시작부터 f[7] 전까지
f[:] # abcdefghijklmnopqrstuvwxyz 처음부터 끝까지
# 스플릿
url = 'velog.io'
url_name = url.split('.')[0]
print(url_name) # velog 출력
a = [1, 2, 3]
b = [1, "a", 2, 3]
c = []
d = list()
e = [1, 2, 3, [1, 2, 3]] # 리스트 안에 리스트도 가능함
# 마찬가지로 길이는 len() 함수를 써서 구할 수 있음
a = [1, 2, 3]
print(len(a)) # 3
b = [1, 2, [1, 2], 3]
print(len(b)) # 4
# 역시 인덱싱과 슬리이싱도 사용가능
a = [1, 2, 3, 4]
print(a[3]) # 4
print(a[1:3]) # [2, 3]
print(a[-1]) # 4 (맨 마지막 것)
# 덧붙이기
a = [1, 2, 3]
a.append(5)
print(a) # [1, 2, 3, 4]
a.append([1, 2])
print(a) # [1, 2, 3, 4, [1, 2]]
# 정렬하기
a = [2, 1, 3]
a.sort()
print(a) # [1, 2, 3]
a.sort(reverse=True)
print(a) # [3, 2, 1]
# 요소가 리스트 안에 있나 확인하기
a = [2, 1, 3, "1", 4]
print(1 in a) # True
print("2" in a) # False
print(0 not in a) # True
person = {"name":"Genji", "age": 35}
print(person["name"])
# 값을 업데이트하거나 새로운 쌍의 자료 추가 가능
person = {"name":"Genji", "age": 35}
# 업데이트
person["name"] = "Sgt.Kim"
person["age"] = "no info"
print(person) # {'name': 'Sgt.Kim', 'age': 'no info'}
# 자료 추가
person["height"] = 185
print(person) # {'name': 'Sgt.Kim', 'age': 35, 'height': 185}
# 딕셔너리 안 해당 키 유무 확인
person = {"name":"Genji", "age": 35}
print("name" in person) # True
print("email" in person) # False
print("phone" not in person) # True
age = 27
if age > 19:
print("성인입니다.")
elif age > 12: # 다양한 조건을 판단할 때 사용
print("청소년입니다.")
else: # 조건을 만족하지 않는 다른 코드를 실행하고 싶을 때 쓰는 문법
print("어린이입니다.")
# if문 단축 (if와 else만 있을때 사용)
# (참일 때 값) if (조건) else (거짓일 때 값)
num = 1
if num%2 == 0:
print("짝수")
else:
print("홀수") # 홀수 출력
print("짝수" if num%2 == 0 else "홀수") # 홀수 출력, 출력 값이 같음
for 문, 프로그램 내에서 똑같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어하는 명령문
a = [1,2,3,4,5,6,7]
for num in a:
print(num) # 1부터7까지 순서대로 출력
def로 정의함, 반복적으로 사용하는 코드들에 이름을 붙여놓은 것
def hungry():
print("배고파")
print("치킨 먹고싶다.")
hungry() # 배고파 치킨먹고싶다 출력
# 조건문 사용
def bus_fare(age):
if age > 19:
print("성인입니다.")
print('1450원')
elif age > 12:
print("청소년입니다.")
print('1010원')
else:
print("어린이입니다.")
print('730원')
bus_fare(24) # 성인입니다. 1450원 출력
bus_fare(19) # 청소년입니다. 1010원 출력
bus_fare(7) # 어린이입니다. 730원 출력
a = (1,2,3)
a[0] = 4 # 리스트와 비슷하지만 a[0]값을 바꾸려하면 에러남
# 리스트와 튜플로 딕셔너리 '비슷하게' 만들어 사용해야 할 때 많이 사용
a = [('Genji','35'),('Sgt.Kim','no info'),('D.Va','19')]
a = [1,2,3,4,5,3,4,2,1,2,4,2,3,1,4,1,5,1]
print(set(a)) # {1, 2, 3, 4, 5} 출력
# 교집합 / 합집합 / 차집합도 구할 수 있음
a = [1,2,3,4,5,3,4,2,1,0,-1]
b = [2,4,2,3,1,4,1,5,1,6,7]
a_set = set(a)
b_set = set(b)
print(a_set & b_set) # 교집합 {1, 2, 3, 4, 5} 출력
print(a_set | b_set) # 합집합 {0, 1, 2, 3, 4, 5, 6, 7, -1} 출력
print(a_set - b_set) # 차집합 {0, -1} 출력
변수로 더 직관적인 문자열 만들기 (f'문자열')
scores = [
{'name':'영수','score':70},
{'name':'영희','score':65},
{'name':'기찬','score':75},
{'name':'희수','score':23},
{'name':'서경','score':99},
{'name':'미주','score':100},
{'name':'병태','score':32}
]
for s in scores:
name = s['name']
score = str(s['score'])
print(name+'는 '+score+'점 입니다') # 기존 방식 하나하나 지정해줘야함, 변수가 많아지면 헷갈림
for s in scores:
name = s['name']
score = str(s['score'])
print(f'{name}는 {score}점입니다') # f-string을 사용해 간결하게 표현, 결과값 같음
scores = [
{'name':'영수','score':70},
{'name':'영희','score':65},
{'name':'기찬','score':75},
{'name':'희수'},
{'name':'서경','score':99},
{'name':'미주','score':100},
{'name':'병태','score':32}
]
for score in scores:
try:
if score['score'] > 70:
print (score['name'])
except:
name = score['name']
print(f'{name} - 에러') # 기찬 희수 - 에러 서경 미주 순서로 출력, try-except 미사용시 에러
# map
scores = [
{'name':'영수','score':70},
{'name':'영희','score':65},
{'name':'기찬','score':75},
{'name':'희수','score':23},
{'name':'서경','score':99},
{'name':'미주','score':100},
{'name':'병태','score':32}
]
def check_score(name):
return '우수' if name['score'] > 70 else '미달'
result = map(check_score, scores)
print(list(result)) # ['미달', '미달', '우수', '미달', '우수', '우수', '미달'] 출력, 결과값 동일
# lambda 식 사용시
result = map(lambda name: ('우수' if name['score'] > 70 else '미달'), scores)
print(list(result)) # ['미달', '미달', '우수', '미달', '우수', '우수', '미달'] 출력, 결과값 동일
# filter map과 유사한데, True인 것들만 뽑기
result = filter(lambda name: name['score'] > 80, scores)
print(list(result))
# [{'name': '서경', 'score': 99}, {'name': '미주', 'score': 100}] 출력