Open utterances-bot opened 3 years ago
중첩조건문 첫번째 예제에서 else 안의 푸쉬업 개수 5개 아닌가요? sex = "boy" pushup = 8
if sex == "boy": if pushup >= 10: grade = "Pass" else: grade = "Fail" else: if pushup >= 5: grade = "Pass" else: grade = "Fail"
print(grade)
XA = input("자백을 했습니까? : ") XB = input("자백을 했습니까? : ")
if XA == "네": XA = True else: XA = False if XB == "네": XB = True else: XB = False
if XA == True: if XB == True: YA = 5 YB = 5 print("죄수A는 징역 {}년이고 죄수B는 징역 {}년이다.".format(YA,YB)) else: YA = 0 YB = 10 print("죄수A는 석방 죄수B는 징역 {}년이다.".format(YB)) else: if XB == True: YA = 10 YB = 0 print("죄수A는 징역 {}년이고 죄수B는 석방이다.".format(YA)) else: YA = 1 YB = 1 print("죄수A는 징역 {}년이고 죄수B는 징역 {}년이다.".format(YA,YB))
XA=input("A 자백했나요?:") XB=input("B 자백했나요?:")
if XA=="네": XA=True else: XA=False
if XB=="네": XB=True else: XB=False
if (XA)&(XB): print("둘다 5년")
if (XA==1)&(XB==0): YB=5 print("B가 {}년".format(YB))
if (XA==0)&(XB==1): VA=5 print("A가 {}년".format(YA))
if (XA==0)&(XB==0): print("둘다 1년")
c=int(input("수박의 무게는?"))
if c >= 10: print("1") elif c >= 7: print("2") elif c >= 4: print("3") else: print("4")
XA = True # True : 자백(배신) / False : 자백하지 않음 XB = False sA = 0 # A가 받는 형량 (년) sB = 0 # B가 받는 형량 (년)
if XA == True : if XB == True : sA = 5 sB = 5 print("A의 형량은 {0}년이고, B의 형량은 {1}입니다".format(sA,sB)) else : sA = 0 sB = 10 print("A는 바로 석방되고, B의 형량은 {0}입니다".format(sB)) else : if XB == True : sA = 10 sB = 0 print("A의 형량은 {0}년이고, B는 바로 석방됩니다".format(sB)) else : sA = 1 sB = 1 print("A의 형량은 {0}년이고, B의 형량은 {1}입니다".format(sA,sB))
연습 문제 2.5.5 xa = "자백" xb = "자백"
if xa == "자백": print("a: 자백함") else: print("a: 자백하지 않음")
if xb == "자백": print("b: 자백함") else: print("b: 자백하지 않음")
ya = [0,1,5,10] yb = [0,1,5,10]
if xa == "자백": if xb == "자백": print( "a는 {0[2]}년 복역" .format(ya)) print( "b는 {0[2]}년 복역" .format(yb)) else : print( "a는 {0[0]}년 복역" .format(ya)) print( "b는 {0[3]}년 복역" .format(yb)) else: if xb == "자백": print( "a는 {0[3]}년 복역" .format(ya)) print( "b는 {0[0]}년 복역" .format(yb)) else: print( "a는 {0[1]}년 복역" .format(ya)) print( "b는 {0[1]}년 복역" .format(yb))
2.5.2
y=2100
if y % 400 == 0 or y % 100 != 0 and y % 4 == 0:
print('윤년입니다.')
else:
print('윤년이 아닙니다.')
2.5.5 방법1
XA, XB = True, False
if XA and XB:
YA, YB = 5, 5
elif XA and not XB:
YA, YB = 0, 10
elif not XA and XB:
YA, YB = 10, 0
else:
YA, YB = 1, 1
방법2
XA, XB = True, False
jail = [[(1, 1), (10, 0)], [(0, 10), (5, 5)]]
YA, YB = jail[XA][XB]
출력
YA, YB
죄수의 딜레마
XA = input("A는 자백했나요?(네,아니오)") XA = bool(XA == "네") XB = input("B는 자백했나요?(네,아니오)") XB = bool(XB == "네") YA = 0 if XA and not XB else (5 if XA and XB else (10 if not XA and XB else 1)) YB = 0 if XB and not XA else (5 if XB and XA else (10 if not XB and XA else 1)) print("A는" + str(YA) + "년 복역합니다") print("B는" + str(YB) + "년 복역합니다")
XA = True XB = "confess"
if XA == True: if XB == "confess": YA = 5 YB = 5 else: YA = 0 YB = 10
if XA == False: if XB == "confess": YA = 10 YB = 0 else: YA = 1 YB = 1
print("죄수A는 징역 {}년이고, 죄수B는 징역 {}년 이다.".format(YA,YB))
xa = True xb = True
if xa == True : if xb == True: ya = 5 yb = 5 else : ya = 0 yb = 10 else : if xb == True : ya = 10 yb = 0 else : ya = 1 yb = 1
print(f"A의 형량은{ya},B의 형량은{yb}")
XA = eval(input('죄수 A 자백하시겠습니까? (자백하면 True, 그렇지 않으면 False)')) XB = eval(input('죄수 B 자백하시겠습니까? (자백하면 True, 그렇지 않으면 False)'))
if XA == True: if XB == True: YA, YB = 5, 5 elif XB == False: YA, YB = 0, 10 elif XA == False: if XB == True: YA, YB = 10, 0 elif XB == False: YA, YB = 1, 1
print('죄수 A의 형량은 {}년, 죄수 B의 형량은 {}년 입니다.'.format(YA, YB))
XA = False XB = True
YA = 0 YB = 0
if XA == True: if XB == XA: YA = 5 YB = 5 else: YA = 0 YB = 10 else: if XB == XA: YA = 1 YB = 1 else: YA = 10 YB = 0
print(YA, YB)
# 중복 조건문 활용
def sol1(XA, XB):
if XA == True :
if XB == True :
YA = 5
YB = 5
else :
YA = 0
YB = 10
else :
if XB == True :
YA = 10
YB = 0
else :
YA = 1
YB = 1
return YA, YB
# 논리 게이트 활용
# 1 = 자백, 0 = 자백 안함
# XA XB YA YB
# 0 0 1 1
# 0 1 10 0
# 1 0 0 10
# 1 1 5 5
# YA = 1*(XA' AND XB') + 10*XB*(XA XOR XB) + 5*(XA AND XB)
# YB는 위의 식에서 A와 B를 바꿔주면 된다.
def AND(a, b):
return a and b
def OR(a, b):
return a or b
def NOT(a):
return not a
def XOR(a, b):
return (a and not b) or (not a and b)
def sol2(XA, XB):
YA = 1*AND(NOT(XA), NOT(XB)) + 10*XB*XOR(XA, XB) + 5*AND(XA, XB)
YB = 1*AND(NOT(XB), NOT(XA)) + 10*XA*XOR(XB, XA) + 5*AND(XB, XA)
return YA, YB
print(sol1(True, True), sol2(True, True))
print(sol1(True, False), sol2(True, False))
print(sol1(False, True), sol2(False, True))
print(sol1(False, False), sol2(False, False))
2.5 파이썬 조건문 기초 — 데이터 사이언스 스쿨
https://datascienceschool.net/01%20python/02.05%20%ED%8C%8C%EC%9D%B4%EC%8D%AC%20%EC%A1%B0%EA%B1%B4%EB%AC%B8%20%EA%B8%B0%EC%B4%88.html