next up previous contents
Далее: Считаем до десяти Наверх: Курс языка Python для начинающих Назад: Hello, World   Содержание

В этой главе

Кто там?

Ввод и переменные

Похоже, настало время для очень сложной программы. Вот она:
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, которая сообщает тип переменной. Числа имеют тип int или float (сокращения от английских слов «целое» для первого и «число с плавающей десятичной точкой» для второго). Строки имеют тип string. Целые и десятичные числа могут быть использованы в математических функциях, а строки – не могут. Заметьте: когда Python умножает любое число на целое число, получается очевидный результат. Однако когда строка умножается на целое число, она повторяется соответствующее количество раз, например: str * 2 = HelloHello.

Те же операторы делают со строками немного другие вещи, чем с числами. Некоторые примеры в диалоговом режиме, демонстрирующие это:

>>> "This"+" "+"is"+" joined."
'This is joined.'
>>> "Ha, "*5
'Ha, Ha, Ha, Ha, Ha, '
>>> "Ha, "*5+"ha!"
'Ha, Ha, Ha, Ha, Ha, ha!'
>>>

Список некоторых операторов для строк:

Операция Знак Пример
Повторение * "i"*5 == "iiiii"
Объединение + "Hello, "+"World!" == "Hello, World!"

Примеры

Rate_times.py

#Программа находит время движения при заданных скорости и расстоянии
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

#Периметр и площадь квадрата
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

#Перевод из градусов Фаренгейта в градусы Цельсия
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

Упражнения

Напишите программу, которая запрашивает у пользователя 2 строковые переменные и 2 целочисленные переменные, присоединяет (без пробелов) строковые переменные, выводит их, затем перемножает целочисленные переменные и выводит результат на новой строке.


next up previous contents
Далее: Считаем до десяти Наверх: Курс языка Python для начинающих Назад: Hello, World   Содержание
Джош Коглиати jjc@honors.montana.edu Версия Wikibooks: Курс языка Python Для начинающих на Wikibooks