Кто здесь?
Keywords: easytut

Далее: Считаем до десяти Наверх: Курс языка 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 целочисленные переменные, присоединяет (без пробелов) строковые переменные, выводит их, затем перемножает целочисленные переменные и выводит результат на новой строке.

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