λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Language/Python

[Python]파이썬의 input ν•¨μˆ˜μ™€ 데이터 ν˜• λ³€ν™˜: μž…λ ₯ μ²˜λ¦¬μ™€ μœ μš©ν•œ 팁

by YJ Dev 2024. 3. 29.
728x90
λ°˜μ‘ν˜•
SMALL

python의 input() ν•¨μˆ˜λŠ” μ‚¬μš©μžλ‘œλΆ€ν„° ν‚€λ³΄λ“œλ‘œ μž…λ ₯받은 값을 λ¬Έμžμ—΄λ‘œ λ°›μ•„λ“€μ΄λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. 이번 κΈ€μ—μ„œλŠ” input ν•¨μˆ˜λ₯Ό μ΄μš©ν•˜μ—¬ λ¬Έμžμ—΄μ„ 숫자둜, 숫자λ₯Ό λ¬Έμžμ—΄λ‘œ, μž…λ ₯ 값을 리슀트둜 λ°”κΎΈλŠ” 방법을 확인해 λ³΄κ² μŠ΅λ‹ˆλ‹€.

input


1. input() ν•¨μˆ˜λ‘œ μ‚¬μš©μž μž…λ ₯λ°›κΈ°πŸ‘©‍πŸ’»

input() ν•¨μˆ˜μ˜ () κ΄„ν˜ΈλŠ” μ‚¬μš©μžμ—κ²Œ μž…λ ₯을 μš”κ΅¬ν•˜λŠ” μ•ˆλ‚΄ λ‚΄μš©μ„ μ˜λ―Έν•©λ‹ˆλ‹€.

input() ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•˜λ©΄ ν”„λ‘œκ·Έλž¨μ΄ μ’…λ£Œλ˜μ§€ μ•Šμ€ μƒνƒœμ—μ„œ λŒ€κΈ°ν•˜κ²Œ λ©λ‹ˆλ‹€.

μ‚¬μš©μžκ°€ λͺ…λ Ή ν”„λ‘¬ν”„νŠΈμ— κΈ€μžλ₯Ό μž…λ ₯ν•˜κ³  enterλ₯Ό λˆ„λ₯΄λ©΄ κ²°κ³Όκ°€ λ‚˜μ˜€κ²Œ λ©λ‹ˆλ‹€.

n = input('μ •μˆ˜λ₯Ό μž…λ ₯ν•˜μ„Έμš” : ') # ν”„λ‘¬ν”„νŠΈμ— 7(μ‚¬μš©μžκ°€ μ›ν•˜λŠ” κ°’) μž…λ ₯ ν›„ enter
print(n) # μ •μˆ˜λ₯Ό μž…λ ₯ν•˜μ„Έμš” : 7


μ‚¬μš©μžκ°€ μž…λ ₯ν•œ 값이 input() ν•¨μˆ˜μ˜ 결과둜 λ‚˜μ˜€λ©΄,
이 값을 λ³€μˆ˜μ— λŒ€μž…ν•΄μ„œ μ‚¬μš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

name = input('이름을 μž…λ ₯ν•˜μ„Έμš” >>>') 
print('μž…λ ₯된 이름은 {}μž…λ‹ˆλ‹€.'.format(name)) # μž…λ ₯된 이름은 Aliceμž…λ‹ˆλ‹€.


input() ν•¨μˆ˜λŠ” μ‚¬μš©μžκ°€ 무엇을 μž…λ ₯해도 무쑰건 λ¬Έμžμ—΄ μžλ£Œν˜•
μž…λ‹ˆλ‹€.

type() ν•¨μˆ˜λ₯Ό μ΄μš©ν•˜μ—¬ μž…λ ₯받은 κ°’μ˜ μžλ£Œν˜•μ„ 확인해 λ³΄κ² μŠ΅λ‹ˆλ‹€.

n = input('μ •μˆ˜λ₯Ό μž…λ ₯ν•˜μ„Έμš” : ') # 10 μž…λ ₯
print(type(n)) # <class 'str'>


μœ„ μ½”λ“œμ—μ„œ nμ΄λΌλŠ” λ³€μˆ˜μ— input() ν•¨μˆ˜λ‘œ 10을 μž…λ ₯ν•΄ λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

type() ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄μ„œ n의 μžλ£Œν˜•μ„ 확인해 λ³΄λ‹ˆ 'str' 즉 λ¬Έμžμ—΄ μžλ£Œν˜•μœΌλ‘œ ν™•μΈλ©λ‹ˆλ‹€.

숫자λ₯Ό μž…λ ₯해도 λ¬Έμžμ—΄λ‘œ λ°˜ν™˜λ˜λŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ§Œμ•½ μž…λ ₯받은 숫자λ₯Ό μ΄μš©ν•΄ 연산을 ν•˜κ³  μ‹Άλ‹€λ©΄ 숫자둜 ν˜• λ³€ν™˜μ„ ν•΄μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€.

νŒŒμ΄μ¬μ€ λ¬Έμžμ—΄μ€ λ¬Έμžμ—΄λΌλ¦¬, μˆ«μžλŠ” 숫자끼리 μ—°μ‚°ν•΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

a = input('μž…λ ₯ν•΄ μ£Όμ„Έμš”')
print(a + 10)

⚠️ Error⚠️ TypeError: can only concatenate str (not "int") to str

(νƒ€μž… μ—λŸ¬ : λ¬Έμžμ—΄κ³Ό μ •μˆ˜λ₯Ό μ—°κ²°ν•  수 μ—†μŠ΅λ‹ˆλ‹€.)

ν˜• λ³€ν™˜μ„ μ§„ν–‰ν•˜μ§€ μ•Šμ€ input() ν•¨μˆ˜μ˜ κ°’, 즉 λ¬Έμžμ—΄μ„ 숫자 10κ³Ό ν•¨κ»˜ μ—°μ‚°ν•˜μ˜€λ”λ‹ˆ TypeError μ˜ˆμ™Έκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ¬Έμžμ—΄μ„ 숫자둜 λ³€ν™˜ν•΄ 보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€!


2. λ¬Έμžμ—΄μ„ 숫자둜 ν˜• λ³€ν™˜πŸŽ­

λ¬Έμžμ—΄μ„ 숫자둜 λ³€ν™˜ν•  λ•ŒλŠ” int() ν•¨μˆ˜μ™€ float() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

input() ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄ 숫자λ₯Ό μž…λ ₯ν•œ ν›„ λ¬Έμžμ—΄ κ·ΈλŒ€λ‘œ λ°˜ν™˜λ°›μ„ λ•Œμ˜ μ—°μ‚°κ³Ό 숫자둜 λ³€ν™˜ ν›„ λ°˜ν™˜λ°›λŠ” 값을 비ꡐ해 λ³΄κ² μŠ΅λ‹ˆλ‹€.

# λ¬Έμžμ—΄λ‘œ μž…λ ₯ ν›„ + μ—°μ‚°
s1 = input('μž…λ ₯ s1 : ') # 100 μž…λ ₯ => λ¬Έμžμ—΄λ‘œ μž…λ ₯ 됨
s2 = input('μž…λ ₯ s2 : ') # 100 μž…λ ₯ => λ¬Έμžμ—΄λ‘œ μž…λ ₯ 됨
print('s1 + s2 = {}'.format(s1 + s2)) # s1 + s2 = 100100 => λ¬Έμžμ—΄μ΄λ‹ˆκΉŒ μ΄μ–΄λΆ™μž„(μ—°κ²°)

# μ •μˆ˜ν˜•μœΌλ‘œ λ³€ν™˜ ν›„ + μ—°μ‚°
n1 = int(input('μž…λ ₯ n1 : ')) # 100 μž…λ ₯ => μ •μˆ˜λ‘œ ν˜• λ³€ν™˜
n2 = int(input('μž…λ ₯ n2 : ')) # 100 μž…λ ₯ => μ •μˆ˜λ‘œ ν˜• λ³€ν™˜
print('n1 + n2 : = {}'.format(n1 + n2)) # n1 + n2 : = 200 => μ •μˆ˜ν˜•μ΄λ‹ˆκΉŒ λ”ν•˜κΈ° 계산


s1κ³Ό s2λ₯Ό input() ν•¨μˆ˜λ₯Ό μ΄μš©ν•˜μ—¬ 각각 100을 μž…λ ₯받은 ν›„
+ 연산을 ν•˜μ˜€λ”λ‹ˆ 100100μ΄λΌλŠ” 값이 λ‚˜μ™”μŠ΅λ‹ˆλ‹€.

λ¬Έμžμ—΄μ˜ μžλ£Œν˜•μ΄κΈ° λ•Œλ¬Έμ— +λŠ” μ—°κ²°ν•˜λŠ” 의미둜 μ μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

n1κ³Ό, n2λŠ” input() ν•¨μˆ˜μ— int() ν•¨μˆ˜λ‘œ λ³€ν™˜ν•˜μ—¬ 각각 100을 μž…λ ₯λ°›μ•˜μŠ΅λ‹ˆλ‹€.

μ΄λ²ˆμ—λŠ” + 연산이 μˆ«μžμ— μ μš©λ˜λŠ” λ”ν•˜κΈ° μ—°μ‚°μœΌλ‘œ μ§„ν–‰λ˜μ–΄ 200μ΄λΌλŠ” 값을 λ°˜ν™˜λ°›μ•˜μŠ΅λ‹ˆλ‹€.

μ΄λ²ˆμ—λŠ” float() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄μ„œ 연산을 ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

float() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν–ˆμœΌλ―€λ‘œ μ†Œμˆ˜μ μ„ ν¬ν•¨ν•œ μ‹€μˆ˜λ₯Ό μž…λ ₯ν•  수 있게 λ©λ‹ˆλ‹€.

a = float(input('첫 번째 숫자 : ')) # 첫 번째 숫자 : 10.5 μž…λ ₯
b = float(input('첫 번째 숫자 : ')) # 두 번째 숫자 : 5 μž…λ ₯

print('λ§μ…ˆ κ²°κ³Ό : ', a + b) # λ§μ…ˆ κ²°κ³Ό : 15.5
print('λΊ„μ…ˆ κ²°κ³Ό : ', a - b) # λΊ„μ…ˆ κ²°κ³Ό : 5.5
print('κ³±μ…ˆ κ²°κ³Ό : ', a + b) # κ³±μ…ˆ κ²°κ³Ό : 15.5
print('λ‚˜λˆ—μ…ˆ κ²°κ³Ό : ', a / b) # λ‚˜λˆ—μ…ˆ κ²°κ³Ό : 2.1


β–Ά μ£Όμ˜μ‚¬ν•­

λ§Œμ•½ 숫자둜 μžλ£Œν˜•μ„ λ³€ν™˜ν•  λ•Œ μˆ«μžκ°€ μ•„λ‹Œ 것을 λ³€ν™˜ν•˜λ©΄ ValueError μ˜ˆμ™Έκ°€ λ°œμƒν•©λ‹ˆλ‹€.

int() ν•¨μˆ˜ () μ•ˆμ— λ“€μ–΄κ°ˆ 맀개 λ³€μˆ˜λ₯Ό λ³€ν™˜ν•  수 μ—†κ²Œ 되면 항상 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

print(int('python'))

⚠️ Error⚠️ValueError: invalid literal for int() with base 10: 'python'

( 'python'은(λŠ”) 10μ§„μˆ˜λ‘œ λ³€ν™˜ν•  수 μ—†λŠ” μœ νš¨ν•˜μ§€ μ•Šμ€ λ¦¬ν„°λŸ΄(literal)μž…λ‹ˆλ‹€)

또 μ‹€μˆ˜ ν˜•μ‹μ˜ λ¬Έμžμ—΄μ„ int() ν•¨μˆ˜λ‘œ λ³€ν™˜ν•˜λ €κ³  ν•  λ•Œλ„ ValueError μ˜ˆμ™Έκ°€ λ°œμƒν•©λ‹ˆλ‹€.

print(int('1.23'))

⚠️ Error⚠️ValueError: invalid literal for int() with base 10: '1.23'

('1.23'은(λŠ”) 10μ§„μˆ˜λ‘œ λ³€ν™˜ν•  수 μ—†λŠ” μœ νš¨ν•˜μ§€ μ•Šμ€ λ¦¬ν„°λŸ΄(literal)μž…λ‹ˆλ‹€)

int() ν•¨μˆ˜λŠ” μ •μˆ˜λ‘œ λ³€ν™˜ν•˜κΈ° μœ„ν•΄ μž…λ ₯값을 λ°›μ§€λ§Œ μ‹€μˆ˜ν˜•μœΌλ‘œλŠ” λ³€ν™˜ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œλŠ” float() ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄ μ£Όλ©΄ λ©λ‹ˆλ‹€.


3. 숫자λ₯Ό λ¬Έμžμ—΄λ‘œ ν˜• λ³€ν™˜πŸƒ

int() ν•¨μˆ˜μ™€ float() ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄ λ¬Έμžμ—΄μ„ 숫자둜 λ³€ν™˜ν•œ κ²ƒμ²˜λŸΌ 숫자λ₯Ό λ¬Έμžμ—΄λ‘œ ν˜• λ³€ν™˜ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 이 λ•ŒλŠ” str() ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄ μ£Όλ©΄ λ©λ‹ˆλ‹€.

a λ³€μˆ˜λ₯Ό str둜 ν˜• λ³€ν™˜ ν›„ input() ν•¨μˆ˜λ‘œ 1234567을 μž…λ ₯λ°›κ³  type() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄ type을 확인해 λ³΄λ‹ˆ str둜 바뀐 것을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

a = str(input('μž…λ ₯ν•΄ μ£Όμ„Έμš” : ')) # μž…λ ₯ν•΄ μ£Όμ„Έμš” : 1234567
print(type(a)) # <class 'str'>


λ¬Έμžμ—΄λ‘œ λ³€ν™˜ν•˜λŠ” λ°©λ²•μ—λŠ” format() ν•¨μˆ˜λ₯Ό μ΄μš©ν•˜λŠ” 방법도 μžˆμŠ΅λ‹ˆλ‹€.

format() ν¬μŠ€νŒ… λ‚΄μš©μ„ 확인해 μ£Όμ„Έμš”πŸ₯°

" "

[파이썬]format() ν•¨μˆ˜μ™€ ν¬λ§€νŒ…

λͺ©μ°¨ 1. κΈ°λ³Έ ν¬λ§€νŒ… 2. λ¬Έμžμ—΄ ν¬λ§€νŒ… 3. f-λ¬Έμžμ—΄ ν¬λ§€νŒ… 4. format() ν•¨μˆ˜μ˜ λ‹€μ–‘ν•œ κΈ°λŠ₯ 5. ν•΅μ‹¬λ‚΄μš© format() ν•¨μˆ˜ νŒŒμ΄μ¬μ—μ„œλŠ” format ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ¬Έμžμ—΄μ„ λ‹€μ–‘ν•œ ν˜•μ‹μœΌλ‘œ ν¬λ§€νŒ…ν•  수 있슡

creativevista.tistory.com


4. μž…λ ₯값을 리슀트둜 λ°”κΎΈκΈ°πŸͺ€

μ‚¬μš©μžλ‘œλΆ€ν„° input() ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄ μž…λ ₯을 받을 λ•Œ ν•˜λ‚˜μ˜ 값이 μ•„λ‹Œ μ—¬λŸ¬ 값을 μž…λ ₯받을 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

이럴 λ•ŒλŠ” μ—¬λŸ¬ 개의 값을 μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•œ 리슀트둜 μ €μž₯을 ν•΄μ£Όλ©΄ λ©λ‹ˆλ‹€.

str = input("μ—¬λŸ¬ 개의 문자λ₯Ό μ‰Όν‘œλ‘œ ꡬ뢄해 μž…λ ₯ν•˜μ„Έμš”: ")
str = str.split(',') # splitλ₯Ό μ΄μš©ν•΄μ„œstr의 값듀을 ,λ₯Ό κΈ°μ€€μœΌλ‘œ 리슀트의 μš”μ†Œλ‘œ λΆ„ν• 
print("μž…λ ₯ν•œ 문자:", str) # μž…λ ₯ν•œ 문자: ['python', ' 파이썬', ' μ•ˆλ…•']


str λ³€μˆ˜μ— input() ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄ μ—¬λŸ¬ 개의 문자λ₯Ό μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•΄μ„œ μž…λ ₯λ°›μŠ΅λ‹ˆλ‹€.

μ—¬κΈ°μ„œ 2번째 μ€„μ˜ split() ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄ μž…λ ₯받은 μ—¬λŸ¬ 개의 값듀을

μ‰Όν‘œ, λ₯Ό κΈ°μ€€μœΌλ‘œ 리슀트의 μš”μ†Œλ‘œ λΆ„ν• ν•΄ μ£Όλ©΄ μž…λ ₯ 값듀이 λ¦¬μŠ€νŠΈμ— μ €μž₯λ©λ‹ˆλ‹€.

split() ν•¨μˆ˜λŠ” λ¬Έμžμ—΄μ„ νŠΉμ • κ΅¬λΆ„μžλ₯Ό κΈ°μ€€μœΌλ‘œ 리슀트의 μš”μ†Œλ‘œ λΆ„ν• ν•΄ μ£ΌλŠ” 역할을 ν•©λ‹ˆλ‹€.

μœ„ μ½”λ“œμ—μ„œλŠ” μ‰Όν‘œ , κ°€ κ΅¬λΆ„μžκ°€ λ©λ‹ˆλ‹€.


5. ν•΅μ‹¬λ‚΄μš©πŸ‘€

input

728x90
λ°˜μ‘ν˜•
LIST