Функции input и print ввода/вывода
Содержание:
- Error handling
- Пример 9: Форматирование элементов словаря
- Функция input
- Method 3: Explicitly print to the file
- #4 Template Strings (Standard Library)
- Принципы функционального программирования
- Итерация по списку в Python С использованием цикла и диапазона
- Шаг 1. Загрузить набор данных в Python
- Как лучше выбирать элементы из списка?
- Пример 10: Динамическое форматирование
- Добавление формул
- Форматирование индекса с форматом Python ()
- Для аргументов ключевого слова
- Python для систем счисления
- Python Tutorial
- Python string formatting integer
- Padding Variable Substitutions
- Форматирование строк
- Ввод и вывод данных
Error handling
There are two classes of exceptions which can occur during formatting:
exceptions generated by the formatter code itself, and exceptions
generated by user code (such as a field object’s ‘getattr’ function).
In general, exceptions generated by the formatter code itself are
of the «ValueError» variety — there is an error in the actual «value»
of the format string. (This is not always true; for example, the
string.format() function might be passed a non-string as its first
parameter, which would result in a TypeError.)
The text associated with these internally generated ValueError
exceptions will indicate the location of the exception inside
the format string, as well as the nature of the exception.
For exceptions generated by user code, a trace record and
dummy frame will be added to the traceback stack to help
in determining the location in the string where the exception
occurred. The inserted traceback will indicate that the
error occurred at:
File "<format_string>;", line XX, in column_YY
where XX and YY represent the line and character position
information in the string, respectively.
Пример 9: Форматирование элементов словаря
# define Person dictionary person = {'age': 23, 'name': 'Adam'} # format age print("{p}'s age is: {p}".format(p=person))
Выход
Adam's age is: 23
Подобно классу, словарь человека передается как аргумент ключевого слова p.
Внутри строки шаблона для доступа к имени и возрасту человека используются и соответственно.
Есть более простой способ форматирования словарей в Python с помощью str.format (** сопоставление).
# define Person dictionary person = {'age': 23, 'name': 'Adam'} # format age print("{name}'s age is: {age}".format(**person))
** ‒ параметр формата (минимальная ширина поля).
Функция input
Функция input является функцией стандартного ввода (stdin). Ее главная задача — это передача введенных пользователем данных в функцию.
name = input()
print(‘Hello, ‘ + name)
Функция input может принимать всего лишь один аргумент — строку, которая выведется перед кареткой ввода
name = input(‘Enter your name: ‘)
print(‘Hello, ‘ + name)
Функция input возвращает строковый тип данных
Строки можно складывать друг с другом — это называется конкатенацией или объединением
number = input()
print(type(number))
#
Поэтому если мы напишем такой код, то он будет работать некорректно:
number1 = input()
number2 = input()
print(number1 + number2)
# Ввод:
# 1
# 2
# Вывод:
# 12
Поэтому необходимо преобразовать строковый тип в целочисленный (str в int)
number1 = int(input())
number2 = int(input())
print(number1 + number2)
# Ввод:
# 1
# 2
# Вывод:
# 3
Всегда проверяйте тип полученных данных, это поможет вам избежать большого количества ошибок. К слову, если вы что-то напутали с типами переменных, то Python выдаст ошибку TypeError (ошибка типа)
Method 3: Explicitly print to the file
We can directly specify the file to be printed in the call to , by mentioning the file keyword argument.
For example, the below snippet prints to the file .
print('Hi', file=open('output.txt', 'a')) print('Hello from AskPython', file=open('output.txt', 'a')) print('exit', file=open('output.txt', 'a'))
The file now has the three lines appended to it, and we have successfully printed to !
Using a context manager
However, this method isn’t the best way to resolve this situation, due to the repeated calls to on the same file. This wastes time, and we can do better!
The better way would be to explicitly use a context manager statement, which takes care of automatically closing the file and using the file object directly.
with open("output.txt", "a") as f: print('Hi', file=f) print('Hello from AskPython', file=f) print('exit', file=f)
This gives the same result as before, appending the three lines to , but is now much faster, since we don’t open the same file again and again.
#4 Template Strings (Standard Library)
Here’s one more tool for string formatting in Python: template strings. It’s a simpler and less powerful mechanism, but in some cases this might be exactly what you’re looking for.
Let’s take a look at a simple greeting example:
>>>
You see here that we need to import the class from Python’s built-in module. Template strings are not a core language feature but they’re supplied by the module in the standard library.
Another difference is that template strings don’t allow format specifiers. So in order to get the previous error string example to work, you’ll need to manually transform the error number into a hex-string:
>>>
That worked great.
So when should you use template strings in your Python programs? In my opinion, the best time to use template strings is when you’re handling formatted strings generated by users of your program. Due to their reduced complexity, template strings are a safer choice.
The more complex formatting mini-languages of the other string formatting techniques might introduce security vulnerabilities to your programs. For example, it’s possible for format strings to access arbitrary variables in your program.
That means, if a malicious user can supply a format string, they can potentially leak secret keys and other sensitive information! Here’s a simple proof of concept of how this attack might be used against your code:
>>>
See how a hypothetical attacker was able to extract our secret string by accessing the dictionary from a malicious format string? Scary, huh? Template strings close this attack vector. This makes them a safer choice if you’re handling format strings generated from user input:
>>>
Принципы функционального программирования
КЛЮЧЕВЫЕ ПОЛОЖЕНИЯ:
В последние годы почти все известные процедурные и объектно-ориентированные языки программирования стали поддерживать средства функционального программирования (ФП). И язык Python не исключение.
Когда говорят о ФП, прежде всего имеют в виду следующее:
-
Функции – это «граждане более высокого сорта», т.е., все, что можно делать с «данными», можно делать и с функциями (в том числе передача функции другой функции в качестве аргумента).
-
Использование рекурсии в качестве основной структуры контроля потока управления. В некоторых языках не существует иной конструкции цикла, кроме рекурсии.
-
Акцент на обработке последовательностей. Списки с рекурсивным обходом подсписков часто используются в качестве замены циклов.
-
«Чистые» функциональные языки избегают побочных эффектов. Это исключает присваивания, почти повсеместно распространенный в императивных языках подход, при котором за одной и той же переменной последовательно закрепляются разные значения для отслеживания состояния программы.
-
ФП не одобряет или совершенно запрещает инструкции, используя вместо этого вычисление выражений (т.е. функций с аргументами). В предельном случае, одна программа есть одно выражение (плюс дополнительные определения).
-
ФП акцентируется на том, что должно быть вычислено, а не как.
Функциональное программирование представляет собой методику написания программного обеспечения, в центре внимания которой находятся функции. В парадигме ФП объектами первого класса являются функции. Они обрабатываются таким же образом, что и любой другой примитивный тип данных, такой как строковый и числовой. Функции могут получать другие функции в виде аргументов и на выходе возвращать новые функции. Функции, имеющие такие признаки, называются функциями более высокого порядка из-за их высокой выразительной мощи. И вам непременно следует воспользоваться их чудесной выразительностью.
Программистам чаще приходится работать с последовательностями значений, такими как списки и кортежи, или же контейнерами, такими как словари и множества. Как правило, в файлах хранятся большие объемы текстовых или числовых данных, которые затем загружаются в программу в соответствующие структуры данных и обрабатываются. Python имеет богатый и мощный арсенал инструментов, которые облегчают их обработку в функциональном стиле.
Далее будут представлены несколько таких встроенных функций.
Итерация по списку в Python С использованием цикла и диапазона
Шестой метод итерации по списку – это использование диапазона и любого цикла в Python. Метод range можно использовать как комбинацию с циклом for для обхода и итерации по списку. Функция range() возвращает последовательность цифр, начинающуюся с 0 (по умолчанию) и по умолчанию увеличивающуюся на 1, и останавливается перед указанным числом.
Синтаксис
начало | (Необязательно). Конкретное число, с которого нужно начать. Значение по умолчанию равно 0 |
остановка | (Обязательно). Номер, указывающий, в какой позиции остановиться (не входит в комплект). |
шаг | (Необязательно). шаг используется для указания приращения. Значение по умолчанию-1. |
Примечание: Метод range не включает стоп-номер в результирующую последовательность.
Объяснение
Здесь в приведенном выше примере сначала мы инициализировали и создали список с элементами . После этого мы должны найти длину списка с помощью функции len. Список длины равен 7, поэтому теперь значение переменной length равно 7.
Теперь, когда часть цикла приходит сюда, мы используем цикл for в сочетании с функцией range. В приведенном выше примере аргументом length в функции range является параметр stop. Значение длины здесь равно 7, поэтому цикл будет работать от 0 до 6, так как мы уже знаем, что стоп-значение исключается при использовании функции range .
Шаг 1. Загрузить набор данных в Python
Первое, что вам нужно сделать — импортировать библиотеки для предварительной обработки. Существует множество библиотек, но наиболее популярными и важными в целях работы с данными являются NumPy, Matplotlib и Pandas.
NumPy — это библиотека, используемая для математических вещей. Пандас — лучший инструмент импорта и управления наборами данных.Matplotlib — это библиотека создания графики.
Для реализации библиотек вы можете использовать псевдоним, это общий способ сделать сие. Нужно выполнить сей шаг, вам просто надо ввести следующее в свой код:
С помощью этого простого кода в вашей программе вы сейчас можете использовать библиотеки в вашем проекте.
Загрузка данных в Пандас
В последствии того, как вы загрузили свой набор данных и назвали его файлом.csv, вам нужно будет загрузить его в DataFrame Pandas, чтобы изучить его и выполнить некоторые основные задачи очистки, удалив информацию, которая вам не нужна, что замедлит обработку.
Обычно эти задачи включают в себя:
Удалить первую строку, иногда содержит странный текст вместо заголовков столбцов. Текущий текст предотвращает правильный анализ набора данных библиотекой Пандас. Если нужно удалить эту информацию, вы можете реализовать следующий код:
Удалить столбцы с текстовыми объяснениями, которые нам не понадобятся, столбцы url и другие ненужные столбцы. Код выполнения выглядит следующим образом:
Где находится “url”, вы можете заключить столбец, который хотите удалить.
Удалить все столбцы с одним значением с более чем 50% отсутствующих значений, делаем дабы работать быстрее
Обратите внимание на это, если набор данных достаточно велик, чтобы он оставался значимым. Код, который вы должны реализовать, выглядит следующим образом:
Также рекомендуется называть обработанный набор по-разному, дабы держать его отдельно от необработанных данных. Гарантирует, что у вас все еще есть исходные, если вам нужно вернуться к ним.
Как лучше выбирать элементы из списка?
Если вы хотите продуктивно работать со списками, то должны уметь получать доступ к данным, хранящимся в них.
Обычно мы получаем доступ к элементам списков, чтобы изменять определенные значения, обновлять или удалять их, или выполнять какие-либо другие операции с ними. Мы получаем доступ к элементам списков и, собственно, ко всем другим типам последовательностей, при помощи оператора индекса . Внутри него мы помещаем целое число.
# Выбираем первый элемент списка oneZooAnimal = biggerZoo # Выводим на экран переменную `oneZooAnimal` print(oneZooAnimal)
Запустите данный код и убедитесь, что вы получите первый элемент списка, сохраненного в переменную . Это может быть поначалу несколько непривычно, но нумерация начинается с числа , а не .
Как получить последний элемент списка?
Ответ на этот вопрос является дополнением к объяснению в предыдущем разделе.
Попробуйте ввести отрицательное значение, например, или , в оператор индекса, чтобы получить последние элементы нашего списка !
# Вставляем -1 monkeys = biggerZoo print(monkeys) # А теперь -2 zebra = biggerZoo print(zebra)
Не правда ли, не слишком сложно?
Что означает ошибка «Index Out Of Range»?
Эта ошибка одна из тех, которые вы будете видеть достаточно часто, особенно если вы новичок в программировании.
Лучший способ понять эту ошибку — попробовать ее получить самостоятельно.
Возьмите ваш список и передайте в оператор индекса либо очень маленькое отрицательное число, либо очень большое положительное число.
Как видите, вы можете получить ошибку «Индекс вне диапазона» в случаях, когда вы передаете в оператор индекса целочисленное значение, не попадающее в диапазон значений индекса списка. Это означает, что вы присваиваете значение или ссылаетесь на (пока) несуществующий индекс.
Срезы в списках
Если вы новичок в программировании и в Python, этот вопрос может показаться одним из наиболее запутанных.
Обычно нотация срезов используется, когда мы хотим выбрать более одного элемента списка одновременно. Как и при выборе одного элемента из списка, мы используем двойные скобки. Отличие же состоит в том, что теперь мы еще используем внутри скобок двоеточие. Это выглядит следующим образом:
# Используем нотацию срезов someZooAnimals = biggerZoo # Выводим на экран то, что мы выбрали print(someZooAnimals) # Теперь поменяем местами 2 и двоеточие otherZooAnimals = biggerZoo # Выводим на экран полученный результат print(otherZooAnimals)
Вы можете видеть, что в первом случае мы выводим на экран список начиная с его элемента , который имеет индекс . Иными словами, мы начинаем с индекса и идем до конца списка, так как другой индекс не указан.
Что же происходит во втором случае, когда мы поменяли местами индекс и двоеточие? Вы можете видеть, что мы получаем список из двух элементов, и . В данном случае мы стартуем с индекса и доходим до индекса (не включая его). Как вы можете видеть, результат не будет включать элемент .
В общем, подводя итоги:
# элементы берутся от start до end (но элемент под номером end не входит в диапазон!) a # элементы берутся начиная со start и до конца a # элементы берутся с начала до end (но элемент под номером end не входит в диапазон!) a
Совет: передавая в оператор индекса только двоеточие, мы создаем копию списка.
В дополнение к простой нотации срезов, мы еще можем задать значение шага, с которым будут выбираться значения. В обобщенном виде нотация будет иметь следующий вид:
# Начиная со start, не доходя до end, с шагом step a
Так что же по сути дает значение шага?
Ну, это позволяет вам буквально шагать по списку и выбирать только те элементы, которые включает в себя значение вашего шага. Вот пример:
Обратите внимание, что если вы не указали какое-либо значение шага, оно будет просто установлено в значение . При проходе по списку ни один элемент пропущен не будет
Также всегда помните, что ваш результат не включает индекс конечного значения, который вы указали в записи среза!
Как случайным образом выбрать элемент из списка?
Для этого мы используем пакет .
# Импортируем функцию `choice` из библиотеки `random` from random import choice # Создадим список из первых четырех букв алфавита list = # Выведем на экран случайный элемент списка print(choice(list))
Если мы хотим выбрать случайный элемент из списка по индексу, то можем использовать метод из той же библиотеки .
# Импортируем функцию `randrange` из библиотеки `random` from random import randrange # Создадим список из первых четырех букв алфавита randomLetters = # Выбираем случайный индекс нашего списка randomIndex = randrange(0,len(randomLetters)) # Выводим случайный элемент на экран print(randomLetters)
Совет: обратите внимание на библиотеку , она может вам пригодиться во многих случаях при программировании на Python
Пример 10: Динамическое форматирование
# dynamic string format template string = "{:{fill}{align}{width}}" # passing format codes as arguments print(string.format('cat', fill='*', align='^', width=5)) # dynamic float format template num = "{:{align}{width}.{precision}f}" # passing format codes as arguments print(num.format(123.236, align='
Выход
Вот:
- В первом примере «кошка» ‒ это позиционный аргумент, который нужно отформатировать. Аналогично, fill = ‘*’, align = ‘^’ и width = 5 являются аргументами ключевого слова.
- В строке шаблона эти ключевые аргументы извлекаются не как обычные строки для печати, а как фактические коды формата fill, align и width. Аргументы заменяют соответствующие именованные заполнители, и строка «cat» форматируется соответствующим образом.
- Аналогичным образом, во втором примере 123.236 является позиционным аргументом, а параметры align, width и precision передаются в строку шаблона как коды формата.
Добавление формул
Формулы, начинающиеся со знака равенства, позволяют устанавливать для ячеек значения, рассчитанные на основе значений в других ячейках.
sheet'B9' = '=SUM(B1:B8)'
Эта инструкция сохранит в качестве значения в ячейке . Тем самым для ячейки задается формула, которая суммирует значения, хранящиеся в ячейках от до .
Формула Excel — это математическое выражение, которое создается для вычисления результата и которое может зависеть от содержимого других ячеек. Формула в ячейке Excel может содержать данные, ссылки на другие ячейки, а также обозначение действий, которые необходимо выполнить.
Использование ссылок на ячейки позволяет пересчитывать результат по формулам, когда происходят изменения содержимого ячеек, включенных в формулы. Формулы Excel начинаются со знака . Скобки могут использоваться для определения порядка математических операции.
Примеры формул Excel: =27+36, =А1+А2-АЗ, =SUM(А1:А5), =MAX(АЗ:А5), =(А1+А2)/АЗ.
Хранящуюся в ячейке формулу можно читать, как любое другое значение. Однако, если нужно получить результат расчета по формуле, а не саму формулу, то при вызове функции ей следует передать именованный аргумент со значением .
Форматирование индекса с форматом Python ()
Функция формата () также обслуживает цель строки форматирования в Пользовательские позиции I.e. Мы можем изменить положение строки или значения, которое нужно разместить на выходе, указав Индексные значения внутри фигурных скобок.
Пример:
s1 = 'Python' s2 = 'with' s4 = 'Data Science' res = "{2} {1} {0}".format(s1, s2, s4) print(res)
В приведенном выше фрагментах кода формат (S1, S2, S4) внутренне назначает их значения индекса как 0, 1, 2, и поэтому значение, передаваемые функции.
То есть S1 назначается индексом 0, S2 назначается индексом 1, а S4 назначается индексом 2.
Таким образом, путем передачи значения индекса строки в {} мы можем изменить положение строки по значению индекса.
Выход:
Data Science with Python
Для аргументов ключевого слова
Мы использовали тот же пример выше, чтобы показать разницу между ключевыми и позиционными аргументами.
Здесь вместо параметров мы использовали пару «ключ-значение» для параметров. А именно name = «Adam» и blc = 230.2346.
Поскольку на эти параметры ссылаются их ключи, как {name} и {blc: 9.3f}, они известны как ключевое слово или именованные аргументы.
Внутри:
- Заполнитель {имя} заменяется значением имени ‒ «Адам». Поскольку он не содержит никаких других кодов формата, помещается «Адам».
- Для аргумента blc = 230.2346 заполнитель {blc: 9.3f} заменяется значением 230.2346. Но перед его заменой, как и в предыдущем примере, он выполняет над ним операцию 9.3f. Это выводит 230.235.0. Десятичная часть обрезается после трех знаков, а оставшиеся цифры округляются. Аналогично, общая ширина назначена 9, оставляя два пробела слева.
Python для систем счисления
- bin(y) — целое число преобразовывается в двоичную строку.
- hex(y) — целое число преобразовывается в шестнадцатеричную строку.
- oct(y) — целое число преобразовывается в восьмеричную строку.
Рассмотрим примеры работы с системами счисления:
bin(17) # '0b10001' oct(17) # '0o21' hex(17) # '0x11' |
Задание Python 1_2: Даны две переменные. Запросить их значение. Выполнить основные арифметические действия с переменными, целочисленное деление, возведение в квадрат. Осуществить перевод в системы счисления (в 8-ю и 16-ю). Вывести результат.
Задание Python 1_3: Найти длину окружности L и площадь круга S заданного радиуса R:
L=2*pi*R, S=pi*R2.
В качестве значения использовать 3.14.
* Из задачника М. Э. Абрамян
Задание Python 1_4: Даны три точки A, B, C на числовой оси. Найти длины отрезков AC и BC и их сумму.
* Из задачника М. Э. Абрамян
Пример: Дано двузначное число. Найти сумму и произведение его цифр.
* Из задачника М. Э. Абрамян
Решение:
import math print('Введите двузначное число: ') A = int(input()) Res = (A // 10) + math.fmod(A, 10) print('Сумма его цифр равна: ', int(Res)) Res = (A // 10) * math.fmod(A, 10) print('Произведение его цифр равно: ', int(Res)) |
Задание Python 1_5: Дано двухзначное целое число. Вывести сначала его правую цифру, а затем левую.
** Сделайте задание повышенной сложности: необходимо поменять местами цифры числа и вывести результирующее число (вывести не отдельные цифры, а именно число). Например, число , а результат — число .
* Из задачника М. Э. Абрамян
Python Tutorial
Python HOMEPython IntroPython Get StartedPython SyntaxPython CommentsPython Variables
Python Variables
Variable Names
Assign Multiple Values
Output Variables
Global Variables
Variable Exercises
Python Data TypesPython NumbersPython CastingPython Strings
Python Strings
Slicing Strings
Modify Strings
Concatenate Strings
Format Strings
Escape Characters
String Methods
String Exercises
Python BooleansPython OperatorsPython Lists
Python Lists
Access List Items
Change List Items
Add List Items
Remove List Items
Loop Lists
List Comprehension
Sort Lists
Copy Lists
Join Lists
List Methods
List Exercises
Python Tuples
Python Tuples
Access Tuples
Update Tuples
Unpack Tuples
Loop Tuples
Join Tuples
Tuple Methods
Tuple Exercises
Python Sets
Python Sets
Access Set Items
Add Set Items
Remove Set Items
Loop Sets
Join Sets
Set Methods
Set Exercises
Python Dictionaries
Python Dictionaries
Access Items
Change Items
Add Items
Remove Items
Loop Dictionaries
Copy Dictionaries
Nested Dictionaries
Dictionary Methods
Dictionary Exercise
Python If…ElsePython While LoopsPython For LoopsPython FunctionsPython LambdaPython ArraysPython Classes/ObjectsPython InheritancePython IteratorsPython ScopePython ModulesPython DatesPython MathPython JSONPython RegExPython PIPPython Try…ExceptPython User InputPython String Formatting
Python string formatting integer
Now, we will see python string formatting integer.
In string formatting integer, we will use “d” which is used for integer argument. The placeholder is defined by using curly brackets “{ }”.
Example:
To get the output, I have used print(“My marks is {:d} in maths”.format(80)). You can refer to the below screenshot for the output.
Python string formatting integer
You may like the following Python tutorials:
- Python String Functions
- How to convert an integer to string in python
In this tutorial, we have learned about Python string formatting, and also we have covered these topics:
- Python string formatting
- Python string formatting multiple values
- Python string formatting padding
- Python string formatting padding with left alignment
- Python string formatting padding with right alignment
- Python string formatting padding with center alignment
- Python string formatting padding with center alignment and * padding character
- Python string formatting using f
- Python string formatting float
- Python string format methods
- Python string formatting decimal places
- Python string formatting integer
Padding Variable Substitutions
Because the placeholders are replacement fields, you can pad or create space around an element by increasing field size through additional parameters. This can be useful when we need to organize a lot of data visually.
We can add a number to indicate field size (in terms of characters) after the colon in the curly braces of our syntax:
In the example above, we gave the number a character field size of 4, and the string a character field size of 16 (because it is a long string).
As we see, by default strings are left-justified within the field, and numbers are right-justified. You can modify this by placing an alignment code just following the colon. will left-align the text in a field, will center the text in the field, and will right-align it.
Let’s left-align the number and center the string:
Now we see that is left-aligned, providing space in the field before , and is centered in its field with space to the left and right of it.
By default, when we make a field larger with formatters, Python will fill the field with whitespace characters. We can modify that to be a different character by specifying the character we want it to be directly following the colon:
We are accepting the string being passed to in the index position of 0 since we did not specify otherwise, including the colon, and specifying that we will use instead of space to fill up the field. We’re centering the string with , specifying that the field is 20 characters in size, and also indicating that we are working with a string conversion type by including .
We can combine these parameters with other parameters we’ve used before:
In the parameters within the curly braces, we specified the index field number of the float and included the colon, indicated the size of the field number and included the full stop, wrote in the number of places after the decimal place, and then specified the conversion type of .
Форматирование строк
Форматирование строк (также известно как замещение) – это замещение значений в базовой строке. Большую часть времени вы будете вставлять строки внутри строк, однако, вам также понадобиться вставлять целые числа и числа с запятыми в строки весьма часто. Существует два способа достичь этой цели. Начнем с старого способа, после чего перейдем к новому:
Python
# -*- coding: utf-8 -*-
my_string = «Я люблю %s» % «Python»
print(my_string) # Я люблю Python
var = «яблоки»
newString = «Я ем %s» % var
print(newString) # Я ем яблоки
another_string = «Я люблю %s и %s» % («Python», var)
print(another_string) # Я люблю Python и яблоки
1 2 3 4 5 6 7 8 9 10 11 |
# -*- coding: utf-8 -*- my_string=»Я люблю %s»%»Python» print(my_string)# Я люблю Python var=»яблоки» newString=»Я ем %s»%var print(newString)# Я ем яблоки another_string=»Я люблю %s и %s»%(«Python»,var) print(another_string)# Я люблю Python и яблоки |
Как вы могли догадаться, % — это очень важная часть вышеописанного кода. Этот символ указывает Python, что вы скоро вставите текст на его место. Если вы будете следовать за строкой со знаком процента и другой строкой или переменной, тогда Python попытается вставить ее в строку. Вы можете вставить несколько строк, добавив несколько знаков процента в свою строку. Это видно в последнем примере
Обратите внимание на то, что когда вы добавляете больше одной строки, вам нужно закрыть эти строки в круглые скобки. Теперь взглянем на то, что случится, если мы вставим недостаточное количество строк:
Python
another_string = «Я люблю %s и %s» % «Python»
Traceback (most recent call last):
File «<string>», line 1, in <fragment>
TypeError: not enough arguments for format string
1 2 3 4 5 |
another_string=»Я люблю %s и %s»%»Python» Traceback(most recent call last) File»<string>»,line1,in<fragment> TypeErrornotenough arguments forformatstring |
О-па. Мы не передали необходимое количество аргументов для форматирования строки. Если вы внимательно взгляните на пример, вы увидите, что у нас есть два экземпляра %, но для того, чтобы вставить строки, вам нужно передать столько же %, сколько у нас строк. Теперь вы готовы к тому, чтобы узнать больше о вставке целых чисел, и чисел с запятыми. Давайте взглянем.
Python
my_string = «%i + %i = %i» % (1,2,3)
print(my_string) # ‘1 + 2 = 3’
float_string = «%f» % (1.23)
print(float_string) # ‘1.230000’
float_string2 = «%.2f» % (1.23)
print(float_string2) # ‘1.23’
float_string3 = «%.2f» % (1.237)
print(float_string3) # ‘1.24’
1 2 3 4 5 6 7 8 9 10 11 |
my_string=»%i + %i = %i»%(1,2,3) print(my_string)# ‘1 + 2 = 3’ float_string=»%f»%(1.23) print(float_string)# ‘1.230000’ float_string2=»%.2f»%(1.23) print(float_string2)# ‘1.23’ float_string3=»%.2f»%(1.237) print(float_string3)# ‘1.24’ |
Первый пример достаточно простой. Мы создали строку, которая принимает три аргумента, и мы передаем их. В случае, если вы еще не поняли, Python не делает никаких дополнений в первом примере. Во втором примере, мы передаем число с запятой
Обратите внимание на то, что результат включает множество дополнительных нулей (1.230000). Нам это не нужно, так что мы указываем Python ограничить выдачу до двух десятичных значений в третьем примере (“%.2f”)
Последний пример показывает, что Python округлит числа для вас, если вы передадите ему дробь, что лучше, чем два десятичных значения. Давайте взглянем на то, что произойдет, если мы передадим неправильные данные:
Python
int_float_err = «%i + %f» % («1», «2.00»)
Traceback (most recent call last):
File «<string>», line 1, in <fragment>
TypeError: %d format: a number is required, not str
1 2 3 4 |
int_float_err=»%i + %f»%(«1″,»2.00») Traceback(most recent call last) File»<string>»,line1,in<fragment> TypeError%dformatanumber isrequired,notstr |
В данном примере мы передали две строки вместо целого числа и дроби. Это привело к ошибке TypeError, что говорит нам о том, что Python ждал от нас чисел. Это указывает на отсутствие передачи целого числа, так что мы исправим это, по крайней мере, попытаемся:
Python
int_float_err = «%i + %f» % (1, «2.00»)
Traceback (most recent call last):
File «<string>», line 1, in <fragment>
TypeError: float argument required, not str
1 2 3 4 5 |
int_float_err=»%i + %f»%(1,»2.00″) Traceback(most recent call last) File»<string>»,line1,in<fragment> TypeErrorfloatargument required,notstr |
Мы получили ту же ошибку, но под другим предлогом, в котором написано, что мы должны передать дробь. Как мы видим, Python предоставляет нам полезную информацию о том, что же пошло не так и как это исправить. Если вы исправите вложения надлежащим образом, тогда вы сможете запустить этот пример. Давайте перейдем к новому методу форматирования строк.
Ввод и вывод данных
- Вывод данных осуществляется при помощи оператора print:
1 2 3 4 5 |
a = 1 b = 2 print(a) print(a + b) print('сумма = ', a + b) |
Существует возможность записи инструкций в одну строку, разделяя их через . Однако не следует часто использовать такой способ, это снижает удобочитаемость:
1 2 3 |
a = 1; b = 2; print(a) print(a + b) print('сумма = ', a + b) |
Для функции print может задаваться так называемый сепаратор — разделитель между элементами вывода:
1 2 3 |
x=2 y=5 print ( x, "+", y, "=", x+y, sep = " " ) |
Результат отобразится с пробелами между элементами: 2 + 5 = 7
Для форматированного вывода используется format:
1 2 |
x = 11 print ( "{:4d}".format(x) ) |
В результате выведется число 11, а перед ним два пробела, так как указано использовать для вывода четыре знакоместа.
Или с несколькими аргументами:
1 2 |
x = 2 print ( "{:4d}{:4d}{:4d}".format (x, x+x, x*x) ) |
В итоге каждое из значений выводится из расчета 4 знакоместа.
Ввод данных осуществляется при помощи оператора :
1 2 |
a = input() print(a) |
В скобках функции можно указать сообщение-комментарий к вводимым данным:
a = input ("Введите количество: ") |
Функция input воспринимает входные данные, как поток символов. Поэтому, чтобы принять целочисленное значение, следует воспользоваться функцией int():
a = int (input()) |
Задание Python 1_1:
Используя операторы input и print, выведите значения целых переменных x=5 и y=3 в следующих форматах:
3+5=?
3 | 5 | 8
Z(5)=F(3)
x=5; y=3;
Ответ: (5;3)