본문으로 건너뛰기

조건식 활용

if (조건식) : else :

파이썬의 '거짓'

0이 거짓임

파이썬의 '참'

0이 아니면 모두 참 1도 참이고 -10도 참임


참 코드
a = -10

if (a) :
print("참 입니다.")
else :
print("거짓 입니다.")
실행 결과
참 입니다.

거짓 코드
a = 0

if (a) :
print("참 입니다.")
else :
print("거짓 입니다.")
실행 결과
거짓 입니다.

들여쓰기!

실행문이 여러 개일 때는 반드시 들여쓰기를 해야 함

들여쓰기 에러 코드
a = 0

if (a):
print("참 입니다.")
print("리얼 입니다.")
print("참 리얼 입니다.")

else :
print("거짓 입니다.")
print("라이 입니다.")
print("거짓 라이 입니다.")

실행 결과
Error: invalid syntax

정상 코드
a = 0

if (a):
print("참 입니다.")
print("리얼 입니다.")
print("참 리얼 입니다.")

else :
print("거짓 입니다.")
print("라이 입니다.")
print("거짓 라이 입니다.")
실행 결과
거짓 입니다.
라이 입니다.
거짓 라이 입니다.



홀짝 게임 완성

간단한 홀짝 게임을 만들기 위한 단계입니다.

  1. 사용자 입력 받기 : 사용자로부터 '홀' 또는 '짝'을 입력 받습니다.
  2. 컴퓨터의 숫자 생성 : random 모듈을 사용하여 1과 100 사이의 무작위 숫자를 생성합니다.
  3. 홀짝 판별 : 컴퓨터가 생성한 숫자가 홀수인지 짝수인지 판별합니다.
  4. 결과 비교 및 출력 : 사용자의 선택과 컴퓨터의 숫자를 비교하여 결과를 출력합니다.
숫자로 홀수 짝수 비교
import random

number = random.randint(1, 100)
you = int(input("정수를 입력하세요."))

if ( number % 2 == you % 2 ) :
print("맞췄다!")
else :
print("못 맞췄다..")

print(f"생성된 랜덤 정수: {number}")
실행 결과
정수를 입력하세요. 13
못 맞췄다..
생성된 랜덤 정수 : 48
다른 문자를 입력하면..?
Traceback(most recent call last):
File“...”,line27,in<module>
You = int(input(“정수를 입력하세요.”))
VALUEERROR: invalid literal for int() with base 10:‘a’


정수만 입력 받는 방법
while(True) :
you = input("정수를 입력하세요.")

if not you.isnumeric() :
print("정수가 아닙니다.")
print("정수를 입력하세요.")
continue

break

you_number = int(you)
코드설명
input()- 보드로 입력한 값을 문자열로 반환
isnumeric()- 주어진 문자열의 모든 문자가 숫자인 경우 참을 반환함
- 그렇지 않은 경우 거짓을 반환
int()- 주어진 문자열을 정수로 반환

정수만 입력가능한 홀짝 게임
import random

number = random.randint(1, 100)
while(True) :
you = input("정수를 입력하세요.")

if not you.isnumeric():
print("정수가 아닙니다.")
print("정수를 입력하세요.")
continue

break

you_number = int(you)

if ( number % 2 == you_number % 2 ) :
print("이겼습니다.")
else :
print("졌습니다.")

print(f"생성된 랜덤 정수 : {number}")
실행 결과
정수를 입력하세요. a
정수가 아닙니다.
정수를 입력하세요.

정수를 입력하세요. 11
이겼습니다.
생성된 랜덤 정수 : 73

while(조건식) :

while(조건식)

조건식이 참이면 들여쓰기 한 문장을 실행하고 조건식이 거짓이면 실행하지 않음


참 코드
int game = 2

while (game):
게임 실행
실행 결과
game 이 참이므로 게임을 실행함

거짓 코드
int game = 0

while (game):
게임 실행
실행 결과
game 이 거짓이므로 게임을 실행하지 않음

게임을 5회만 실행 해보기
game = 5

while (game):
print("게임 실행...")
game = game - 1
실행 결과
게임 실행...
게임 실행...
게임 실행...
게임 실행...
게임 실행...

내가 이기면 win 변수를 증가, 내가 지면 lose 변수를 증가
import random
game = 3
win = 0
lose = 0

while(game):
number = random.randint(1, 100)

while(True):
input_num = input("정수를 입력하세요.")
if not input_num.isnumeric():
print("정수가 아닙니다.")
continue
break
game = game - 1

you_number = int(input_num)

if (number % 2 == you_number % 2):
print("내가 이겼다!")
win = win + 1
else:
print("내가 지다니..")
lose = lose + 1

print(f"생성된 랜덤 정수: {number}")

print(f"{win}{lose}패")
실행 결과
정수를 입력하세요.2
내가 지다니..
생성된 랜덤 정수: 59
정수를 입력하세요.3
내가 지다니..
생성된 랜덤 정수: 20
정수를 입력하세요.1
내가 지다니..
생성된 랜덤 정수: 22
0승 3패

= RESTART:

정수를 입력하세요.2
내가 지다니..
생성된 랜덤 정수: 17
정수를 입력하세요.2
내가 지다니..
생성된 랜덤 정수: 73
정수를 입력하세요.2
내가 이겼다!
생성된 랜덤 정수: 36
1승 2패


달러 환전하기

간단한 달러 환전 게임을 만들기 위해 절차는 아래와 같습니다
  1. 환전할 금액과 환율을 입력합니다.
  2. 몫을 구하는 연산과 나머지를 구하는 연산을 이용합니다.
  3. 환전할 금액을 사용자가 직접 입력하게 합니다.
  4. 환율을 사용자가 직접 입력하게 합니다.

환전 예제 1

  • 친구들과 미국으로 여행을 갑니다. 환율을 보니 1달러는 1146원 입니다.
  • 백만원으로 100달러 지폐를 몇 장 받을 수 있을까요?
  • 그리고, 돌려받는 돈은 얼마인가요?
100달러 환전
money = 1000000
dollar = 1146

hundred_dollar = money // ( dollar * 100 )
print(f"100 달러: {hundred_dollar} 장")

returned_money = money % dollar
print(f"돌려받은 돈: {returned_money} 원")
실행 결과
100 달러: 8 장
돌려받은 돈: 83200 원

환전 예제 2

  • 친구들과 미국으로 여행을 갑니다. 환율을 보니 1달러는 1146원 입니다.
  • 백만원으로 10달러, 5달러, 1달러 지폐를 각각 몇 장 받을 수 있나요?
  • 그리고, 돌려받는 돈은 얼마인가요?
[ 10, 5, 1 ] 달러 환전
total_money = 1000000
banknotes = [10, 5, 1]
exchange_rate = 1146

for note in banknotes:
count = total_money // (exchange_rate * note)
total_money -= exchange_rate * note * count
print(f"{note} 달러: {count} 장")

print(f"돌려받은 돈: {total_money} 원")
실행 결과
10 달러: 87 장
5 달러: 0 장
1 달러: 2 장
돌려받은 돈: 688

응용 문제

  • 환전 할 돈을 사용자가 직접 입력하게 수정해 보자
입력한 금액에서 [ 100, 10, 5, 1 ] 달러로 환전
banknotes = [100, 10, 5, 1]
exchange_rate = 1146

while(True) :
input_money = input("환전 할 금액을 입력하세요:")

if not input_money.isnumeric():
print("숫자를 입력해야 합니다")
continue
break

total_money = int(input_money)

for note in banknotes:
count = total_money // (exchange_rate * note)

if not count:
continue

total_money -= exchange_rate * note * count
print(f"{note} 달러: {count} 장")

print(f"돌려받은 돈: {total_money} 원")
실행 결과
환전 할 금액을 입력하세요:ㅇ
숫자를 입력해야 합니다
환전 할 금액을 입력하세요:1000000
100 달러: 8 장
10 달러: 7 장
1 달러: 2 장
돌려받은 돈: 688 원

= RESTART

환전 할 금액을 입력하세요:500000
100 달러: 4 장
10 달러: 3 장
5 달러: 1 장
1 달러: 1 장
돌려받은 돈: 344 원