상태이상 : 호기심 중독

이것저것 알아두면 언젠간 도움이 된다.

코딩/Python!

입력 input()함수 + Packing, Unpacking [Python]

IT코코아 2018. 5. 6. 22:12

파이썬은 별도의 변수선언은 필요로 하지 않기 때문에 바로 변수에 input()함수를 사용하여 변수에 저장 할수 있습니다.

a = input()

실행시키면 사용자의 입력을 커서가 애타게 기달리며 깜빡거립니다.

a = input()
print(a)

input()함수는 한 행, enter을 치기까지의 문장을 받아드릴수 있습니다.
참고로 input()함수로 입력받은 모든 값은 string형으로 변수에 저장됩니다.

a = input("숫자입력:")


여러값을 한번에 받고 싶을 경우에는 2가지의 방법을 사용할 수 있습니다.

a, b = input("ab:")
print(a,b)

a,b = input("a b:").split()
print(a,b)

print(type(input("a b:").split()))

1. input()함수로 부터 값을 받는 변수를 n개에 받도록 하여 unpacking하는 방법. (띄어쓰기로 구분 x)
2. input().split()함수로 띄어쓰기로 구분되는 n개의 값을 각각 변수에 unpacking하는 방법.

unpacking이란 오른쪽의 값들을 순서대로 왼쪽의 변수에 차례대로 넣어주는 과정을 말합니다.

이때 우변은 리스트, 튜플의 형태여도 Unpacking 가능합니다.

추가로 이 형태는 Packing이라고합니다. 여러값이 튜플형식으로 묶여 저장됩니다.

1번 방법은 띄어쓰기로 값이 구분이 되어지지 않으므로 12가 1, 2로 Unpacking되는 것이고,
2번 방법은 띄어쓰기로 값이 구분이 되므로 1,2를 입력해주어야 1, 2로 Unpacking됩니다. 12는 한개의 값으로 인식합니다.

input().split()은 리스트로 값들이 변환 되었다가 Unpacking되는 것과 같습니다.

a, b = (1,2)

print(a,b)

a, b = [2,3]

print(a,b)

c,d = {'a':2,'b':4}

print(c,d) #사전형은 키 값이 Unpacking된다.

a = [1],[2]

print(a) #무조건 튜플형식으로 Packing


input()함수안에 문자열을 인수로 넘겨주면 프롬프트창에서 입력을 받을 때, 우리가 입력한 문자열이 그대로 나옵니다. 이를 이용해서 사용자가 입력할 내용을 알려 줄 수 있겠네요.

추가로 만약에 비밀번호를 입력할 때 화면에 입력하는 값들이 보이면 안되겠죠?
이를 위한 함수가 있습니다.

getpass()라는 함수 입니다.

우선 이 함수는 외부 함수이기 때문에 import 시켜줘야 합니다.
저는 모듈안의 함수를 불러오는 식으로 작성해 보겠습니다.

from getpass import getpass
a = getpass("숫자입력:")
print(a)

간단히 설명하면, getpass라는 모듈(파일)에서 getpass라는 함수를 가져와 사용하겠다는 의미입니다.
이렇게 코드를 작성하면 사용자가 입력할 때의 입력값이 보이지 않습니다. 하지만 암호화 되는 것은 아니므로 출력을 시키면 그대로 노출됩니다.

반응형

'코딩 > Python!' 카테고리의 다른 글

리스트 [Python]  (0) 2018.05.11
튜플 [Python]  (2) 2018.05.11
제어문 - for, while [Python]  (0) 2018.05.06
제어문 - else, elif [Python]  (0) 2018.04.01
짧게 알고 가는 자료형의 종류 [Python]  (0) 2018.04.01