if 조건문 질문 : if i == "몇 시야?" or "지금 몇 시야?" or "현재 시간 알려줘."
조회수 698회
import datetime
import sys
start_time = datetime.datetime.now()
def 비트박스():
print("북치기박치기")
i = input("시리를 부르셨나요?[네/아니요]")
if i == "네":
print("듣고 있어요....")
input("입력하세요=>")
if i == "몇 시야?" or "지금 몇 시야?" or "현재 시간 알려줘." or "몇 시니?" or "지금 몇 시니?":
print(start_time)
if i == "비트박스 해봐":
print({비트박스})
elif i == "아니요":
print("알겠습니다")
sys.exit()
라는 코드를 작성했는데요. 저의 의도는 입력하세요 후에 "몇 시야?"와 "비트박스 해봐"를 각각 입력하면 실행되게 하고 싶었습니다. 그런데 계속 비트박스 해봐 라고 입력해도 시간만 출력되네요. 도움 주시면 감사하겠습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
우선 파이썬은 들여쓰기를 잘 지켜야 하는 언어입니다.
작성하신 코드는 그러한 규칙을 잘 지키지 않아서 의도대로 동작하지 않을거예요.
그러한 부분들을 잘 수정하셨다고 한다면, 그 이후에 해결해야 하는 가장 중요한 문제는
input("입력하세요=>")
를 통해 입력받은 값을 저장하는 변수가 없다는 점입니다.위와 같이 작성하게 되면
i
는i = input("시리를 부르셨나요?[네/아니요]")
에 입력하신 값만 저장하게 됩니다.그래서 비트박스에 대한 출력문이 실행되지 않는 것입니다.
그런데 시간은 왜 출력이 되는가 하면
if i == "몇 시야?" or "지금 몇 시야?" or "현재 시간 알려줘." or "몇 시니?" or "지금 몇 시니?":
라는 조건문이 오류를 발생시키지 않을 뿐 잘못된 코드이기 때문입니다.
조건문은 사람들이 직관적으로 생각하는 대로
a == 1 or 2 or 3
이라고 작성한다고 해서 a를 1, 2, 3 모두와 비교해 주는 것이 아닙니다.컴퓨터가 알아들을 수 있도록 하나하나 직접 비교해 주셔야 합니다.
간단한 부분이니, 파이썬 문법을 제대로 공부하신 후에 다시 만들어 보시는 게 좋을 듯 싶습니다.
댓글 입력