Python

[Python] 파이썬 input 입력 조건, 숫자만,여러개, 문자열 입력 방법 예제 및 총정리

개발자는 사용자와 상호작용을 하기위해 사용자부로터 입력을 요청하여 입력받은 값을 토대로 다음 작업을 진행할 수 있죠. 파이썬에서는 사용자가 입력할 수 있는 기능을 input()함수로 제공하고 있습니다.

파이썬 스크립트 내에 input()함수가 실행되면 사용자가 입력할 때까지 프로그램의 흐름이 중지됩니다.

 

■기본적인 사용법

val = input("아무거나 입력하세요:")
print(f'입력된 값: {val}ttt입력된 값의 자료형: {type(val)}')

#실행결과
아무거나 입력하세요:4
입력된 값: 4			입력된 값의 자료형: <class 'str'>

아무거나 입력하세요:한글
입력된 값: 한글			입력된 값의 자료형: <class 'str'>

뭔가 이상한 부분을 찾으셨나요? input()함수는 기본적으로 입력받은 값을 문자열(str)로 처리하고 있습니다. 숫자를 입력해도 문자열이 되기 때문에 정수형 자료형으로 형변환(int(val)을 하거나 입력받을 때부터 정수형으로 입력받도록 해야합니다. 문자열을 정수로 형변환하기 위해서는 int()함수를 사용하며, 반대로 숫자를 문자열로 형변환하기위해서는 str()함수를 사용합니다. 

 

 

■정수형 타입(숫자만)으로 입력 받는 방법

int()함수를 사용하여 input함수를 묶어줍니다.

val = int(input("아무거나 입력하세요:"))
print(f'입력된 값: {val}ttt입력된 값의 자료형: {type(val)}')


#실행결과
아무거나 입력하세요:3
입력된 값: 3			입력된 값의 자료형: <class 'int'>

만약 문자를 입력하게되면 오류가 발생됩니다. a라는 알파벳을 입력한 결과입니다. invalid literal for int() with base 10:’a’

아무거나 입력하세요:a
Traceback (most recent call last):
  File "C:pythonWorkspacemain.py", line 1, in <module>
    val = int(input("아무거나 입력하세요:"))
ValueError: invalid literal for int() with base 10: 'a'

 

■실수형(float)으로 입력 받는 방법

float()함수를 사용하여 input()함수를 묶어줍니다.

val = float(input("아무거나 입력하세요:"))
print(f'입력된 값: {val}ttt입력된 값의 자료형: {type(val)}')

#실행결과
아무거나 입력하세요:3.52
입력된 값: 3.52			입력된 값의 자료형: <class 'float'>


아무거나 입력하세요:3
입력된 값: 3.0			입력된 값의 자료형: <class 'float'>

 

■한 번에 여러개의 입력을 받는 방법

split()함수를 사용합니다. 입력할때 공백을 주면 여러개 입력된 것으로 간주합니다.

val1, val2 = input("아무거나 입력하세요:").split()
print(f'입력된 값: {val1}ttt입력된 값의 자료형: {type(val1)}')
print(f'입력된 값: {val2}ttt입력된 값의 자료형: {type(val2)}')


#실행결과
아무거나 입력하세요:10 ab
입력된 값: 10			입력된 값의 자료형: <class 'str'>
입력된 값: ab			입력된 값의 자료형: <class 'str'>

2개의 값을 입력받지만 그 이상 혹은 그 이하를 입력하는 경우 오류가 발생됩니다.

ValueError: too many values to unpack (expected 2)

아무거나 입력하세요:30 ab30 505
Traceback (most recent call last):
  File "C:pythonWorkspacemain.py", line 1, in <module>
    val1, val2 = input("아무거나 입력하세요:").split()
ValueError: too many values to unpack (expected 2)

Process finished with exit code 1

 

ValueError: not enough values to unpack (expected 2, got 1)

아무거나 입력하세요:21
Traceback (most recent call last):
  File "C:pythonWorkspacemain.py", line 1, in <module>
    val1, val2 = input("아무거나 입력하세요:").split()
ValueError: not enough values to unpack (expected 2, got 1)

 

■입력값 분리하는 기준을 공백에서 다른 것으로 변경

split()를 사용하여 여러개의 값을 입력받을 때 , 원하는 분리 기준자를 설정할 수 있습니다.

val1, val2 = input("아무거나 입력하세요:").split(",")
print(f'입력된 값: {val1}ttt입력된 값의 자료형: {type(val1)}')
print(f'입력된 값: {val2}ttt입력된 값의 자료형: {type(val2)}')


#실행결과
아무거나 입력하세요:10 22, hello world
입력된 값: 10 22			입력된 값의 자료형: <class 'str'>
입력된 값:  hello world			입력된 값의 자료형: <class 'str'>

tlf실행결과를 보시는 것과  같이 입력값 분리 기준을 콤마(,)로 하였기 때문에 입력된 값에 공백이 있어도 하나의 문장으로 인식하게됩니다.

 

■input을 리스트(list)로 데이터를 입력 받는 방법

input_list = [x for x in input("아무거나 입력하세요(입력 구분자: 콤마(,)) :").split(",")]
print(f'입력된 값: {input_list}ttt입력된 값의 자료형: {type(input_list)}')


#실행결과
아무거나 입력하세요(입력 구분자: 콤마(,)) :hello, world, hello world, 1
입력된 값: ['hello', ' world', ' hello world', ' 1']
입력된 값의 자료형: <class 'list'>

 

■여러개의 input을 튜플(tuple) 자료형으로 데이터를 입력 받는 방법

input_tuple = tuple(int(x) for x in input("아무거나 입력하세요(입력 구분자: 콤마(,)) :").split(","))
print(f'입력된 값: {input_tuple}n입력된 값의 자료형: {type(input_tuple)}')


#실행결과
아무거나 입력하세요(입력 구분자: 콤마(,)) :1,2,3,4,5
입력된 값: (1, 2, 3, 4, 5)
입력된 값의 자료형: <class 'tuple'>

 

[파이썬 더 알아보기]

 

[Python] 파이썬 기본(기초) 문법 : 예제 및 총정리

■출력 print를 사용하여 Hello World를 출력해 봅니다. 보통 언어를 시작하면 처음에 해보는 습관적인 행동이랄까요?? 언어를 배우게되는 책들을 보면 대부분 기본적으로 Hello World를 출력하는 예제

playground.naragara.com

 

 

[Python] 파이썬 list, tuple, dictionary,set 예제 및 총정리

■리스트 타입의 자료형(List) 파이썬에서 리스트는 배열이라고 생각하면 됩니다. a = [] b = [1,2,3,4,5] c = [‘Hello’,’World’] d = [1,2,3, [‘Hello’, ‘World’]] [실행결과] 리스트의 값을 변경하는 방법은 인..

playground.naragara.com

 

 

[Python] 파이썬 클래스(class) 와 생성자(__init__) 사용방법 및 예제 총정리

클래스를 만들때 파이썬은 생성자를 만들어야하는 경우 __init__를 사용하여 정의할 수 있습니다. 언더스코어(_) 두개를 앞뒤로 붙여서 초기화 합니다. 이것은 규칙입니다. 생성자는 클래스를 생

playground.naragara.com

 

 

[Python] 파이썬 기본 프롬프트(>>>) 변경하기 : 명령 프롬프트에서 파이썬 실행하는 방법(.py)

sys모듈을 임포트 후 프롬프트를 바꿀 수 있습니다. 도스나 리눅스의 명령어를 타이핑하는 프롬프트를 변경하는 것과 같은 의미로 보여집니다. 파이썬의 기본 프롬프트는 >>> 입니다. ■현재 프

playground.naragara.com

 

 

[Python] 파이썬 랜덤 숫자 뽑기 난수 발생(random) 예제 총정리 : randint(), randrange(), uniform(), shuffle(),

파이썬에서 난수를 발생시키려면 random 모듈을 사용해야 합니다. random()메소드를 호출하게 되면 호출할때마다 다른 결과를 리턴합니다. 난수 발생 범위 지정이 필요한 경우 randrange()메소드를 사

playground.naragara.com

 

 

[Python] 파이썬 코드 실행시간(시:분:초) 측정하는 방법 예제 총정리: time(), timedelta(),process_time(), pe

개발을 하다보면 소스 코드들 중 어느 부분에서 동작 시간이 오래 걸리는지 체크해야할 때가 있어요. 어느 부분에서 오래 걸리는지를 체크해서 코드 리팩토링과 같은 작업을 하거나 오래걸리는

playground.naragara.com

 

 

[Python] 파이썬 소수점 반올림, 돈 표기 방법 : 천단위 콤마(쉼표) 찍기( 천단위 구분 기호 추가),

숫자 사이에 콤마를 찍을때 1000단위 마다 콤마를 찍으려면 format 함수를 사용합니다. 날코딩이 하고 싶으시다면 말리지않을게요 ㅎㅎ format(값, “형식규칙”) 또는 “{형식규칙}”.format(값) 의 방법으

playground.naragara.com

 

 

Leave a Reply

error: Content is protected !!