Перейти к содержимому

Как вывести строку и число в python

  • автор:

Пользовательский ввод чисел в строку

Функция input() возвращает все в виде строки, поэтому нужно выполнить явную конвертацию, чтобы получить целое число. Для этого пригодится функция int() .

 
# вывод суммы двух чисел, введенных пользователем

num_1 = int(input("Введите первое число: "))
num_2 = int(input("Введите второе число: "))

print("Тип num_1:", type(num_1))
print("Тип num_2:", type(num_2))

result = num_1 + num_2
print("Сумма введенных чисел:", result)

int(string) конвертирует переданную строку в целое число.

Ввода числа float

По аналогии можно использовать функцию float() .

 
float_1 = float(input("Введите число: "))
print("Тип float_1:", type(float_1))

result = float_1 ** 2
print("Число в квадрате:", result)
Введите число: 1.8 Тип float_1: Число в квадрате: 3.24

Ввод чисел в строку через пробел

Но что произойдет, если вы не знаете количество элементов ввода?

Предположим, что от пользователя нужно получить список чисел и вернуть их сумму. При этом вы не знаете количество элементов в этом списке. Как же запросить ввод для него?

Для этого можно использовать split и функции map . Метод split() делит введенную строку на список подстрок. После этого map() выполняет функцию int() для каждого элемента списка.

 
entered_list = input("Введите список чисел, разделенных пробелом: ").split()
print("Введенный список:", entered_list)

num_list = list(map(int, entered_list))
print("Список чисел: ", num_list)
print("Сумма списка:", sum(num_list))
Введите список чисел, разделенных пробелом: 1 34 4 6548 Введенный список: ['1', '34', '4', '6548'] Список чисел: [1, 34, 4, 6548] Сумма списка: 6587
  • input() возвращает список, содержащий числа, разделенные запятыми.
  • split() возвращает список строк, разделенных пробелами.
  • map() выполняет операцию int() для всех элементов списка и возвращает объект map .
  • list() конвертирует объект map снова в список.

Есть альтернативный способ получить список:

 
entered_list = input("Введите список чисел, разделенных пробелом: ").split()

num_list = [int(i) for i in entered_list]
print("Список чисел: ", num_list)

Обработка ошибок при пользовательском вводе

Часто при конвертации типов возникает исключение ValueError .

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

Например, пользователь вводит случайную строку в качестве возраста.

 
num = int(input("Введите возраст: "))

Функция int() ожидает целочисленное значение, обернутое в строку. Любое другое значение приводит к ошибке. Вот что будет, если, попробовать ввести «Двадцать»:

Введите возраст: Двадцать --------------------------------------------------------- ValueError Traceback (most recent call last) in ----> 1 num_1 = int(input('Введите возраст: ')) ValueError: invalid literal for int() with base 10: 'Двадцать'

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

 
try:
num = int(input("Введите число: "))
print("Все верно. Число:", num)
except ValueError:
print("Это не число.")

Посмотрим, как ввод «Двадцать» сработает теперь:

Введите число: Двадцать Это не число.

В этом примере если пользователь вводит нечисловое значение, то возникает исключение. Однако оно перехватывается инструкцией except , которая в ответ выводит: «Это не число». Благодаря использованию конструкции try-except программа не прекратит работать при некорректном вводе.

Я создал этот блог в 2018 году, чтобы распространять полезные учебные материалы, документации и уроки на русском. На сайте опубликовано множество статей по основам python и библиотекам, уроков для начинающих и примеров написания программ.

Мои контакты: Почта
Python Q https://yandex.ru/q/loves/python Online

Python Q CEO Pythonru admin@pythonru.com https://secure.gravatar.com/avatar/b16f253879f7349f64830c64d1da4415?s=96&d=mm&r=g CEO Pythonru Python Александр Редактор https://t.me/cashncarryhttps://pythonru.com/https://yandex.ru/q/profile/cashnc/ PythonRu.com admin@pythonru.com Alex Zabrodin 2018-10-26 Online Python, Programming, HTML, CSS, JavaScript

Ввод и вывод данных в Python

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

В Python встроены мощные инструменты для форматированного ввода и вывода, достаточные для реализации взаимодействия с пользователем в полноценном приложении.

Получение данных input

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

Входные данные в Python 3 обычно сохраняются в переменных или списках, чтобы их можно было обработать. Синтаксис операции ввода выглядит так:

a = input()

Если выполнить данный код в интерактивном режиме в IDLE, курсор переместиться новую строку и программа будет ожидать ввода данных, которые будут записаны в переменную a .

Кроме того, оператор input() позволяет перед запросом ввода вывести какой-либо текст, например:

a = input("Введите своё имя")

Таким образом можно дать подсказку пользователю, что нужно ввести. В отличие от строго типизированных языков программирования Python позволяет вводить любые типы данных без их явного указания. То есть пользователь может ввести как строку, так и число. Синтаксис команды ввода от этого не изменится.

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

a = int(input("Введите целое число"))

Если пользователь введет строку или дробь, интерпретатор Python возбудит исключение. Поэтому для ввода используют оператор try-except:

try: a = int(input("Введите целое число")) except: print("Ошибка, введено не целое число")

Дополнительно про проверку, введено ли число, можно прочитать в отдельной статье.

Также можно запрашивать ввод в бесконечном цикле, выход из которого осуществляется только тогда, когда пользователь вводит данные нужного типа:

while True: try: a = int(input("Введите целое число: ")) except: print("Вы ввели не целое число, ошибка") continue break

Вывод данных print

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

Для вывода данных в Python используется функция print(). С её помощью можно выводить строки, числа, последовательности. Её синтаксис выглядит так:

print("Строка") print(5)

Интерпретатор Python также позволяет передавать в print() другую функцию:

def sum(a, b): return a + b print(sum(5, 2)) # Выведет 7

В этом случае функция sum посчитает сумму аргументов и вернёт результат. Этот результат будет выведен с помощью print в консоль.

В print() можно передать несколько аргументов:

print("один", "два", 5) # Выведет "один два 5"

Кроме того, строки можно складывать с помощью оператора «+»:

print("один" + "два", 5) # Выведет "одиндва 5"

Однако не всегда нужно выводить что-то на экран. Программисты могут перенаправить вывод программы в файл. Функцию print() имеет необязательный параметр «file», который по умолчанию равен «sys.stdout», то есть выводу на экран. Если программист хочет перенаправить вывод в файл, он должен написать код:

f = open("file.txt", "w") # Открываем файл в режиме запись print("Строка", file = f) # Выводим "Строка" в файл

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

Пример программы

В программах ввод и вывод взаимосвязаны, например, пользователь вводит данные, программа обрабатывает их и выводит обратно на экран. Даже если программа не консольная, а с графическим интерфейсом, то если пользователь нажал на кнопку «Запустить», он всё равно ввел в программу данные, которые дали сигнал для выполнения какой-либо функции.

Приведём пример консольной программы, которая выполняет операции над числами. То есть осуществляет ввод и вывод данных в консоль на Python 3. Мы вводим два числа, выбираем операцию, которую надо совершить над ними: сложение, вычитание, умножение или деление. Программа вычисляет результат и выводит его.

# Операции над двумя числами def sum(a, b): return a + b def sub(a, b): return a - b def mult(a, b): return a * b def div(a, b): return a / b def main(): while True: try: #Вводим числа a = float(input("Введите первое число: ")) b = float(input("Введите второе число: ")) c = int(input("Номер операции:\n1) +\n2) -\n3) *\n4) /\n")) except: print("Нужно ввести число, попробуйте ещё раз . \n") continue # Повторяем ввод, если введено не число break # Выходим из цикла, если числа введены правильно # Применяем нужную операцию в зависимости от ввода cond = # Выводим результат операции print(cond[c]) if __name__ == "__main__": main()

Вот пример работы:

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

Также на нашем сайте есть пример калькулятора с графическим интерфейсом. Для этого в ней была использована библиотека Tkinter.

Ввести строку s и число повторений строки n, вывести строку n раз с помощью цикла

введите сюда описание изображения

Python. Введи строку s и число повторений строки n. Выведи строку n раз с помощью цикла. Где ошибка? Почему не работает?

s = input("Введи строку:") n = int(input("Сколько раз повторить?")) while s < str(n): print(s) n = n + 1 

Отслеживать
48.6k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
задан 30 янв 2020 в 22:45
31 1 1 золотой знак 1 1 серебряный знак 5 5 бронзовых знаков
покажите, что вы уже пробовали.
30 янв 2020 в 22:51
вот посмотрите, написал
30 янв 2020 в 22:55

Не работает, потому что условие для цикла while написано наугад, "напишу что-нибудь, авось получится". Там написана лютая дичь.

31 янв 2020 в 5:48
Если не принципиально, можно без цикла: print("Моя строка\n" * k) где k - число повторений
31 янв 2020 в 7:43

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

s = input("Введи строку: ") n = int(input("Сколько раз повторить? ")) for i in range(n): print(s) 
while n: print(s) n -= 1 

Отслеживать
48.6k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
ответ дан 30 янв 2020 в 23:01
73.5k 110 110 золотых знаков 38 38 серебряных знаков 55 55 бронзовых знаков

  • python
  • python-3.x
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.8.3130

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Ввод, вывод и переменные в 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(), а потом с задержками. Как только заработает, можно смело хвастаться, что у тебя получился линейный квест! ��

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *