파이썬/파이썬 입문 공부일지

파이썬 공부일지 12. if 조건문, 대화 프로그램 만들기!

Tomitom 2022. 10. 12. 14:59
반응형

 

false 로 변환되는 값

 

if 조건문의 매개변수에 불이 아닌 다른 값이 올 때는 자동으로 이를 불로 변환하게 됩니다. 

 

Flase 로 변환되는 값은 

None, 0, 0.0, 빈 컨테이너 입니다. 

컨테이너는 어떤 것을 포함한다는 뜻이에요. 그렇기 때문에 빈 컨테이너는 값이 없는 상태예요.

빈 문자열 (따옴표와 따옴표 사이. ""), 빈 바이트열, 빈 리스트, 빈 튜플, 빈 딕셔너리 등) 

 

이 이외에는 모두 True 로 변환됩니다. 

만약 어떤 데이터가 True 인지 False 인지 모를 경우에는 

 

bool( ) 함수를 씁니다. 

bool(x) : x가 뭘로 해석되는지 True 혹은 False 로 알려줍니다. 

 


 

pass 키워드

 

나중을 위해서 비워두는 구문입니다. 가령 프로그래밍을 하며 전체 골격을 잡아 놓고 세부 사항을 입력한다고 할 때 

if 조건문을 입력한 뒤에 어떤 결과를 출력할지 정해지지 않으면 실행자체가 되지 않습니다. 

그럴 때 pass 키워드를 입력하면 아무일도 벌어지지 않고 미구현 상태로 저장해두는 것입니다. 

즉, '진짜로 아무것도 안함' 또는 ' 곧 개발하겠음' 의 상태예요.

 

age = 20 

if age < 25 : 

     pass

 

만약 pass 키워드를 입력해두고도 잊어버리고 미구현 상태라면

pass 해둔 것을 잊어버리지 않도록 강제로 오류를 발생시키는 방법도 있습니다. 

raise NotImplementedError 를 사용하면 "아직 구현하지 않은 부분입니다!"를 강제로 발생시키는 거예요. 

 

코드를 실행하면 정상적으로 실행되다가 미구현 구역에 들어서는 순간에 NotImplementedError 오류를 발생시키기 때문에 잊어버리지 않을 수 있겠죠. 

 

raise 란 일부러 에러 내기  입니다. 

 

number = int(input ("정수 입력: "))

if number > 0 : 

    raise NotImplementedError       # 아직 미구현 상태. 이 부분에서 NotImplementedError 오류가 발생합니다. 

 

 

여기까지 확인한 뒤에지 지금까지 본 if 구문들을 정리해볼게요. 

 

else 구문 if 조건문 뒤에 사용, if 조건문의 조건이 거짓일 때 실행됩니다.
elif 구문 if 조건문과 else 구문 사이에 입력하며, 여러 개의 조건문을 연결해서 사용할 때 적절합니다.
False 값 if 조건문의 조건식에서 False 로 변환되는 값은 None, 0, 0.0, 빈 컨테이너 입니다. 
pass 키워드 프로그래밍의 전체 골격을 잡기 위해서, 아무것도 실행하지 않는 미구현 상태로 넘어간다는 키워드입니다. 

 

그럼 지금까지 배운 것을 바탕으로 간단한 대화 프로그램을 만들어볼게요.

 

안녕 혹은 안녕하세요 처럼 '안녕' 이 들어가는 입력에 '안녕하세요' 를 대답하거나 

몇 시냐는 질문에 시간을 대답할 수 있는 대화 프로그램이에요. 

입력을 받고 in 연산자를 이용해서 대답을 받은 문장에 어떤 단어가 포함되어 있는지를 체크하면 쉽게 할 수 있어요. 

 

print("당신과 대화를 하겠다.")

 

자 만들어 봅시다. 


import datetime
now = datetime.datetime.now()

 

몇 시인지를 대답해주기 위해서 프로그램에 import 함수를 통해 현재 시간에 대한 자료를 받아올게요.

그럼 이제 코딩의 사전 세팅 완료. 

입력받을 수 있는 input 입력창을 만들고


talk = input("할 말이 있는가?   > ")

 

이곳에 입력하는 것은 talk 이라고 하는 변수에 저장했어요. 

그 뒤에는 in 연산자를 통해서 대답하려는 단어가 포함된 내용에 대해 답을 작성하는 식으로 만듭니다. 

if "안녕" in talk: 
    print("안녕 못해, 졸려.")
elif "배고파" in talk:
    print("밥은?")
elif ("지금" and "몇 시" in talk) or ("지금" and "몇시" in talk):
    print("지금은 {}시 {}분이야.".format(now.hour, now.minute))

 

만약 현재 지정된 대화 외의 다른 말을 입력하면 입력한 말을 고대로 다시 말하도록 해놓을게요. 

 

else : 
    print(talk)

 

짠. 

 

조금씩 재미를 느낍니다..

 

 

 

그럼 이제 실행해보겠습니다.

 

똑똑하게 잘 대답해주네요... 이런 식으로 정말정말 간단한 키워드식 대화 프로그램을 만들었어요. 

이 다음으로는 어떤 값을 입력했을 때 해당 값으로 나누어 떨어지는 지 확인할 수 있는 프로그램을 만들어볼게요. 

 

숫자를 입력하면 그 숫자가 2, 3, 4, 5로 나누어서 떨어지는지 확인하고 출력하는 프로그램이에요. 

ex)

정수를 입력해주세요 : 234897568
234897568 는 2로 나누어 떨어지는 숫자입니다.     
234897568 는 3로 나누어 떨어지지 않는 숫자입니다.
234897568 는 4로 나누어 떨어지는 숫자입니다.     
234897568 는 4로 나누어 떨어지지 않는 숫자입니다.

 

이렇게요.

그럼 하단에 코드를 작성해볼게요. 

 


print("숫자가 나누어 떨어지는지 보자.")
number = int(input("정수를 입력해주세요 : "))

if number % 2 == 0 : 
    print(number,"는 2로 나누어 떨어지는 숫자입니다.")
else : 
    print(number,"는 2로 나누어 떨어지지 않는 숫자입니다.")

if number % 3 == 0 : 
    print(number,"는 3로 나누어 떨어지는 숫자입니다.")
else : 
    print(number,"는 3로 나누어 떨어지지 않는 숫자입니다.")

if number % 4 == 0 :
    print(number,"는 4로 나누어 떨어지는 숫자입니다.")
else : 
    print(number,"는 4로 나누어 떨어지지 않는 숫자입니다.")

if number % 5 == 0 :
    print(number,"는 5로 나누어 떨어지는 숫자입니다.")
else : 
    print(number,"는 4로 나누어 떨어지지 않는 숫자입니다.")

노가다..

 

값을 계산해볼게요.

 

 

 

되넹..

 

짠!

여기까지 if문을 이용해서 간단한 프로그램을 코딩해봤어요. 

조건문은 앞으로도 많이 쓰인다고 하니까 확실하게 공부해두려구요. 

아자자~ 파이팅! 

반응형