Part 1

Подробнее о переменных

Перед началом этого раздела заполните этот опросник. За ответ вы получите один балл за упражнение.

Переменные нужны в программировании для разных целей. Вы можете использовать переменные, чтобы хранить любую информацию, которая понадобится позже во время выполнения программы.

В программировании на Python переменные создаются так:

variable_name = ...

Здесь ... означает значение, сохраненное в переменной.

Например, когда вы использовали команду input, чтобы считать строку от пользователя, вы сохраняли эту строку в переменной, а затем использовали переменную позже в программе:

name = input("What is your name? ")
print("Hi, " + name)
Пример вывода

What is your name? Ghosty Hi, Ghosty

Значение, сохраненное в переменной, также можно определить с помощью других переменных:

given_name = "Paul"
family_name = "Python"

name = given_name + " " + family_name

print(name)
Пример вывода

Paul Python

Здесь значения, сохраненные в трех переменных, не получены из пользовательского ввода. Они остаются одинаковыми при каждом запуске программы. Это называется жестко заданными данными в программе.

Изменение значения переменной

Как следует из названия переменная, значение, сохраненное в переменной, может изменяться. В предыдущем разделе мы заметили, что новое значение заменяет старое.

Во время выполнения следующей программы переменная word будет иметь три разных значения:

word = input("Please type in a word: ")
print(word)

word = input("And another word: ")
print(word)

word = "third"
print(word)
Пример вывода

Please type in a word: first first And another word: second second third

Значение, сохраненное в переменной, изменяется каждый раз, когда переменной присваивается новое значение.

Новое значение переменной может быть получено из ее старого значения. В следующем примере переменной word сначала присваивается значение на основе ввода пользователя. Затем ей присваивается новое значение: старое значение с тремя восклицательными знаками в конце.

word = input("Please type in a word: ")
print(word)

word = word + "!!!"
print(word)
Пример вывода

Please type in a word: test test test!!!

Целые числа

До сих пор мы сохраняли в переменных только строки, но есть много других типов информации, которые мы захотим хранить и использовать позже. Сначала посмотрим на целые числа. Целые числа — это числа без десятичной или дробной части, например -15, 0 и 1.

Следующая программа создает переменную age, которая содержит целочисленное значение.

age = 24
print(age)

Программа выводит только это:

Пример вывода

24

Обратите внимание, что здесь нет кавычек. На самом деле, если бы мы добавили кавычки вокруг числа, это означало бы, что переменная больше не целое число, а строка. Строка может содержать числа, но обрабатывается иначе.

Почему тогда важно, что у переменных есть тип, если следующая программа все равно выводит одно и то же дважды?

number1 = 100
number2 = "100"

print(number1)
print(number2)
Пример вывода

100 100

Типы переменных важны, потому что разные операции воздействуют на разные типы переменных по-разному. Посмотрим на пример:

number1 = 100
number2 = "100"

print(number1 + number1)
print(number2 + number2)

Это выводит следующее:

Пример вывода

200 100100

Для целочисленных значений оператор + означает сложение, а для строковых значений — конкатенацию, то есть "склеивание" строк.

Не все операторы доступны для всех типов переменных. Хотя числа можно делить с помощью оператора деления /, попытка разделить строку на число вызывает ошибку:

number = "100"
print(number / 2)
Пример вывода
TypeError: unsupported operand type(s) for /: 'str' and 'int'

Объединение значений при выводе

Точно так же следующая программа не будет работать, потому что "The result is " и result имеют разные типы:

result = 10 * 25
# the following line produces an error
print("The result is " + result)

Программа ничего не выводит, а вместо этого вызывает ошибку:

Пример вывода

TypeError: unsupported operand type(s) for +: 'str' and 'int'

Здесь Python сообщает, что объединить два значения разных типов просто так не получится. В этом случае "The result is " имеет тип "строка", а значение, сохраненное в result, имеет тип "целое число".

Если мы действительно хотим вывести строку и целое число одной командой, целое число можно привести к строке с помощью функции str, а затем две строки можно объединить обычным способом. Например, это будет работать:

result = 10 * 25
print("The result is " + str(result))
Пример вывода

The result is 250

У команды print также есть встроенные возможности, которые поддерживают объединение значений разных типов. Самый простой способ - поставить между значениями запятую. Все значения будут выведены независимо от их типа:

result = 10 * 25
print("The result is", result)
Пример вывода

The result is 250

Обратите внимание, что между значениями, разделенными запятой, здесь автоматически добавляется пробел.

Вывод с f-строками

А что, если нам нужна большая гибкость и больший контроль над тем, что мы выводим? Так называемые f-строки - это еще один способ форматирования вывода в Python. Синтаксис сначала может выглядеть немного запутанным, но в итоге f-строки часто оказываются самым простым способом форматировать текст.

С f-строками предыдущий пример выглядел бы так:

result = 10 * 25
print(f"The result is {result}")

Разберем это. В самом начале строки, которую мы выводим, находится символ f. Он сообщает Python, что дальше идет f-строка. Внутри строки, в фигурных скобках, находится имя переменной result. Значение, которое она содержит, становится частью выводимой строки. Вывод точно такой же, как в предыдущих примерах:

Пример вывода

The result is 250

Одна f-строка может содержать несколько переменных. Например, этот код

name = "Mark"
age = 37
city = "Palo Alto"
print(f"Hi {name}, you are {age} years old. You live in {city}.")

выводит это:

Пример вывода

Hi Mark, you are 37 years old. You live in Palo Alto.

Создать точно такой же вывод с помощью записи через запятые в команде print трудно. Например, эта программа

name = "Mark"
age = 37
city = "Palo Alto"
print("Hi", name, ", you are", age, "years old. You live in", city, ".")

выводит следующее:

Пример вывода

Hi Mark , you are 37 years old. You live in Palo Alto .

Обратите внимание на автоматически вставленные пробелы между всеми частями вывода, разделенными запятыми. Технически можно запретить print добавлять лишние пробелы, но это не стоит усилий, потому что вместо этого можно использовать f-строки.

Простая запись через запятые в команде print часто бывает полезна, но иногда создает больше проблем, чем пользы. F-строки обычно являются более надежным вариантом. В части 4 вы узнаете больше об удобных возможностях f-строк для форматирования вывода.

Числа с плавающей точкой

Floating point number, или float, - термин, который часто встречается в программировании. Он означает числа с десятичной точкой. Их можно использовать почти так же, как целочисленные значения.

Эта программа вычисляет среднее трех чисел с плавающей точкой:

number1 = 2.5
number2 = -1.25
number3 = 3.62

mean = (number1 + number2 + number3) / 3
print(f"Mean: {mean}")
Пример вывода

Mean: 1.6233333333333333

Вы дошли до конца этого раздела! Перейти к следующему разделу:

Текущие баллы можно посмотреть в синем индикаторе в правом нижнем углу страницы.