29 Aug 2017 » python

2017-08-29-python

프롬프트와 사용자

  • Python 2.x. 에서는 raw_input()을 사용하면 된다.
  • Python 3.x.는 raw_input을 지원하지 않는다.
    • 아래와 같이 만들어놓고 쓰자
In [1]:
# Fix Python 2.x.
try:
    input = raw_input
except NameError:
    pass
  • 아래 format을 함께 사용하면 사용자에게 질문하고 답을 받을 수 있다.
In [2]:
# -*- coding: utf-8 -*-

age = input("몇 살이죠? ")
height = input("키는 얼마죠? ")
weight = input("몸무게는 얼마죠? ")

print("네, 나이는 {} 살, 키는 {} cm, 몸무게는 {} kg이네요.".format(age, height, weight))
print("뜬금없지만, 태양의 각지름은 {}입니다.".format('''32\'10"'''))
몇 살이죠? 28
키는 얼마죠? 185
몸무게는 얼마죠? 65
네, 나이는 28 살, 키는 185 cm, 몸무게는 65 kg이네요.
뜬금없지만, 태양의 각지름은 32'10"입니다.

데이터로 쌓아보자.

In [3]:
# -*- coding: utf-8 -*-

user_id = input("아이디는 어떻게 되죠? ")
age = input("몇 살이죠? ")
height = input("키는 얼마죠? ")
weight = input("몸무게는 얼마죠? ")

d = {'user_id':'{}'.format(user_id),'age':'{}'.format(age), 'height':'{}'.format(height), 'weight':'{}'.format(weight)}
아이디는 어떻게 되죠? NY
몇 살이죠? 32
키는 얼마죠? 180
몸무게는 얼마죠? 65
In [4]:
d
Out[4]:
{'age': '32', 'height': '180', 'user_id': 'NY', 'weight': '65'}

ex12.py 스크립트를 아래와 같이 만들자.

In [ ]:
# -*- coding: utf-8 -*-

# Fix Python 2.x.
try:
    input = raw_input
except NameError:
    pass

age = input("몇 살이죠?")
height = input("키는 얼마죠?")
weight = input("몸무게는 얼마죠?")

print("네, 나이는 {} 살, 키는 {} cm, 몸무게는 {} kg 이네요.".format(age, height, weight))
print("뜬금없지만, 태양의 각지름은 {}입니다.".format('''32\'10"'''))

위의 스크립트를 터미널에서 python ex12.py를 입력하면 아래와 같은 결과 값이 출력된다.

매개변수, 풀기(Unpack), 변수

import

  • 스크립트에서 필요한 기능만 가져다 쓰는 방법

  • 사용할 모듈을 미리 적도록 함.

  • 필요한 것만 가져다쓰니 메모리도 작게 유지하며, 코드 리뷰시에도 가독성이 증가함

In [5]:
# -*- coding: utf-8 -*-

from sys import argv

argv
Out[5]:
['/Users/Leo/.pyenv/versions/anaconda3-4.0.0/envs/code_study/lib/python3.6/site-packages/ipykernel_launcher.py',
 '-f',
 '/Users/Leo/Library/Jupyter/runtime/kernel-e6ac1912-39b6-41fa-a1d1-d5316a4d4562.json']
  • 위 실행결과 argv'는 3개의 실행인자를 갖고 있다.argv`
    • 실행인자 변수(argument variable)
    • 스크립트를 실행할 때 전달했던 실행인자가 담겨 있음.

unpack

실행인자 전체를 한 변수에 담는 대신 코드로 다루기 편하도록 각각 나누어 대입하는 것을 가리키는 용어

In [6]:
script, first, second = argv

print("스크립트 이름", script) 
print("첫 번째 변수:", first) 
print("두 번째 변수:", second) 
스크립트 이름 /Users/Leo/.pyenv/versions/anaconda3-4.0.0/envs/code_study/lib/python3.6/site-packages/ipykernel_launcher.py
첫 번째 변수: -f
두 번째 변수: /Users/Leo/Library/Jupyter/runtime/kernel-e6ac1912-39b6-41fa-a1d1-d5316a4d4562.json

ex13.py 스크립트를 아래와 같이 만들자.

In [ ]:
# -*- coding: utf-8 -*-

from sys import argv

script, first, second, third = argv

print("스크립트 이름:", script)
print("첫 번째 변수:", first)
print("두 번째 변수:", second)
print("세 번째 변수:", third)
  • argv 에 할당한 실행인자 만큼 입력을 시켜주면 된다.
  • python ex13 이것 저것 그것

  • 실행인자의 개수를 똑같이 넣어 주어야 한다.
  • raw_inputargv를 결합하여 좀 더 재밌는 결과물을 만들 수 있다.

raw_input()argv의 차이점

  • raw_input()

    스크립트를 실행하는 동안 키보드로 입력을 받으려면 raw_input()

  • argv

    커맨드 라인에서 입력을 한다면 argv


Reference

  • 깐깐하게 배우는 파이썬


Related Posts