[python] input

May·2022년 6월 24일
0

python_기초

목록 보기
9/11

🦌 input

: 콘솔을 통해 사용자로부터 정보를 받을 수 있다
input 함수를 통해 사용자 입력을 받는다!

👉 구조

input(파라미터)
# 파라미터 안에 문자열을 넣을 수도 있다

👉 예시

input("이름을 입력하세요: ")

실행하면

파라미터 내에 입력했던 문자열이 콘솔에 뜨고, 잠시 프로그램이 중단된다.
(사용자에게 입력을 받으려고!)

나는 최고 라는 원하는 값 입력 후 엔터 치면 프로그램이 종료된다.

👉 활용

name = input("이름을 입력하세요: ")
print(name)

위 프로그램을 실행하게 되면,
1) 콘솔에 '이름을 입력하세요: ' 등장
2) 사용자가 콘솔에 원하는 값 입력
3) 그 값이 input("이름을 입력하세요: ") 자리에 리턴되어 변수 name에 지정
4) name print

결과

💢 주의
input 함수가 받는 사용자 입력은 항상 문자열이다!

x = input("숫자를 입력하세요: ")
print(x + 5)

결과

위 프로그램을 실행하고 콘솔에 숫자를 입력하게 되면 오류가 난다.
왜? 🤔 사용자가 입력한 숫자는 문자열이기 때문!
궁금하다면 여기를 눌러보세요!

해결하기 위해선 input의 리턴값을 정수형으로 변환시키기!

x = 👉int👈(input("숫자를 입력하세요: "))
print(x + 5)

결과

자-알 나온다

🦌 문제

🚮 숫자 맞히기 게임 🚮

이런 게임은 술자리에서만 하자... ...

''' 
😵‍ 해야할 일
*번 남았습니다. -1씩 해줄 변수
input 리턴된 값(user_num)과 비교해줄 값(ran_num)을 비교할 (if)코드
if 코드에서 리턴된값과 비교해줄 값이 맞으면
     print("축하합니다. i번만에 숫자를 맞히셨습니다")
'''
import random
ran_num = random.randint(1, 20)  # 1과 20사이의 랜덤 정수를 ran_num에 넘김

i = 4
j = 1
if i > 0:
    while i > 0:  # i < 0으로 또 시간 허비
        user_num = int(input(f"기회가 {i}번 남았습니다. 1-20 사이의 숫자를 맞혀보세요: "))
        if user_num == ran_num:
            print(f"축하합니다. {j}번만에 숫자를 맞히셨습니다")
            break  # 맞춰도 계속 기회가 땡번 남았읍니다 멘트나와서 브레이크 걸어줬다
        elif user_num != ran_num:
            if user_num > ran_num:
                print("Down")
            else:
                print("Up")
        i -= 1
        j += 1
    if i == 0:
        print(f"아쉽습니다. 정답은 {ran_num}입니다.")  

틀렸을 때 아쉽습니다 멘트가 나오기까지.... 얼마나 오래 걸렸는지... 모른다

모범답안과 다른 점...
1. 답안은 상수를 정의했고 나는 상수를 정의하지 않았음
2. while문 조건에 꼭 변수를 추가해서 쓰려고 한다(그런 형식을 자주 접해서 그런지 모르겠지만...)

꼭 변수를 추가하지 않아도 되는곳에 추가를 하고...
코드를 보기 힘들게 한다

노력해야겠다...

profile
ฅ˘◡˘ฅ

0개의 댓글