print(0.1 * 3 == 0.3) # False
print(0.1 * 3) # 0.30000000000000004
decimal.Decimal
사용from decimal import Decimal
dec = Decimal('0.1') * 3
print(dec == Decimal('0.3')) # True
print(dec) # 0.3
math.isclose
사용from math import isclose
print(isclose(0.1*3, 0.3)) # True
def add(a, b):
return a + b
five = 5
six = 6
total = add(five, six)
a
, b
five
, six
import pickle
info = {'a': 1, 'b': 2, 'c': 3}
with open('info.pkl', 'wb') as f:
pickle.dump(info, f)
import pickle
with open('info.pkl', 'rb') as f:
info = pickle.load(f)
하나의 경우(A가 당첨일 경우)만 생각해보도록 하자
import random
doors = ['A', 'B', 'C']
# 당첨인 문을 랜덤으로 하나 정하기
prize = random.sample(doors, 1)[0]
print(f'당첨인 문 : {prize}')
# 답 선택하기
pick = random.sample(doors, 1)[0]
print(f'내가 선택한 문 : {pick}')
# 당첨 문과 선택한 문의 집합
tmp_set = {prize, pick}
# 당첨 문과 선택한 문을 제외한 문 열기
remain = list(set(doors) - tmp_set)
open_door = random.sample(remain, 1)[0]
print(f'진행자가 연 문 : {open_door}')
# 답 바꿀 경우 최종적으로 선택하게 되는 문
# 문 중에서 진행자가 연 문과 내가 고른 문을 제외한 나머지 문
switch = list(set(doors) - set(open_door) - set(pick))[0]
print(f'바꾼 답 : {switch}')
win_without_switch = []
win_with_switch = []
# 답을 유지하고 당첨되었을 경우
if pick == prize:
win_without_switch.append(1)
# 답을 바꾸고 당첨되었을 경우
if switch == prize:
win_with_switch.append(1)
print(f'답 유지하고 당첨 : {win_without_switch}')
print(f'답 바꾸고 당첨 : {win_with_switch}')
당첨인 문 : B
내가 선택한 문 : A
진행자가 연 문 : C
바꾼 답 : B
답 유지하고 당첨 : []
답 바꾸고 당첨 : [1]
win_without_switch = []
win_with_switch = []
doors = ['A', 'B', 'C']
for x in range(1_000_000):
# 당첨인 문 & 내가 선택한 문
prize = random.sample(doors, 1)[0]
pick = random.sample(doors, 1)[0]
tmp_set = {prize, pick}
remain = list(set(doors) - tmp_set)
open_door = random.sample(remain, 1)[0]
switch = list(set(doors) - set(open_door) - set(pick))[0]
# 답을 유지하고 당첨되었을 경우
if pick == prize:
win_without_switch.append(1)
# 답을 바꾸고 당첨되었을 경우
if switch == prize:
win_with_switch.append(1)
print(f'답 유지하고 당첨될 확률 : {len(win_without_switch)} / 1,000,000')
print(f'답 바꾸고 당첨될 확률 : {len(win_with_switch)} / 1,000,000')
답 유지하고 당첨될 확률 : 333626 / 1,000,000
답 바꾸고 당첨될 확률 : 666374 / 1,000,000
j
: 파이썬에서의 허수 표현>> 3j + 9j # 12j