Несколько значений в одной переменной
Почему «инт» и «мап» нессовместимы?
Как этого избежать в будущем?
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как задать переменной несколько значений
Всем привет! Пытаюсь создать что то типа базы данных по нормативной документации. Появилась.
несколько значений в одной переменной
всем доброго времени суток, пишу программу и нужно вместить в одну переменную char x поместить два.
Несколько значений в одной переменной и последующее ее использование
Всем привет Можно ли в MS SQL 2016 передать несколько значений в переменную? а точнее как мне в.
Переход по значениям в переменной (несколько значений в одной)
Здравствуйте! У меня есть переменная sDiscipline. В нее я поместил названия предметов. Как мне.
Как вывести несколько значений одной переменной в listbox
Есть простенький цикл с расчётом значений эксперимента. При выводе значений в listbox выводится.
Обмен значений переменных

Если попытаться сделать такой обмен, сначала присвоив первой переменной значение второй, а второй — значение первой, ничего не получится. Допустим, есть две переменные a и b . При этом a = 5 и b = 6 . Если выполнить выражение a = b , то переменная a будет хранить число 6, также как и b . Число 5 будет утеряно. После этого выражение b = a теряет смысл, так как b будет присвоено его же текущее значение. В данном случае 6.
Поэтому в программировании при обмене значений переменных обычно вводят третью, играющую роль буфера (буферная переменная). В ней сохраняют значение первой переменной, потом первой присваивают значение второй, a новое значение для второй берут из буфера.
Таким образом классический алгоритм обмена значений двух переменных выглядит так:
a = 5 b = 6 buf = a a = b b = buf
Полная версия программы, которая запрашивает ввод двух значений с клавиатуры:
a = input('a: ') b = input('b: ') buf = a a = b b = buf print('a =', a) print('b =', b)
Пример выполнения программы:
a: 91 b: 162 a = 162 b = 91
Есть другой способ, позволяющий не использовать третью переменную, — арифметический. Он подходит только для чисел.
a = 5 b = 7 a = a + b # 12 b = a - b # 12-7=5 a = a - b # 12-5=7
a = int(input('a: ')) b = int(input('b: ')) a = a + b b = a - b a = a - b print('a =', a) print('b =', b)
Третий вариант — использовать имеющееся в Python множественное присваивание. При этом обмен значений переменных выполняется одной строкой кода:
>>> a = 10 >>> b = 20 >>> a, b = b, a >>> a 20 >>> b 10
Почему такое возможно? В Питоне есть такая структура данных как кортеж.
При выполнении a, b = b, a интерпретатор Python сначала получает значения связанные с переменными b и a (правая часть) и помещает их в кортеж, в данном случае получится (10, 20) . После этого он связывает каждый элемент кортежа в определенной позиции с переменными в той же позиции, но расположенными слева.
Таким образом можно поменять значения не только двух переменных, также трех и более. Кроме того в Python можно обменивать значения переменных разных типов. Это связано с тем, что тип данных в Питоне привязан не к переменной, а к значению:
>>> a = 14 >>> b = 18 >>> c = 16 >>> a,b,c = c,a,b >>> a,b,c (16, 14, 18) >>> d = 4.56 >>> e = "hi" >>> d,e = e,d >>> d 'hi' >>> e 4.56
X Скрыть Наверх
Решение задач на Python
Как в одну переменную записать несколько значений питон
Одна из приятных возможностей языка Python — использование последовательностей для односременного присваивания нескольких значений.
Пример 1.26. Присваивание сразу нескольких значений
>>> v = ('a', 'b', 'e') >>> (x, y, z) = v >>> x 'a' >>> y 'b' >>> z 'e'
| v — кортеж из трех элементов и (x, y, z) — кортеж из трех элементов. Присваивание одного другому приводит к присваиванию каждого значения из v соответствующей переменной. |
Использовать эту возможность можно по-разному. У меня часто возникает необходимость присвоить переменным диапазон значений. В языке C, вы бы использовали тип enum и вручную перечислили каждую константу и ассоциированное с ней значение, что утомительно, особенно, если значения идут подряд. Python позволяет использовать встроенную функцию range совместно с множественным присваиванием.
Пример 1.27. Присваивание идущих подряд значений
>>> range(7) [0, 1, 2, 3, 4, 5, 6] >>> (MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) = range(7) >>> MONDAY 0 >>> TUESDAY 1 >>> SUNDAY 6
| Встроенная функция range возвращает список целых чисел. В простейшем случае она воспринимает в качестве аргумента верхний предел и возвращает список целых чисел от нуля до обозначенного придела, но не включая предельное значение. При желании вы можете указать нижний предел отличный от нуля и шаг отличный от еденицы. Выполните инструкцию print range.__doc__ для получения более подробной информации. | |
| MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY и SUNDAY — переменные, которые мы определяем. Этот пример взят из модуля calendar, печатающего календари, аналогично программе cal в UNIX. Этот модуль определяет целочисленные константы для дней недели. | |
| Теперь каждая переменная имеет свое значение: MONDAY равна 0, TUESDAY — единице, и т. д. |
Множественное присваивание также полезно при использовании функций, возвращающих несколько значений в виде кортежа. Вы просто присваиваете их отдельным переменным. Так поступают многие стандартные библиотеки языка Python, включая модуль os, который обсуждается в главе 3.
- В How to Think Like a Computer Scientist показано, как использовать множественное присваивание для обмена значениями двух переменных.
Copyright © 2000, 2001, 2002 Марк Пилгрим
Copyright © 2001, 2002 Перевод, Денис Откидач
Переменные в Python
Переменные — важная часть любого языка программирования. Они позволяют хранить, использовать и передавать данные.
Переменные позволяют не только удобно манипулировать данными, но и разделять их на типы, с которыми можно работать по определённым правилам. В Python они подчиняются концепциям, используемым в других языках программирования, однако они также имеют особенности, например, тип явно не объявляется.
Создание и присвоение значений
Создание переменной в Python 3 отличается от других языков программирования. Её не нужно заранее объявлять, указывать её тип, она создается в момент присваивания значения.
Чтобы создать переменную, используется символ равенства «=». Слева от которого пишут наименование, а справа — значение нужного типа. Пример:
name = "Александр" # Типа str (строка) age = 15 # Типа int (целое число)
Динамическая типизация
Такое создание переменных возможно благодаря динамической типизации.
Переменную не нужно объявлять заранее, потому что тип определяется по присвоенному значению, кроме того, при повторном присваивании значения другого типа, не нужно переопределять тип.
Множественное присваивание и обмен значениями
Python позволяет программисту присвоить одно и то же значение нескольким переменным:
a = b = c = 5 # Все (a, b и с) хранят значение 5
Кроме того, в отличие от других языков программирования Python позволяет обменять значения двух переменных —
a = 5, b = 3, с = 7 a, b = b, a # Теперь a = 3, а b = 5 a, b, c = c, a, b # Можно обменивать значения не только для двух
Такая операция возможна, потому что Python используется кортеж, в который помещает значения, чтобы можно было поменять их местами.
Если использовать классический способ, применяемый в других языках, необходимо вводить дополнительную переменную, которая по сути является буфером для временного хранения значений.
Имена
В именах переменных в Python 3 можно использовать только буквы, цифры и символы подчеркивания. Цифры можно использовать в любой части имени, кроме начала.
И если синтаксис накладывает на программиста мало ограничений, то IT сообщество требует «хороших» имён для переменных:
- Имя должно описывать назначение. Так как код может перечитываться и изменяться множество раз, названия переменных должны быть такими, чтобы по ним можно было понять, что она хранит и для чего используется.
- Не нужно использовать транслит. Если программист хочет создать переменную, хранящую возраст программиста, он должен писать не «vozrast», а «age». Это обусловлено тем, что английский — самый используемый язык в IT, название на английском поймут все, в любом случае, можно воспользоваться переводчиком.
- Приемлемая длина. Имя должно не только отражать суть, но и быть коротким, слишком длинные названия увеличивают объем кода и ухудшают его восприятие.
Для создания хороших имён используются следующие методы:
- CamelCase (верблюжий регистр): первое слово начинается с маленькой буквы, а следующие за ним с большой. В Python CamelCase принято использовать для имён классов. Например: WorkersOfFactory .
- Snake Case: имя состоит из слов, разделенных символом подчеркивания «_», каждое слово пишут с маленькой буквы, например, hello_world . В Python Snake Case используется для имён функций, модулей и переменных. Такой стиль записи воспринимается лучше, чем CamelCase. Кроме того, он имеет несколько вариаций, которые не используются в Python: таких как запись через дефис «-» (kind-of-animals) и запись каждого слова с большой буквы (Sorted-Array-Of-Names).
Зарезервированные имена (ключевые слова)
Нельзя назвать переменную именем, которое уже зарезервировано, как ключевое слово. В Python есть около 33 зарезервированных имён: def, True, False, break и так далее.
Полный список ключевых слов можно посмотреть, набрав в интерпретаторе Python команду: help(«keywords») .
Вывод в консоль
Чтобы вывести переменную на экран, используют функцию print(). С её помощью можно вывести значение одной или нескольких переменных в форматированном выводе. Есть несколько вариантов синтаксиса вывода:
- print(«<> — число, <> — слово».format(number, word)). Например, переменная number хранит значение 5, а word хранит «пять», тогда на экран выведется: «5 — число, пять — слово».
- Можно обойтись без использования .format, достаточно писать составные части вывода через запятую: print(number, » — число», word, » — слово»).
Вывод обоих способов будет одинаковым, кроме того, не нужно указывать тип переменной, интерпретатор определит его сам.
Пустая переменная
Переменная — это ссылка на какой-то объект, она не может не содержать совсем ничего. Если программист хочет сделать его пустой (условно пустой), он присваивает ей значение None .
None используется в случаях, когда значение не определено, не существует. И хотя он не эквивалентен какому-либо значению типа bool, строке или числу, он также является объектом.
При необходимости, можно проверить содержимое переменной следующим образом:
a = None if a is None: print('значение равно None') else: print('другое значение')
Может использоваться, например, когда мы в переменной храним указатель на открытый файл. И когда мы этот файл закрываем, то присваиваем указателю значение None. В дальнейшем можно проверять будет перед записью или чтением данных, является ли переменная пустой.
Области видимости
В Python есть глобальная и локальная область видимости. Объявление переменных в разных областях видимости помогает избежать пересечения имён, открывает программисту новые уровни взаимодействий между ними и делает код более безопасным, делая невозможным несанкционированный доступ к механизмам работы функций.
Глобальная область видимости — это тело исполняемого скрипта. К любой переменной, объявленной в ней, можно получить доступ из любой части программы, даже из другого модуля.
Чтобы получить доступ к глобальной переменной из функции, необходимо использовать ключевое слово global, оно показывает интерпретатору, что нужно использовать находящуюся в глобальной области видимости. Кроме того, если функция не находит в своём теле нужную переменную, она автоматически ищет её в глобальной области видимости скрипта и использует.
Локальная область видимости недоступна для редактирования из вне, любая переменная, объявленная внутри функции будет находиться в локальной области видимости, это позволяет использовать одно и то же имя много раз в одной программе, защитить функцию от ненужных изменений и упростить написание кода.
В 3 версии Python было добавлено ключевое слово nonlocal . Оно позволяет получить доступ к переменной из локальной области видимости функции, при условии, что программист пытается получить доступ из другой вложенной функции. Пример:
def count(): n = 0 def inc(): n += 1 # Вызовется ошибка, функция не может получить доступ nonlocal n n += 1 # К n из внешней функции прибавится 1 return n inc() return n # будет равна 1 (если закомментировать строку с ошибкой)
Удаление
Для удаления переменной в Python 3 можно воспользоваться функцией del() , в качестве аргумента в которую нужно передать её имя. Пример:
a = 5 del(a) print(a) # Произойдёт исключение
Заключение
Python даёт программисту все необходимое для работы с переменными, он предоставляет и такие инструменты, которых нет в других языках программирования, например, обмен значений.
Python делает работу с переменными очень простой, он позволяет не объявлять их типы, присваивать уже существующей значение другого типа и поддерживает работу с областями видимости.
