일반인을 위한 파이썬 지침서/누가 거기에 가지?
입력과 변수
[+/-]이제 나는 정말 복잡한 프로그램을 다룰 때라고 느낀다.
print "Halt!"
s = raw_input("Who Goes there? ")
print "You may pass,", s
위 코드를 실행하면 다음과 같이 나온다.
Halt! Who Goes there? Josh You may pass, Josh
물론 여러분이 그 프로그램을 실행시킬 때 여러분의 화면은 raw_input
서술문 때문에 다르게 보일 것이다. 여러분이 그 프로그램을 실행시킨다면 여러분은 아마도 어떻게 여러분의 이름을 입력하고 그리고 엔터를 눌러야만 하는가를 깨달았을 것이다.(설마 프로그램은 실행시켰겠지요? 그렇지요?) 그러면 그 프로그램은 약간의 텍스트와 또한 여러분의 이름을 출력해 낼 것이다. 이것은 입력의 예이다. 그 프로그램은 어떤 지점에 다다르면 그리고 사용자가 어떤 자료를 입력해주기를 기다린다. 그 자료는 나중에 프로그램이 사용하게 된다.
물론, 우리가 그 정보를 두어야 할 어떤 곳도 없다면 사용자로부터 얻는 정보가 쓸모가 없을 것이다. 이곳이 바로 변수가 있는 곳이다. 이전의 프로그램에서 s
는 변수이다. 변수는 여러 조각의 데이터를 담을 수 있는 상자와 같은 것이다. 여기에 변수의 예를 보여주는 프로그램이 있다.
a = 123.4
b23 = 'Spam'
first_name = "Bill"
b = 432
c = a + b
print "a + b is", c
print "first_name is", first_name
print "Sorted Parts, After Midnight or",b23
그리고 여기에 그 출력이 있다.
a + b is 555.4 first_name is Bill Sorted Parts, After Midnight or Spam
변수는 데이터를 저장한다. 위의 프로그램에서 변수는 a
, b23
, first_name
, b
, c
이다. 기본적인 형 두 가지는 문자열과 숫자이다. 문자열은 문자들, 숫자 그리고 다른 문자들의 연속열이다. 이 예제에서 b23
와 first_name
은 문자열을 담고있는 변수이다. Spam
, Bill
, a + b is
, first_name is
는 이 프로그램에서 문자열이다. 문자는 "
또는 '
으로 둘러 쳐진다. 다른 타입의 변수는 숫자이다.
우리는 이러한 변수라 부르는 상자와 또한 다른 변수로 갈 수 있는 데이터를 가지고 있다. 컴퓨터는 first_name = "Bill"
와 같은 라인을 보고서 그것을 읽기를 ‘Bill
이라는 문자열을 first_name
라는 상자(혹은 변수)에 집어 넣어라’라고 읽을 것이다. 그리고는 c = a + b
라는 서술문을 보게되고 읽기를 ‘a + b
혹은 123.4 + 432
또는 555.4
를 c
에 집어 넣어라'라고 읽을 것이다.
여기에 변수 사용법에 대한 또 다른 예제가 있다.
a = 1
print a
a = a + 1
print a
a = a * 2
print a
그리고 물론 이것이 그 출력이다.
1 2 4
양쪽 모두에서 똑같은 변수임에도 불구하고 컴퓨터는 여전히 그것을 다음과 같이 읽는다. 먼저 저장해야할 데이터를 찾아라 그리고 데이타가 어디로 가는지를 찾아라.
이 장을 떠나기 전에 프로그램을 하나 더 살펴보자.
num = input("Type in a Number: ")
str = raw_input("Type in a String: ")
print "num =", num
print "num is a ",type(num)
print "num * 2 =",num*2
print "str =", str
print "str is a ",type(str)
print "str * 2 =",str*2
내가 맞이한 출력은 다음과 같다.
Type in a Number: 12.34 Type in a String: Hello num = 12.34 num is a <type 'float'> num * 2 = 24.68 str = Hello str is a <type 'string'> str * 2 = HelloHello
num
는 input
문으로 반면에 str
은 raw_input
문으로 할당되고 있음을 주목하라. raw_input
은 문자열을 반환하는 반면에 input
은 숫자를 반환한다. 사용자가 숫자의 형태로 입력하기를 원한다면 input
을 사용하라. 그러나 사용자가 문자열의 형태로 입력하기를 원한다면 raw_input
을 사용하라.
프로그램의 후반부에서 type
를 사용하는데 그것은 변수의 형을 말해 준다. 숫자들은 정수형 <cocde>int이거나 소수형 float
이다.(그것들은 각각 integer 와 floating point의 약자이다.) 문자열은 string
이다. 언제 어떻게 파이썬이 하나의 수치를 정수로 곱셈을 해야 예상한 바가 일어나는지를 또한 주목하라. 그렇지만 하나의 문자열이 정수에 의하여 곱하여졌을 때 그 문자열은 자신의 많은 복사본이 더해지게 된다.
다시 말하면 다음과 같다.
str * 2 = HelloHello
예제
[+/-]# Rate_times.py
# This programs calculates rate and distance problems
print "Input a rate and a distance"
rate = input("Rate:")
distance = input("Distance:")
print "Time:",distance/rate
샘플을 실행하면 다음과 같이 나온다.
> python rate_times.py Input a rate and a distance Rate:5 Distance:10 Time: 2 > python rate_times.py Input a rate and a distance Rate:3.52 Distance:45.6 Time: 12.9545454545
# Area.py
# This program calculates the perimeter and area of a rectangle
print "Calculate information about a rectangle"
length = input("Length:")
width = input("Width:")
print "Area",length*width
print "Perimeter",2*length+2*width
샘플을 실행하면 다음과 같이 나온다.
> python area.py Calculate information about a rectangle Length:4 Width:3 Area 12 Perimeter 14 > python area.py Calculate information about a rectangle Length:2.53 Width:5.2 Area 13.156 Perimeter 15.46
# temperature.py
# Converts fahrenheit to celcius
temp = input("Farenheit temperature:")
print (temp-32.0)*5.0/9.0
샘플을 실행하면 다음과 같이 나온다.
> python temperature.py Farenheit temperature:32 0.0 > python temperature.py Farenheit temperature:-40 -40.0 > python temperature.py Farenheit temperature:212 100.0 > python temperature.py Farenheit temperature:98.6 37.0