Ввод, вывод и переменные в python
В прошлой главе мы научились использовать питон для повседневных математических вычислений, вводя команды по одной. Это называется режимом консоли, или интерактивным режимом. Но с увеличением размера программы, писать код по одной строчке становится неудобно, гораздо проще написать программу целиком (или создать скрипт), а затем при необходимости запускать.
Традиционно, первой программой на любом языке программирования становится «Hello, world!». Такая программа просто запускается и говорит миру — «привет!».
Чтобы написать нашу первую программу, зайдите в меню IDLE и смело выбирайте File -> New File . В появившемся новом пустом окне введите команду:
print("Hello, world!")
Затем нажмите Run -> Run Module и сохраните ваш файл в удобном для вас месте на диске. Лучше всего сделать отдельную папку для программирования и в ней отдельные подпапки для каждой главы. Результат работы программы появится в основном окне IDLE.
Вау! Ты только что написал свою первую программу!
Используем print для вывода информации
Для вывода данных в питоне используется команда print . Как и после любой команды, после print ставятся круглые скобочки, а в них — аргумент этой команды — строка или число, которые надо вывести.
Одна команда — одна строка. Если на одной строке (одной командой) нужно вывести несколько чисел, строк или переменных, их нужно разделять запятыми.
print("Можно выводить код на разных строках!") print("Очень удобно! А еще можно сделать пустую строку. ") print("") print(100 + 1, "долматинец", " - можно разделять части вывод")
Можно выводить код на разных строках! Очень удобно! 101 долматинец - можно разделять на части вывод
Для тренировки, попробуй написать программу, которая выводит на экран ваше имя и три твоих любимых фильма (или сериала/группы/книги. ). Главное, чтобы текст был на разных строках.
Переменные в python
Как вы помните, если мы хотим что-то временно сохранить, нам нужна переменная.
Переменная — это именованный участок оперативной памяти, предназначенный для хранения значения определенного типа (целое число / действительное число / текст. ). В прочем, питон сам определяет тип переменной, вам нужно указать только ее имя.
Для создания переменной нужно просто написать ее имя и что-либо в нее положить, для чего используется оператор присваивания ( = ).
name = "Ростислав" print("Меня зовут ", name, ".")
Меня зовут Ростислав.
Названия переменных могут состоять из латинских букв и цифр, а также символа _ , но не могут начинаться с цифры.
Формально, можно использовать и русские символы, но так обычно не делают. Обрати внимание, в коде выше, чтобы вывести текст, мы выделили его в кавычки, а чтобы переменную — написали ее имя без кавычек.
Кавычки могут быть как «двойными» , так и ‘одинарными’ , главное чтобы в начале и в конце текста стояли одинаковые кавычки.
Используем input для общения с пользователем
Для ввода данных используется команда (а правильней — функция) input . В качестве аргумента она принимает поясняющий текст, а результат возвращает в виде строки.
number = input('Сколько котов вы хотите купить? ') print('Отгружаем вам ', number, "котов!")
Сколько котов вы хотите купить? 40 Отгружаем вам 40 котов!
Если ввести нужно числа, а не строку (т.е. проводить с результатами операции, как с числами):, то результат надо преобразовать в число.
Код:
width = int(input('Введите ширину участка: ')) height = int(input('Введите высоту участка: ')) print('Площадь: ', width * height)
Результат:
Введите ширину участка: 20 Введите высоту участка: 5 Площадь: 100
Аналогично с помощью функции str можно преобразовать число в строку. Но, погодите, зачем это нужно? Что будет, если не использвоать int ? Попробуй запустить вот этот код.
s = input() print(s * 10)
Результат:
Что произошло?! Ведь 10 на 10 — это 100, а совсем не то, что выдал питон! А если вот так?
s = input() print(s + 10)
Кажется, мы только что получили нашу первую ошибку времени выполнения. Не пугайся, в работе даже самых опытных программистов это случается постоянно. Главное уметь отлавливать их и исправлять до того, как программа попадет к пользователю.
Текст ошибки может быть очень длинным, но на самом деле пока нам важна только последняя строка TypeError: can only concatenate str (not «int») to str . Если попробовать перевести ее в переводчике, получится что-то вроде Ошибка типа: можно соединять только str (строки) и str (строки), но не «int» (это целое число). .
Дело в том, что по-умолчанию питон считает, что мы вводим именно строку. Именно поэтому при умножения десятка повторилась 10 раз, а не умножилась на 10, а при сложении вообще все сломалось. Чтобы работать с введенными данными, как с числами, их нужно превратить в числа.
s = int(input()) print(s + 10)
Теперь все будет работать как задумано. Кстати, а попробуй сложить две строки, будет работать? Для тренировки напиши программу, которая спрашивает у пользователя, как его зовут, а потом здоровается с ним по имени.
Как вас зовут? Ростислав Добрый вечер, Ростислав!
Что выводит программа? | Что нужно ввести? |
---|---|
Как вас зовут? Добрый вечер, Инна! |
Инна |
Как вас зовут? Добрый вечер, Павел! |
Павел |
Доступные операции с переменными
В предыдущей главе мы с вами применяли математические операции к числам, в те же операции мы можем применять к переменным.
a = 10 # теперь в переменной a лежит число 10 b = 20 # а в переменной b лежит число 20 a = a + 5 # a теперь равно 15 a = a + b # a равно 35 a = a - 20 # a равно 15 a = a * 2 # a равно 30 a = b / 2 # a равно 10.0 b = a % 4 # b равно 2, этот оператор возвращает остаток от деления a = a // 3 # целочисленное деление, а рано 3 b = b ** 3 # возведение в степень, b равно 8
Используя эти операции, а также функции input и print , решите задачи, приведенные в этом разделе.
Создаем линейный квест
Кажется, сейчас у нас есть все, чтобы создать линеный квест!
В качестве примера линейного квеста давай сделаем что-то забавное. Попробуй написать программу, которая спрашивает какую-либо информацию про пользователя, а затем рассказывает про него шутку.
Между частями шутки для пущего эффекта можно добавить ожидание нажатия книпки Enter. Для этого можно использовать пустой input() , достаточно просто вызвать эту функцию не сохраняя результат.
Кстати, для нагнетения обстановки можно вместо нажатий Enter добавить задержку. Например, персонаж какое-то время пытается открыть дверь или ожидается итог напряженной схватки. Сделать это можно, используя встроенный модуль time (мы с тобой уже знакомы с модулем math ). Пример его использования ниже.
import time print("Сейчас будет перерыв 10 секунд.") time.sleep(10) print("10 секунд прошло, работаем дальше. ")
Попробуй оба варианта, сначала с input(), а потом с задержками. Как только заработает, можно смело хвастаться, что у тебя получился линейный квест!
Вывод переменных в одной строке
Единственное НО: не могу разобраться, как вывести первое число, поделенное на второе число и ответ.
Как это так вывести?
Отслеживать
12.5k 7 7 золотых знаков 19 19 серебряных знаков 48 48 бронзовых знаков
задан 12 мая 2021 в 23:10
Денис Очеретнюк Денис Очеретнюк
11 1 1 серебряный знак 3 3 бронзовых знака
как вывести число 1 поделенное на число 2 и ответ – но ответ это и есть число 1 поделенное на число 2. В чём проблема? И да, если бы Вы прочитали справку, прежде чем писать вопрос, Вы бы знали, что нужно подробно описать желаемое поведение программы и то, которое есть сейчас.
13 мая 2021 в 1:46
14 мая 2021 в 8:16
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
number1 = int(input("Введите первое число: ")) print(f"Вы ввели: ") number2 = int(input("Введите первое число: ")) print(f"Вы ввели: ") try: result = number1 / number2 print(f"Результат деления = ") except ZeroDivisionError as e: print(f"Поделить невозможно ")
Отслеживать
ответ дан 13 мая 2021 в 0:21
Mikhail Sharaborin Mikhail Sharaborin
94 4 4 бронзовых знака
спасибо за помощь, подскажите что значит эта строка, с ней я ещё не сталкивался. except ZeroDivisionError as e:
13 мая 2021 в 10:08
@ДенисОчеретнюк except — механизм исключений
13 мая 2021 в 10:15
Если я правильно понял «как вывести число 1 поделенное на число 2 и ответ», и нужно в одной строке указать и делимое, и делитель, и результат, тогда так:
number_1 = int(input('Введите первое число:')) number_2 = int(input('Введите второе число:')) if number_2: result = number_1 / number_2 print(f'Результат деления на равен ') else: print('Поделить на 0 невозможно')
Введите первое число:>? 3 Введите второе число:>? 2 Результат деления 3 на 2 равен 1.5
и при number_2 равном 0:
Введите первое число:>? 42 Введите второе число:>? 0 Поделить на 0 невозможно
- if number_2: отработает, если number_2 не равен 0;
- для вывода используйте f-строки, в которых укажите переменные
Как вывести текст и переменную в python
Сегодня я познакомлю вас с более сложным способом вывода текста в Питоне – через переменные.
То есть командой print мы будем выводить не текст в виде
print u”Здесь какой-то текст”
А мы будем сначала все данные для вывода присваивать переменным. Числа и слова мы присвоим сначала переменным, а потом выведем их в виде команд print .
Этот вариант вывода строк текста используется наиболее часто в программировании, так как текст может быть разным в разных местах, в разное время, а переменные можно задать один раз и использовать их постоянно, меняя потом лишь текст.
Практический пример
Создаем на рабочем столе файл test7.py Сохраняем его в правильной кодировке (подробнее о кодировке файлов в Python 2.7). Пишем в него руками следующий программный код:
# -*- coding: utf- 8 -*- a = 11 b = 12 c = 13 d = 14 e = u"Книга о приключениях Остапа Бендера называлась: " f = u"или" g = u"стульев." h = u"Какой ответ правильный?" k = u"Правильный ответ: " m = k + u"%d" % b print u"%s %d, %d, %d %s %d %s" % (e, a, b, c, f, d, g) print h print m + g
Как видите, в этом коде я не только ввел разные переменные (если забыли, повторяем урок про переменные), но и операторы форматирования (повторяем урок про операторы форматирования). А поскольку мы все-таки выводим кириллический текст, то когда присваиваем его переменным, не забываем вводить букву u и ставить кавычки.
Теперь открываем программу PowerShell и прописываем команду python desktop/test7.py
У вас должно получиться следующее:
Как мы видим, в итоговом варианте вывода на экран компьютера выводится обычный текст.
Домашнее задание
Поменяйте в коде значения переменных. Например, введите другие числа – 110, 111, 158 и 199. И посмотрите, что получится. Или введите новое название книги или фильма – «101 далматинец», или «38 попугаев». Вводите разные значения переменных и смотрите, что в итоге получается в программе PowerShell.
Важно
Обязательно пропишите комментарии к каждой строке программного кода. А именно: что происходит в данной строке, для чего мы прописали те или иные команды или что сделали (присвоили значение переменной).
Эти комментарии нужны именно вам для понимания процесса программирования – зачем мы присваиваем или прописываем тот или иной код. Это важно на данном этапе обучения, так как потом эти знания будут нужны для более сложных разделов программирования.
Подробнее про комментарии в коде — ЧИТАТЬ.
В следующем уроке выучим что такое и зачем нужны команда \n и тройные кавычки — перейти в урок 13.
- Вы здесь:
- Главная
- Python 2.7 с нуля
- Урок 12. Вывод строк и текста в Питоне через переменные
Переменные в Python: что это такое и какие они бывают
Как хранить данные в Python, чтобы обращаться к ним было легко и приятно.
Иллюстрация: Оля Ежак для Skillbox Media
Иван Стуков
Журналист, изучает Python. Любит разбираться в мелочах, общаться с людьми и понимать их.
Если вы откроете любую программу в Python, то, скорее всего, увидите много таких равенств:
Как давать имена переменным
Создавая переменную на языке Python, программисты придумывают ей названия по определённым правилам именования:
- первый символ должен быть заглавной или строчной латинской буквой или нижним подчёркиванием _;
- остальные символы могут быть заглавными или строчными латинскими буквами, нижними подчёркиваниями и цифрами;
- нельзя использовать пробелы;
- имя переменной не должно совпадать ни с каким из зарезервированных в Python ключевых слов .
Приведём несколько примеров.
- Какие имена можно давать переменным: x, X, xyz, _x_y_z, XYZ, xyz_123, _123, x1Y2z2.
- Как нельзя называть переменные: 1, 1x, x y z, x&y.
Python чувствителен к регистру. Таким образом, name и Name будут считаться разными переменными.
Хотя переменные можно называть именами стандартных библиотечных функций, делать так не стоит — это закроет доступ к функции:
В любой момент мы можем присвоить переменной новое значение. Тогда она станет ссылаться на другой объект:
x = 1.2 y = 'строка'
Теперь x и y ссылаются на другие объекты с другими адресами. И так как больше ни одна переменная не ссылается на объект по адресу 2056817043856, то его автоматически удалит сборщик мусора.
Множественное присваивание значений
Если нескольким переменным нужно присвоить одно и то же значение, это можно сделать в одну строку с помощью следующей конструкции:
x = y = z = 4
print(x, y, z) >>> 4 4 4
Для присвоения разных значений тоже есть способ:
x, y, z = 1, 'игрек', ['список', 'со', 'строками'] print(x, y, z) >>> 1 игрек ['список', 'со', 'строками']
Импорт переменных
Если переменную нужно импортировать из другого файла, то используют конструкцию from import .
Например, у нас есть файл variables1.py:
name = 'Виктория' age = 23 city = 'Москва'
Используем переменную name в файле variables2.py:
from variables1 import name print(name) >>> Виктория
При этом доступа к другим переменным из variables1.py в таком случае нет:
from variables1 import name print(age) >>> NameError: name 'age' is not defined
Чтобы импортировать несколько переменных, их можно перечислить через запятую:
from variables1 import name, age print(name, age) >>> Виктория 23
Для импорта всех объектов после import ставят звёздочку *:
from variables1 import * print(name, age, city) >>> Виктория 23 Москва
Удаление переменных
Чтобы удалить переменную, используют ключевое слово del:
x = 4 del x print(x) >>> NameError: name 'x' is not defined
Типы переменных в Python
Все переменные существуют внутри определённой области видимости. В Python их три:
- локальная — внутри одной функции;
- глобальная — внутри целой программы (py-файла);
- нелокальная — внутри двух смежных функций (внутренней и внешней).
Переменные, которые принадлежат к той или иной области видимости, образуют её пространство имён.
Локальные переменные
Любые переменные, которые объявлены внутри функции, остаются только в этой функции. Например:
def local_namespace(): x = 4 x = x ** 2 return x print(local_namespace()) >>> 16
Мы можем, как обычно, распоряжаться x: изменять значение, проводить операции, возвращать — но только до тех пор, пока мы делаем это внутри функции local_namespace().
Если мы решим обратиться к x где-то в другой части программы, то интерпретатор её просто не увидит:
def local_namespace(): x = 4 x = x ** 2 return x print(x) >>> NameError: name 'x' is not defined
И наоборот: функция может распоряжаться только теми переменными, которые находятся внутри неё:
x = 4 def local_namespace(): x = x ** 2 return x print(local_namespace()) >>> UnboundLocalError: local variable 'x' referenced before assignment
При этом функция может считывать переменные из глобальной области видимости — просто не имеет права изменять их.
x = 4 def local_namespace(): y = x ** 2 return y print(x) print(local_namespace()) >>> 4 >>> 16
В итоге внутри одной программы может быть сразу несколько переменных с одним и тем же именем. Для этого они должны находиться в разных пространствах имён:
x = 0 def local_namespace(): x = 4 x = x ** 2 return x print(x) print(local_namespace()) >>> 0 >>> 16
Глобальные переменные
Любая переменная, которую объявляют вне функций, является глобальной. Она существует в пространстве имён всего py-файла.
Как мы показали выше, к ней можно обратиться внутри функции, но нельзя изменять. Чтобы исправить это, существует ключевое слово global:
x = 4 def local_namespace(): global x x = x ** 2 return x print(local_namespace()) >>> 16
Если мы создаём новую переменную внутри функции, то тем же ключевым словом global можем сделать её глобальной:
def local_namespace(): global x x = 4 return x print(local_namespace()) print(x) >>> 4 >>> 4
Нелокальные переменные
Нелокальные переменные используются, когда одна функция вложена в другую, и охватывают пространство имён только этих двух функций.
Их создают с помощью ключевого слова nonlocal.
def nonlocal_namespace(): x = 4 def local_namespace(): nonlocal x x = x ** 2 return x return local_namespace() print(nonlocal_namespace()) >>> 16
При этом в глобальной области видимости к нелокальной переменной мы обратиться не можем:
def nonlocal_namespace(): x = 4 def local_namespace(): nonlocal x x = x ** 2 return x return local_namespace() print(x) >>> NameError: name 'x' is not defined
Проверка существования переменной
В Python есть функции globals() и locals(). Они возвращают словарь с таблицей глобальных и локальных символов соответственно. В них, помимо прочего, хранятся данные о переменных.
Ключом в этих словарях является строка с именем переменной — так можно проверить её существование:
name = 'Виктория' if 'name' in globals(): print(True) >>> True
Также из этого словаря по имени переменной можно достать её значение:
name = 'Виктория' if 'name' in globals(): print(globals().get('name')) >>> Виктория
Точно так же можно делать и в локальной области видимости:
def local_namespace(): name = 'Виктория' if 'name' in locals(): print(locals().get('name')) local_namespace() >>> Виктория
Максимально возможное значение переменной
В Python, в отличие от многих других языков программирования, нет особого типа данных для хранения больших чисел. Все целые числа относятся к классу int, все числа с плавающей запятой — к классу float.
При этом никаких ограничений эти классы не предусматривают. Любая переменная любого типа данных может содержать в себе сколь угодно большое значение, пока хватает памяти компьютера.
Печать одиноких и множественных переменных
Для печати в Python используется функция print(). С её помощью можно вывести как одиночную переменную, так и несколько, перечислив их через запятую:
name, age, city = 'Виктория', 23, 'Москва' print(name) print(name, age, city) >>> Виктория >>> Виктория 23 Москва
Также в Python можно форматировать печать переменных. Для этого предусмотрено несколько способов, но самый удобный из них — f-строки. Нужно передать функции print() строку c буквой f перед ней. Сами переменные указываются в фигурных скобках: .
name, age, city = 'Виктория', 23, 'Москва' print(f'Имя: . Возраст: . Город: .') >>> Имя: Виктория. Возраст: 23. Город: Москва.
Итоги
- Переменные в Python состоят из имени и значения. При этом они хранят в себе не само значение, а ссылку на его адрес в памяти.
- Для их именования используют цифры (не могут быть первым символом в имени), латинские буквы и нижние подчёркивания.
- В Python не надо отдельно объявлять переменную — ей сразу присваивают значение. В одной строке можно создать сразу несколько переменных.
- Они существуют внутри определённой области видимости. Переменные бывают глобальные (внутри всей программы), локальные (внутри одной функции) и нелокальные (внутри двух вложенных друг в друга функций).
- У переменных в Python нет ограничения по размеру — они могут быть настолько большими, насколько хватит памяти устройства.
- Их можно импортировать из других файлов, удалять, проверять их существование в текущей области видимости, печатать в форматированной строке.
Читайте также:
- Типы данных в Python для начинающих: какие бывают и как с ними работать
- Тест: что ты знаешь о создателе Python Гвидо ван Россуме?
- Пишем десктоп-приложение на Python с помощью Tkinter
Вот их список: and, as, assert, async, await, break, class, continue, def, del, elif, else, except, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield.
Целое число, число с плавающей запятой, строка, список, словарь и так далее.