제로베이스 데이터 취업 스쿨 1주차 스터디노트 3호
그냥 치기만 하면 다 되는 느낌이다.
a, b, c = 1, 2, 3 # a, b, c에 각각 1, 2, 3을 할당
nums = 4, 5, 6 # nums에 tuple (4, 5, 6)을 할당
print(type(nums), nums) # <class 'tuple'> (4, 5, 6)
for num in 7, 8, 9:
print(num, end=" ")
# 7 8 9
별개로 할당했는데 id가 같다고...?
띠용!! PyCharm에서는 마지막 line이 True로 나오고 Colab에서는 False로 나옴 ㄷㄷ
(추측주의) Colab의 jupyter notebook은 그 특성으로 인해 다르게 작동하는 방식인 것으로 보임.
너무 신기하지만 매우 쓸모없는 지식, 너신매쓸...
nums = 1, 2, 3
print(type(nums))
print(nums)
new_nums = (1, 2, 3)
print(type(new_nums))
print(new_nums)
print(nums == new_nums) # 이건 True일 수 있지
print(id(nums) == id(new_nums)) # 근데 이것까지 True라고?
# 데이터가 숫자라서 그런가 싶어서 string으로도 변경했는데 여전히 True
같은 값이면 새로운 데이터를 메모리에 할당하는 것이 아니라 메모리에서 찾아오는 방식인건가? 원인은 모르지만 신기하기만 한...
# 기존의 tuple을 list로 변경하여 동일한 값으로 만들었을 때에는 id값이 다르다.
y = 1, 2, 3, 4
x = 1, 2, 3
x = list(x)
x.append(4)
x = tuple(x)
print(id(x) == id(y)) # False
class Human:
def __init__(self, name):
self.name = name
dict_ex = {}
for name in "John", "Harry", "Matthew":
new_human = Human(name)
dict_ex[new_human] = 0
# dictionary도 iterate 가능
for key in dict_ex:
print(key)
# 같은 결과의 iteration이지만, iterate 대상이 다름 (dict_key라는 class)
for key in dict_ex.keys():
print(key)
# 키 말고 값을 받아올 수 있음
for value in dict_ex.values():
print(value)
# 동시에 받아올 수도 있음
for key, value in dict_ex.items():
print(key, value)
# parameter(매개변수)로 사용 시
def print_items(*items):
print(type(items)) # 튜플임
for item in items:
print(item)
def print_info(name, price, on_sale):
on_sale_str = "할인 중!" if on_sale else "비할인품목"
print(f"{name}의 가격은 {price}입니다.")
print(on_sale_str)
# argument(인수)로 사용 시
tup_ex = "라면", 500, False
list_ex = ["햇반", 1200, True]
dict_ex = { "name": "야끼소바", "price": 3500, "on_sale": False }
print_info(*tup_ex) # 정상작동
print_info(*list_ex) # 정상작동
print_info(**dict_ex) # 얘는 2개 필요, 이유는 모르겠음...