프로그래머가 아닌 이들을 위한 파이썬 3 자습서/거기 누구냐?

위키책, 위키책
둘러보기로 가기 검색하러 가기

입력과 변수[+/-]

이제는 정말 복잡한 프로그램을 위한 시간이 되었다. 시작한다:

print("정지!")
user_input = input("거기 누구냐?")
print("지나가도 좋다,",  user_input)

내가 이것을 실행했을 때, 화면에 표시된 것이다:

정지!
거기 누구냐? Josh
지나가도 좋다, Josh

주의: F5 키를 눌러서 코드를 실행하였다면, 파이썬 쉘에서는 저 화면만을 출력할 것이다:

정지!
거기 누구냐?

당신은 파이썬 쉘에 당신의 이름을 넣은 다음, 엔터키를 눌러야 나머지 출력을 볼 수 있다.

당연히 당신이 프로그램을 실행시키면 당신의 화면은 input() 구문 때문에 좀 달라 보일 것이다.. 당신이 프로그램을 실행시키면 당신은 아마 알아챘을텐데 (프로그램을 이미 실행시켰습니다, 그렇죠?) 어떻게 이름을 타이핑하고 엔터키를 눌러야 하는가를 알아챘을 것이다. 그러면 프로그램은 좀 많은 텍스트와 당신의 이름을 출력할 것이다. 이것이 입력의 예제이다. 프로그램은 특정 지점에 도달하면 사용자가 프로그램에서 사용할 데이터를 입력할 때까지 기다린다.

물론, 사용자로부터 정보를 얻는 것은, 정작 그 정보를 넣을 곳(그 곳은 변수가 들어오는 곳이다)이 없다면 그리고 입력한 것이 쓸모가 없다. 이전의 프로그램에서 user_input변수이다. 변수는 데이터 조각을 저장하는 상자와 같다. 변수의 사용 예는 이 프로그램이 보여준다:

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, and c가 있다. 두 개의 기본 타입은 문자열숫자이다. 문자열은 글자, 숫자, 다른 문자, 기호의 연속체이다. 이 예제에서 b23first_name은 문자열을 저장하고 있는 변수이다. 이 프로그램에서 Spam, Bill, a + b is, first_name is, Sorted Parts, After Midnight or는 문자열이다. 이 글자들은 " 또는 '로 둘러싸여 있다. 변수의 다른 타입은 숫자이다. 변수는 값을 저장하기 위해 사용된다는 점을 기억하면, 숫자는 인용부호(" 과 ')를 사용하지 않는다. 만약 실제의 으로 사용하고 싶다면, 반드시 인용부호를 사용하여야 한다.

value1 == Pim
value2 == "Pim"

둘다 보기에는 같아 보이나, 첫 번째 것은 파이썬이 혹시 변수 value1의 값이 변수 Pim이 가지고 있는 값과 같은지 확인한다. 두 번째 것은, 파이썬이 문자열 (실제 글자 P,i,m)과 value2의 값이 같은지 확인한다 (문자열과 ==에 대한 더 자세한 설명이 필요하면 자습서를 계속 진행하십시오).

과제[+/-]

좋습니다, 그래서 우리는 이러한 상자를 변수라고 부르고 데이터가 변수에 들어갈 수 있다는 것을 알았습니다. 컴퓨터는 다음과 같은 줄 first_name = "Bill"을 보고 "문자열 Bill을 상자 (혹은 변수) first_name에 집어 넣어라"처럼 읽습니다. 다음에 나오는 구문 c = a + b를 보고 "a + b의 합을, 즉 123.4 + 432을 더한 후 이 값 555.4c에 넣어라"처럼 읽습니다. 구문의 우측단 (a + b) 은 계산된 것이고 그 결과를 구문의 좌측단에 있던 변수(c)에 저장합니다. 이것을 대입이라고 합니다. 그리고 당신은 대입의 등호 표시(=)와 "동등"을 뜻하는 수학에서의 이해를 혼동하면 안됩니다. (그래서 == 는 나중에 사용됩니다).

변수의 다른 사용 예제를 봅시다:

a = 1
print(a)
a = a + 1
print(a)
a = a * 2
print(a)

그리고 당연히 여기에 결과가 있습니다:

1
2
4

등호의 양쪽에 동일한 변수가 나타난다 하더라도 (예를 들어, spam = spam), 컴퓨터는 여전히 다음과 같이 읽습니다: "우선 저장할 데이터를 찾고 그 다음 데이터를 저장할 곳을 찾는다."

이번 장을 끝내기 전에 한 개 더 풀어보겠습니다:

number = float(input("숫자를 입력하세요: "))
integer = int(input("정수를 입력하세요: "))
text = input("문자열을 입력하세요: ")
print("number =", number)
print("number is a", type(number))
print("number * 2 =", number * 2)
print("integer =", integer)
print("integer is a", type(integer))
print("integer * 2 =", integer * 2)
print("text =", text)
print("text is a", type(text))
print("text * 2 =", text * 2)

제가 얻은 결과는 다음과 같습니다:

숫자를 입력하세요: 12.34
정수를 입력하세요: -3
문자열을 입력하세요: Hello
number = 12.34
number is a <class 'float'>
number * 2 = 24.68
integer = -3
integer is a <class 'int'>
integer * 2 = -6
text = Hello
text is a <class 'str'>
text * 2 = HelloHello

number 변수는 float(input())로 만들어진 반명 text 변수는 input()로만 만들어진 것에 유의하세요. input() 함수는 문자를 반환하는 반면, float 함수는 문자에서 숫자를 반환합니다. int 함수는 소숫점이 없는 정수를 반환합니다. 만약 사용자가 소숫점을 입력하길 원한다면 float(input()) 함수를 사용해야 하고, 만약 사용자가 정수를 입력하길 원한다면 int(input()) 함수를 사용해야 합니다, 그러나 사용자가 문자열을 입력하길 원한다면 input()함수만 사용하면 됩니다.

프로그램의 후반부는 어떤 종류의 변수를 사용하는지 보여주는 type() 함수를 사용하고 있습니다. 숫자 변수는 int 또는 float 타입으로 보이는데, 이것은 각각 integer(정수)floating point(부동소수점)(주로 decimal numbers(소수)에 사용됩니다)의 축약어 입니다 . 문자열 변수는 str 타입으로 보이는데, string의 축약어입니다. int와 float 타입은 수학함수에서 작동할 수 있지만, str 타입은 수학함수에서 작동하지 못합니다. 파이썬이 정수로 된 숫자를 곱할 때 예측되는 일에 주목하세요. 그러나 문자열에 정수를 곱할 때 그 결과는 문자열의 복사본이 숫자만큼 복사될 뿐입니다(예를 들어, text * 2 = HelloHello).

문자열에서의 연산은 숫자에서의 연산과 다릅니다. As well, 어떤 연산은 숫자에서만 작동하고 (정수와 부동소수점수 모두) 문자열에서 사용하면 오류가 발생됩니다. 인터렉티브 모드에서 볼 수 있는 몇 가지 예입니다.

>>> print("This" + " " + "is" + " joined.")
This is joined.
>>> print("Ha, " * 5)
Ha, Ha, Ha, Ha, Ha, 
>>> print("Ha, " * 5 + "ha!")
Ha, Ha, Ha, Ha, Ha, ha!
>>> print(3 - 1)
2
>>> print("3" - "1")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'str' and 'str'
>>> 

다음은 문자열 연산에 대한 표입니다:

연산 기호 예시
반복 * "i" * 5 == "iiiii"
병합 + "Hello, " + "World!" == "Hello, World!"

예제[+/-]

Rate_times.py

# 이 프로그램은 속도와 거리 문제를 계산합니다.
print("속도와 시간을 입력하세요")
rate = float(input("속도: "))
distance = float(input("거리: "))
print("시간:", (distance / rate))

Sample runs:

속도와 시간을 입력하세요
속도: 5
거리: 10
시간: 2.0
속도와 시간을 입력하세요
속도: 3.52
거리: 45.6
시간: 12.9545454545

Area.py

# 이 프로그램은 사각형의 둘레와 면적을 계산합니다.
print("사각형에 대한 정보를 계산합니다.")
length = float(input("길이: "))
width = float(input("너비: "))
print("면적:", length * width)
print("둘레:", 2 * length + 2 * width)

Sample runs:

사각형에 대한 정보를 계산합니다.
길이: 4
너비: 3
면적: 12.0
둘레: 14.0
사각형에 대한 정보를 계산합니다.
길이: 2.53
너비: 5.2
면적: 13.156
둘레: 15.46

Temperature.py

# 이 프로그램은 화씨 온도와 섭씨 온도를 변환합니다.
fahr_temp = float(input("화씨 온도: "))
print("섭씨 온도:", (fahr_temp - 32.0) * 5.0 / 9.0)

Sample runs:

화씨 온도: 32
섭씨 온도: 0.0
화씨 온도: -40
섭씨 온도: -40.0
화씨 온도: 212
섭씨 온도: 100.0
화씨 온도: 98.6
섭씨 온도: 37.0

실습[+/-]

사용자로부터 2개의 문자열 변수와 2개의 숫자 변수에 입력을 받아, 문자열 변수들을 연결하고(공백이 없어야 한다), 다음 줄에 숫자 변수를 곱하는 프로그램을 작성하시오.

틀:Solution

틀:Navigation 스크립트 오류: "TScope" 모듈이 없습니다.