Функция map() в python, обработка последовательности без цикла
Содержание:
- Преобразование в кортежи и списки
- The getchar() and putchar() Functions
- Недостатки подсказок типа
- Как читать и писать на Python
- 8 ответов
- HTML Tutorial
- Данные и их типы
- Решение задач
- Операции в программировании
- Получить несколько значений от пользователя
- Пример пользовательского ввода Python и EOFError
- Создание списков на Python
- Применяет определенную функцию к каждому элементу в последовательности.
- The gets() and puts() Functions
- Класс Python BytesIO
- Вывод данных. Функция print()
Преобразование в кортежи и списки
Вы можете использовать методы и для преобразования переданных им значений в тип данных списка и кортежа соответственно. В Python:
- список является изменяемой упорядоченной последовательностью элементов, заключенных в квадратные скобки .
- кортеж является неизменяемой упорядоченной последовательностью элементов, заключенных в круглые скобки .
Преобразование в кортежи
Начнем с преобразования списка в кортеж. Поскольку кортеж — это неизменяемый тип данных, такое преобразование может способствовать существенной оптимизации наших программ. Метод возвращает «кортежную» версию переданного ему значения.
print(tuple())
Мы видим, что в результате выводится кортеж, поскольку элементы теперь заключены в круглые, а не в квадратные скобки.
Давайте используем с переменной, представляющей список:
sea_creatures = print(tuple(sea_creatures))
Опять же, мы видим, что значения списка преобразуются в значения кортежа, что обозначается круглыми скобками.
Мы можем преобразовать в кортеж не только список, но и любой итерируемый тип, включая строки:
print(tuple('Sammy'))
Строки можно преобразовывать в кортежи с помощью метода , потому что они итерируемые (их можно перебирать). Но с типами данных, которые не являются итерируемыми (пример — целые числа и числа с плавающей запятой), мы получим ошибку:
print(tuple(5000))
Можно преобразовать целое число в строку, а затем в кортеж: . Но лучше выбрать читаемый код, а не сложные преобразования.
Преобразование в списки
Преобразование значений, особенно кортежей, в списки может быть полезно, когда вам нужно иметь изменяемую версию этого значения. Для преобразования в список используется метод .
Давайте преобразуем кортеж в список. Будьте внимательны со скобками: одна пара для кортежа, вторая — для метода , а третья — для метода :
print(list(('blue coral', 'staghorn coral', 'pillar coral')))
Квадратные скобки сигнализируют о том, что кортеж, переданный в метод , преобразован в список.
Чтобы сделать код более читабельным, мы можем ввести переменную и удалить одну из пар круглых скобок:
coral = ('blue coral', 'staghorn coral', 'pillar coral') list(coral)
Если мы выведем , мы получим тот же результат, что и выше.
В список можно преобразовать не только кортеж, но и строку:
print(list('shark'))
The getchar() and putchar() Functions
The int getchar(void) function reads the next available character from the screen and returns it as an integer. This function reads only single character at a time. You can use this method in the loop in case you want to read more than one character from the screen.
The int putchar(int c) function puts the passed character on the screen and returns the same character. This function puts only single character at a time. You can use this method in the loop in case you want to display more than one character on the screen. Check the following example −
#include <stdio.h> int main( ) { int c; printf( "Enter a value :"); c = getchar( ); printf( "\nYou entered: "); putchar( c ); return 0; }
When the above code is compiled and executed, it waits for you to input some text. When you enter a text and press enter, then the program proceeds and reads only a single character and displays it as follows −
$./a.out Enter a value : this is test You entered: t
Недостатки подсказок типа
- Для подсказок типа нет преимуществ во время выполнения. Он не применяет типы и не вызывает никаких предупреждений или ошибок, если передается другой тип аргумента.
- Подсказки типа больше похожи на документацию. Если функция была изменена, и разработчик пропустил изменение подсказок типа соответствующим образом, он даст неправильное сообщение разработчику, использующему функцию. Поддержка подсказок типа отнимает много времени и требует усилий разработчиков.
- Немного замедляет скорость работы программы.
- Подсказки типа были введены в Python 3.5, поэтому он довольно новый и не будет работать со старыми версиями Python.
Как читать и писать на Python
Каждая программа в конечном итоге является процессором данных, поэтому мы должны знать, как вводить и выводить в нее данные. Для вывода данных из любой программы Python существует функция . Чтобы использовать его, передайте список аргументов, которые вы хотите распечатать, в функцию . Давайте посмотрим пример. Нажмите «run», а затем «next», чтобы увидеть, как программа выполняется по строкам:
None
print(5 + 10) print(3 * 7, (17 - 2) * 8) print(2 ** 16) # две звезды используются для возведения в степень (2 до степени 16) print(37 / 3) # одиночная косая черта - это разделение print(37 // 3) # двойная косая черта - это целочисленное деление # он возвращает только фактор деления (т. е. никакого остатка) print(37 % 3) # знак процента - оператор модуля # он дает оставшуюся часть левого значения, деленное на правильное значение
Чтобы вводить данные в программу, мы используем . Эта функция читает одну строку текста в виде строки.
Вот программа, которая читает имя пользователя и приветствует их:
John
print('What is your name?') name = input() # прочитайте одну строку и сохраните ее в переменной "name" print('Hi ' + name + '!')
8 ответов
Лучший ответ
Нет, обычный способ —
В вашем случае вы можете использовать , если хотите, чтобы они были целыми числами, а не строками
Не используйте для этого. Посмотрим, что произойдет, если пользователь вводит
29
John La Rooy
19 Окт 2009 в 11:02
Вы можете использовать этот метод для ввода входных данных в одну строку
Имейте в виду, что вы можете использовать любое количество переменных в LHS этого утверждения.
Чтобы воспринимать входные данные как строку, используйте str вместо int .
И взять список в качестве входных данных
Amber Bhanarkar
19 Янв 2020 в 13:38
Или ты можешь сделать это
Tunaki
27 Янв 2016 в 12:09
Вы также можете использовать этот метод для любого количества входов. Рассмотрим следующее для трех входов, разделенных пробелами:
1
Bart Van Loon
19 Окт 2017 в 22:23
Вы можете прочитать 2 значения типа int, используя это в python 3.6.1
1
Sai Gopi Me
29 Авг 2017 в 01:43
Сначала прочитайте всю строку в строку вроде
Затем используйте цикл for, как это
Этот цикл принимает полную строку в качестве входных данных для строки и обрабатывает отдельные части в ней, а затем добавляет числа в список — после преобразования их в целые числа.
1
Pinkoo
28 Фев 2015 в 05:18
Я новичок в этом деле. Сделал небольшое исследование с сайта python.org и немного взломал, чтобы заставить это работать. Функция raw_input снова вернулась, вместо input . Вот что я придумал:
Конечно, код не такой элегантный, как однострочные, использующие scanf в C или cin в C ++. Код Python ближе к Java (который использует совершенно другой механизм, чем C, C ++ или Python), так что каждая переменная должна рассматриваться отдельно.
В Python функция raw_input получает символы с консоли и объединяет их в одну строку в качестве выходных данных. Когда в левой части оператора присваивания находится только одна переменная, функция split разбивает эту строку на список из String .
В нашем случае, когда мы ожидаем две переменные, мы можем получить значения в них, используя разделенный запятыми список их идентификаторов. Значения String затем присваиваются перечисленным переменным. Если мы хотим выполнить арифметику с этими значениями, нам нужно преобразовать их в числовой тип данных int (или float ), используя встроенный в Python int Функция strong> или float .
Я знаю, что эта публикация является ответом на очень старую публикацию, и, возможно, знания уже давно стали «общеизвестными». Тем не менее, я был бы признателен за публикацию, подобную этой, а не за то, что мне пришлось потратить несколько часов на поиск и взлом, пока я не придумал, как мне казалось, самое элегантное решение, которое можно представить в классе CS1.
5
Professor Richard
2 Янв 2015 в 21:58
Вы также можете прочитать из sys.stdin
10
MAK
19 Окт 2009 в 18:04
HTML Tutorial
HTML HOMEHTML IntroductionHTML EditorsHTML BasicHTML ElementsHTML AttributesHTML HeadingsHTML ParagraphsHTML StylesHTML FormattingHTML QuotationsHTML CommentsHTML Colors
Colors
RGB
HEX
HSL
HTML CSSHTML Links
Links
Link Colors
Link Bookmarks
HTML Images
Images
Image Map
Background Images
The Picture Element
HTML TablesHTML Lists
Lists
Unordered Lists
Ordered Lists
Other Lists
HTML Block & InlineHTML ClassesHTML IdHTML IframesHTML JavaScriptHTML File PathsHTML HeadHTML LayoutHTML ResponsiveHTML ComputercodeHTML SemanticsHTML Style GuideHTML EntitiesHTML SymbolsHTML EmojisHTML CharsetHTML URL EncodeHTML vs. XHTML
Данные и их типы
В реальной жизни мы совершаем различные действия над окружающими нас предметами, или объектами. Мы меняем их свойства, наделяем новыми функциями. По аналогии с этим компьютерные программы также управляют объектами, только виртуальными, цифровыми. Пока не дойдем до уровня объектно-ориентированного программирования, будем называть такие объекты данными.
Очевидно, данные бывают разными. Часто компьютерной программе приходится работать с числами и строками. Так на прошлом уроке мы работали с числами, выполняя над ними арифметические операции. Операция сложения выполняла изменение первого числа на величину второго, а умножение увеличивало одно число в количество раз, соответствующее второму.
Числа в свою очередь также бывают разными: целыми, вещественными, могут иметь огромное значение или очень длинную дробную часть.
При знакомстве с языком программирования Python мы столкнемся с тремя типами данных:
-
целые числа (тип ) – положительные и отрицательные целые числа, а также 0 (например, 4, 687, -45, 0).
-
числа с плавающей точкой (тип ) – дробные, они же вещественные, числа (например, 1.45, -3.789654, 0.00453). Примечание: для разделения целой и дробной частей здесь используется точка, а не запятая.
-
строки (тип ) — набор символов, заключенных в кавычки (например, «ball», «What is your name?», ‘dkfjUUv’, ‘6589’). Примечание: кавычки в Python могут быть одинарными или двойными; одиночный символ в кавычках также является строкой, отдельного символьного типа в Питоне нет.
Решение задач
1. Поэкспериментируйте с переводом в различные типы данных
2. Пользователь вводит свое имя и фамилию. Выведите:
Hello, имя фамилия
# На месте слов с % должны быть введенные данные
3. Посчитайте сумму трех введенных целых чисел
4. Посчитайте сумму трех введенных дробных чисел. Подумайте в какой тип данных нужно преобразовать значение, возвращенное функцией input
5. Дано число, выведите предыдущее и следущее за ним числа в таком формате:
# Число равно 10
Число предшествующее числу 10 равно 9
Число следующее за числом 10 равно 11
6. Вводятся имя и возраст. Выведите, где введенное имя = Максим, а возраст = 20
Привет, Максим! Ваш возраст равен 20!
Операции в программировании
Операция – это выполнение каких-либо действий над данными, которые в данном случае именуют операндами. Само действие выполняет оператор – специальный инструмент. Если бы вы выполняли операцию постройки стола, то вашими операндами были бы доска и гвоздь, а оператором – молоток.
Так в математике и программировании символ плюса является оператором операции сложения по отношению к числам. В случае строк этот же оператор выполняет операцию конкатенации, то есть соединения.
>>> 10.25 + 98.36 108.61 >>> 'Hello' + 'World' 'HelloWorld'
Здесь следует для себя отметить, что то, что делает оператор в операции, зависит не только от него, но и от типов данных, которыми он оперирует. Молоток в случае нападения на вас крокодила перестанет играть роль строительного инструмента. Однако в большинстве случаев операторы не универсальны. Например, знак плюса неприменим, если операндами являются, с одной стороны, число, а с другой – строка.
>>> 1 + 'a' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for +: 'int' and 'str'
Здесь в строке интерпретатор сообщает, что произошла ошибка типа – неподдерживаемый операнд для типов и .
Получить несколько значений от пользователя
Разработчик часто хочет, чтобы пользователь вводил несколько значений или входных данных в одну строку. InC++/C пользователь может принимать несколько входов в одной строке с помощью scanf, но в Python пользователь может принимать несколько значений или входов в одной строке двумя методами.
- метод split()
- Понимание списка
Использование метода split (): Эта функция помогает получить несколько входных данных от пользователя. Он разбивает данный вход на указанный разделитель. Если разделитель не предусмотрен, то любое пустое пространство является разделителем. Как правило, пользователь использует метод split() для разделения строки Python, но его можно использовать для получения нескольких входных данных.
Синтаксис:
input().split(separator, maxsplit)
Пример:
а) раскол ()
функция split( ) помогает нам получить несколько входных данных от пользователя и назначить их соответствующим переменным в одной строке. Кроме того, эта функция обычно используется для разделения данной строки на несколько href=»https://en.wikipedia.org/wiki/Substring»>подстроки. Однако вы также можете использовать его для нескольких входов. Функция обычно разбивает заданный вход указанным разделителем, и в случае, если разделитель не предусмотрен, то любое пустое пространство рассматривается как разделитель. href=»https://en.wikipedia.org/wiki/Substring»>подстроки. Однако вы также можете использовать его для нескольких входов. Функция обычно разбивает заданный вход указанным разделителем, и в случае, если разделитель не предусмотрен, то любое пустое пространство рассматривается как разделитель.
Синтаксис использования функции split для приема нескольких входных данных следующий:
variable 1, variable ("Enter what has to be conveyed to the user here"). split() # for space-separated inputs
Пример разделения
# Python program to take multiple inputs from the usera,("Enter two of your lucky number: ").split() print("First lucky number is: ", a) print("Second lucky number is: ", b)
Output:Enter two of your lucky number: 7 1First lucky number is: 7Second lucky number is: 1
б) входные данные ()
Вы можете взять несколько входов в одной строке, используя функцию raw_input несколько раз, как показано ниже.
#multiple inputs in Python using inputx,("Enter First Name: "), input("Enter Last Name: ") print("First Name is: ", x) print("Second Name is: ", y)
Output:Enter First Name: FACEEnter Last Name: PrepFirst Name is: FACESecond Name is: Prep
в) карта()
map () — это еще одна функция, которая поможет нам получить несколько входных данных от пользователя. В общем случае синтаксис функции map-это map (fun, iter). Здесь fun-это функция, которой функция map передает каждую итерацию.
Синтаксис для нескольких входов с использованием map()
variable 1, variable 2, variable(int, input().split())
Пример для получения целочисленных входных данных от пользователя.
#multiple inputs in Python using mapx,(int, input("Enter two values: ").split())print("First Number is: ", x) print("Second Number is: ", y)
Output:Enter two values: 7 1First Number is: 7Second Number is: 1
Пример для получения строкового ввода от пользователя.
#multiple inputs in Python using mapx,(str, input("Enter your first and last name ").split())print("First Name is: ", x) print("Second Name is: ", y)
г) Понимание Списка
Типы дат списка также помогают принимать несколько входных данных от пользователя одновременно. Синтаксис для создания списка и хранения входных данных в нем —
x, y =
Этот список позволяет одновременно принимать несколько входных данных разного типа. Приведенный ниже пример поможет вам лучше понять.
#multiple inputs in Python using list comprehensionx, y = print("Your name is: ", x) print("Your age is: ", y)
Output:Enter your name and age: FACE Prep, 8Your name is: FACE PrepYour age is: 8
Пример пользовательского ввода Python и EOFError
n Python 2, raw_input() возвращает строку, а input() пытается запустить ввод в виде выражения Python. Итак, изменение вашей первой строки на что-то вроде этого должно сработать.
(raw_input())
EOFError возникает, когда встроенная функция, такая как input() или raw_input (), не считывает никаких данных до того, как столкнется с концом своего входного потока. Файловые методы, такие как read (), возвращают пустую строку в конце файла.
Данный код переписывается следующим образом, чтобы поймать ошибку EOFError и найти ее тип.
#eofError.py try: while True:('prompt:') print 'READ:', data except EOFError as e: print e Then if we run the script at the terminal $ echo hello | python eofError.py
ВЫХОД
prompt:READ: hello prompt:EOF when reading a line
Создание списков на Python
- Создать список можно несколькими способами. Рассмотрим их.
1. Получение списка через присваивание конкретных значений
Так выглядит в коде Python пустой список:
s = # Пустой список |
Примеры создания списков со значениями:
l = 25, 755, -40, 57, -41 # список целых чисел l = 1.13, 5.34, 12.63, 4.6, 34.0, 12.8 # список из дробных чисел l = "Sveta", "Sergei", "Ivan", "Dasha" # список из строк l = "Москва", "Иванов", 12, 124 # смешанный список l = , , , 1, , 1, 1, 1, # список, состоящий из списков l = 's', 'p', 'isok', 2 # список из значений и списка |
2. Списки при помощи функции List()
Получаем список при помощи функции List()
empty_list = list() # пустой список l = list ('spisok') # 'spisok' - строка print(l) # - результат - список |
4. Генераторы списков
- В python создать список можно также при помощи генераторов, — это довольно-таки новый метод:
- Первый простой способ.
Сложение одинаковых списков заменяется умножением:
# список из 10 элементов, заполненный единицами l = 1*10 # список l = |
Второй способ сложнее.
l = i for i in range(10) # список l = |
или такой пример:
c = c * 3 for c in 'list' print (c) # |
Пример:
Заполнить список квадратами чисел от 0 до 9, используя генератор списка.
Решение:
l = i*i for i in range(10) |
еще пример:
l = (i+1)+i for i in range(10) print(l) # |
Случайные числа в списке:
from random import randint l = randint(10,80) for x in range(10) # 10 чисел, сгенерированных случайным образом в диапазоне (10,80) |
Задание Python 4_1:
Создайте список целых чисел от -20 до 30 (генерация).
Результат:
Задание Python 4_2:
Создайте список целых чисел от -10 до 10 с шагом 2 (генерация list).
Результат:
Задание Python 4_3:
Создайте список из 20 пятерок (генерация).
Результат:
Задание Python 4_4:
Создайте список из сумм троек чисел от 0 до 10, используя генератор списка (0 + 1 + 2, 1 + 2 + 3, …).
Результат:
Задание Python 4_5 (сложное):
Заполните массив элементами арифметической прогрессии. Её первый элемент, разность и количество элементов нужно ввести с клавиатуры.
* Формула для получения n-го члена прогрессии: an = a1 + (n-1) * d
Простейшие операции над списками
- Списки можно складывать (конкатенировать) с помощью знака «+»:
l = 1, 3 + 4, 23 + 5 # Результат: # l = |
33, -12, 'may' + 21, 48.5, 33 # |
или так:
a=33, -12, 'may' b=21, 48.5, 33 print(a+b)# |
Операция повторения:
,,,1,1,1 * 2 # , , , , , ] |
Пример:
Для списков операция переприсваивания значения отдельного элемента списка разрешена!:
a=3, 2, 1 a1=; print(a) # |
Можно!
Задание 4_6:
В строке записана сумма натуральных чисел: ‘1+25+3’. Вычислите это выражение. Работать со строкой, как со списком.
Начало программы:
s=input('введите строку') l=list(str(s)); |
Как узнать длину списка?
Применяет определенную функцию к каждому элементу в последовательности.
Параметры:
- — пользовательская функция, вызывается для каждого элемента,
- — последовательность или объект, поддерживающий итерирование.
Описание:
Функция выполняет пользовательскую функцию для каждого элемента последовательности, коллекции или итератора. Элемент отправляется в функцию в качестве параметра.
Если в пользовательскую функцию передано несколько последовательностей , то должна принимать количество аргументов соответствующее количеству переданных последовательностей, при этом применяется к элементам из всех итераций параллельно.
# функция должна принимать столько # аргументов, сколько последовательностей # передается в функцию map() def plus(a, b, c): return a + b +c # функция 'plus' применяется к элементам # из всех последовательностей параллельно >>> x = map(plus, 1, 2], 3, 4], 5, 6]) >>> list(x) #
При использовании нескольких последовательностей функция останавливается, когда исчерпывается самая короткая итерация.
def create_tuple(a, b): return a, b # функция `map()` останавливается, когда # заканчивается самая короткая последовательность >>> x = map(create_tuple, 'a', 'b'], 3, 4, 5]) >>> print(dict(x)) # {'a': 3, 'b': 4}
Можно так же использовать любую встроенную функцию с функцией при условии, что функция принимает аргумент и возвращает значение.
>>> x = 1, 2, 3 >>> y = 4, 5, 6, 7 # вычисление при помощи встроенной функции 'pow()' # 'x' в степени 'y' для каждого элемента 2-х списков >>> list(map(pow, x, y)) #
Для случаев, когда входные данные функции уже организованы в кортежи аргументов, смотрите функцию .
Преимуществ использования :
- Так как функция написана на языке C и хорошо оптимизирована, ее внутренний цикл более эффективный, чем обычный цикл в Python.
- Низкое потребление памяти. С помощью цикла программе необходимо хранить в памяти системы весь список элементов последовательности над которым производятся какие-то действия внутри цикла. При помощи функции элементы последовательности извлекаются по запросу, следовательно при каждом внутреннем цикле в памяти системы находится и обрабатывается только один элемент последовательности.
Примеры обработки последовательностей без циклов.
- ;
- ;
- .
Удаление пунктуации в тексте при помощи .
>>> import re >>> def clean(word): ... return re.sub(r"", "", word.strip()) >>> text = """С помощью цикла `for .. in:` программе необходимо хранить в памяти системы весь (список)! """ >>> word = text.split() >>> word = map(clean, word) >>> text = ' '.join(word) >>> text # 'С помощью цикла for in программе необходимо # хранить в памяти системы весь список'
The gets() and puts() Functions
The char *gets(char *s) function reads a line from stdin into the buffer pointed to by s until either a terminating newline or EOF (End of File).
The int puts(const char *s) function writes the string ‘s’ and ‘a’ trailing newline to stdout.
NOTE: Though it has been deprecated to use gets() function, Instead of using gets, you want to use fgets().
#include <stdio.h> int main( ) { char str; printf( "Enter a value :"); gets( str ); printf( "\nYou entered: "); puts( str ); return 0; }
When the above code is compiled and executed, it waits for you to input some text. When you enter a text and press enter, then the program proceeds and reads the complete line till end, and displays it as follows −
$./a.out Enter a value : this is test You entered: this is test
Класс Python BytesIO
Здесь мы можем хранить наши данные в виде байтов ( ). Когда мы используем , данные хранятся в буфере в памяти.
Мы можем получить экземпляр в поток байтов с помощью конструктора:
import io bytes_stream = io.BytesIO(b'Hello from Journaldev\x0AHow are you?')
Обратите внимание, что мы передаем байтовую строку (с префиксом ). Прямо сейчас – это просто дескриптор потока байтов
Прямо сейчас – это просто дескриптор потока байтов.
Чтобы на самом деле распечатать данные внутри буфера, нам нужно использовать .
import io bytes_stream = io.BytesIO(b'Hello from Journaldev\x0AHow are you?') print(bytes_stream.getvalue())
Здесь принимает значение байтовой строки из дескриптора.
Поскольку байтовая строка является представлением ASCII новой строки (‘\n’), мы получаем следующий вывод:
Выход
b'Hello from Journaldev\nHow are you?'
Теперь, это всегда хорошая практика, чтобы закрыть наш дескриптор буфера всякий раз, когда мы выполнили свою работу.
Это также делается для того, чтобы мы освободили всю память, выделенную для буфера.
Чтобы закрыть буфер, используйте:
bytes_stream.close()
Теперь давайте посмотрим на класс StringIO.
Вывод данных. Функция print()
Что такое функция в программировании, узнаем позже. Пока будем считать, что – это такая команда языка Python, которая выводит то, что в ее скобках на экран.
>>> print(1032) 1032 >>> print(2.34) 2.34 >>> print("Hello") Hello
В скобках могут быть любые типы данных. Кроме того, количество данных может быть различным:
>>> print("a:", 1) a: 1 >>> one = 1 >>> two = 2 >>> three = 3 >>> print(one, two, three) 1 2 3
Можно передавать в функцию как непосредственно литералы (в данном случае «a:» и 1), так и переменные, вместо которых будут выведены их значения. Аргументы функции (то, что в скобках), разделяются между собой запятыми. В выводе вместо запятых значения разделены пробелом.
Если в скобках стоит выражение, то сначала оно выполняется, после чего уже выводит результат данного выражения:
>>> print("hello" + " " + "world") hello world >>> print(10 - 2.5/2) 8.75
В предусмотрены дополнительные параметры. Например, через параметр можно указать отличный от пробела разделитель строк:
>>> print("Mon", "Tue", "Wed", "Thu", ... "Fri", "Sat", "Sun", sep="-") Mon-Tue-Wed-Thu-Fri-Sat-Sun >>> print(1, 2, 3, sep="//") 1//2//3
Параметр позволяет указывать, что делать, после вывода строки. По-умолчанию происходит переход на новую строку. Однако это действие можно отменить, указав любой другой символ или строку:
>>> print(10, end="") 10>>>
Обычно используется не в интерактивном режиме, а в скриптах, когда несколько выводов подряд надо разделить не переходом на новую строку, а, скажем, запятыми. Сам переход на новую строку обозначается символом ‘\n’. Если присвоить это значение параметру , то никаких изменений в работе функции вы не увидите, так как это значение и так присвоено по-умолчанию:
>>> print(10, end='\n') 10 >>>
Однако, если надо отступить на одну дополнительную строку после вывода, то можно сделать так:
>>> print(10, end='\n\n') 10 >>>
Следующее, что стоит рассказать о функции – это использование форматирования строк. На самом деле оно никакого отношения к не имеет, а применяется к строкам. Однако часто форматирование используется в сочетании с вызовом функции .
Форматирование может выполняться в так называемом старом стиле или с помощью строкового метода . Старый стиль также называют Си-стилем, так как он схож с тем, как происходит вывод на экран в языке C. Рассмотрим пример:
>>> pupil = "Ben" >>> old = 16 >>> grade = 9.2 >>> print("It's %s, %d. Level: %f" % ... (pupil, old, grade)) It's Ben, 16. Level: 9.200000
Здесь вместо трех комбинаций символов , , подставляются значения переменных pupil, old, grade. Буквы , , обозначают типы данных – строку, целое число, вещественное число. Если бы требовалось подставить три строки, то во всех случаях использовалось бы сочетание .
Хотя в качестве значения переменной grade было указано число 9.2, на экран оно вывелось с дополнительными нулями. Однако мы можем указать, сколько требуется знаков после запятой, записав перед буквой точку с желаемым числом знаков в дробной части:
>>> print("It's %s, %d. Level: %.1f" ... % (pupil, old, grade)) It's Ben, 16. Level: 9.2
Теперь посмотрим на метод :
>>> print("This is a {0}. It's {1}." ... .format("ball", "red")) This is a ball. It's red. >>> print("This is a {0}. It's {1}." ... .format("cat", "white")) This is a cat. It's white. >>> print("This is a {0}. It's {1} {2}." ... .format(1, "a", "number")) This is a 1. It's a number.
В строке в фигурных скобках указаны номера данных, которые будут сюда подставлены. Далее к строке применяется метод . В его скобках указываются сами данные (можно использовать переменные). На нулевое место подставится первый аргумент метода , на место с номером 1 – второй и т. д.
На самом деле возможности метода существенно шире, и для их изучения понадобился бы отдельный урок. Нам пока будет достаточно этого.