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

Как сделать варианты ответа в python

  • автор:

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

Мы уже встречались с функцией print() . Она отвечает за вывод данных, по-умолчанию на экран. Если код содержится в файле, то без нее не обойтись. В интерактивном режиме в ряде случаев можно обойтись без нее.

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

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

Можно сказать, что программа – это открытая система, которая обменивается чем-либо с внешней для нее средой. Если живой организм в основном обменивается веществом и энергией, то программа – данными, информацией.

Вывод данных. Функция print()

Что такое функция в программировании, узнаем позже. Пока будем считать, что 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

Можно передавать в функцию print() как непосредственно литералы (в данном случае «a:» и 1), так и переменные, вместо которых будут выведены их значения. Аргументы функции (то, что в скобках), разделяются между собой запятыми. В выводе вместо запятых значения разделены пробелом.

Если в скобках стоит выражение, то сначала оно выполняется, после чего print() уже выводит результат данного выражения:

>>> print("hello" + " " + "world") hello world >>> print(10 - 2.5/2) 8.75

В print() предусмотрены дополнительные параметры. Например, через параметр sep можно указать отличный от пробела разделитель строк:

>>> print("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", sep="-") Mon-Tue-Wed-Thu-Fri-Sat-Sun >>> print(1, 2, 3, sep="//") 1//2//3

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

>>> print(10, end="") 10>>>

Обычно end используется не в интерактивном режиме, а в скриптах, когда несколько выводов подряд надо разделить не переходом на новую строку, а, скажем, запятыми. Сам переход на новую строку обозначается символом ‘\n’. Если присвоить это значение параметру end , то никаких изменений в работе функции print вы не увидите, так как это значение и так присвоено по-умолчанию:

>>> print(10, end='\n') 10 >>>

Однако, если надо отступить на одну дополнительную строку после вывода, то можно сделать так:

>>> print(10, end='\n\n') 10 >>>

В функцию print нередко передаются так называемые форматированные строки, хотя по смыслу их правильнее называть строки-шаблоны. Никакого отношения к самому print они не имеют. Когда такая строка находится в скобках print() , интерпретатор сначала согласно заданному в ней формату преобразует ее к обычной строке, после чего передает результат в print() .

Форматирование может выполняться в так называемом старом стиле или с помощью строкового метода format . Старый стиль также называют Си-стилем, так как он схож с тем, как происходит вывод на экран в языке 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

Здесь вместо трех комбинаций символов %s , %d , %f подставляются значения переменных pupil , old , grade . Буквы s , d , f обозначают типы данных – строку, целое число, вещественное число. Если бы требовалось подставить три строки, то во всех случаях использовалось бы сочетание %s .

Хотя в качестве значения переменной grade было указано число 9.2, на экран оно вывелось с дополнительными нулями. Чтобы указать, сколько требуется знаков после запятой, надо перед f поставить точку, после нее указать желаемое количество знаков в дробной части:

>>> print("It's %s, %d. Level: %.1f" % (pupil, old, grade)) It's Ben, 16. Level: 9.2

Теперь посмотрим на метод format() :

>>> print("This is a . It's .".format("ball", "red")) This is a ball. It's red. >>> >>> print("This is a . It's .".format("white", "cat")) This is a cat. It's white. >>> >>> print("This is a . It's .".format("a", "number", 1)) This is a 1. It's a number.

В строке в фигурных скобках указаны номера данных, которые будут сюда подставлены. Далее к строке применяется метод format() . В его скобках указываются сами данные (можно использовать переменные). На нулевое место подставится первый аргумент метода format() , на место с номером 1 – второй и т. д.

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

В новых релизах Питона появился третий способ создания форматированных строк – f-строки. Перед их открывающей кавычкой прописывается буква f . В самой строке внутри фигурных скобок записываются выражения на Python, которые исполняются, когда интерпретатор преобразует строку-шаблон в обычную.

>>> a = 10 >>> b = 1.33 >>> c = 'Box' >>> print(f'qty - , goods - ') qty - 10, goods - Box >>> print(f'price - ') price - 1.5

В примере число 5 после переменной a обозначает количество знакомест, отводимых под вывод значения переменной. В выражении b + 0.2:.1f сначала выполняется сложение, после этого значение округляется до одного знака после запятой.

Ввод данных. Функция input()

За ввод в программу данных с клавиатуры в Python отвечает функция input . Когда вызывается эта функция, программа останавливает свое выполнение и ждет, когда пользователь введет текст. После этого, когда он нажмет Enter , функция input() заберет введенный текст и передаст его программе, которая уже будет обрабатывать его согласно своим алгоритмам.

Если в интерактивном режиме ввести команду input() , то ничего интересного вы не увидите. Компьютер будет ждать, когда вы что-нибудь введете и нажмете Enter или просто нажмете Enter . Если вы что-то ввели, это сразу же отобразиться на экране:

>>> input() Yes! 'Yes!'

Функция input() передает введенные данные в программу. Их можно присвоить переменной. В этом случае интерпретатор не выводит строку сразу же:

>>> answer = input() No, it is not.

В данном случае строка сохраняется в переменной answer , и при желании мы можем вывести ее значение на экран:

>>> answer 'No, it is not.'

При использовании функции print() кавычки в выводе опускаются:

>>> print(answer) No, it is not.

Куда интересней использовать функцию input() в скриптах – файлах с кодом. Рассмотрим такую программу:

name_user = input() city_user = input() print(f'Вас зовут . Ваш город ')

Использование функции input()

При запуске программы, компьютер ждет, когда будет введена сначала одна строка, потом вторая. Они будут присвоены переменным name_user и city_user . После этого значения этих переменных выводятся на экран с помощью форматированного вывода.

Вышеприведенный скрипт далек от совершенства. Откуда пользователю знать, что хочет от него программа? Чтобы не вводить человека в замешательство, для функции input предусмотрен специальный параметр-приглашение. Это приглашение выводится на экран при вызове input() . Усовершенствованная программа может выглядеть так:

name_user = input('Ваше имя: ') city_user = input('Ваш город: ') print(f'Вас зовут . Ваш город ')

Функция input() с аргументом-приглашением

Обратите внимание, что в программу поступает строка. Даже если ввести число, функция input() все равно вернет его строковое представление. Но что делать, если надо получить число? Ответ: использовать функции преобразования типов.

Преобразование ввода к числу

В данном случае с помощью функций int() и float() строковые значения переменных qty и price преобразуются соответственно в целое число и вещественное число. После этого новые численные значения присваиваются тем же переменным.

Программный код можно сократить, если преобразование типов выполнить в тех же строках кода, где вызывается функция input() :

qty = int(input("Сколько апельсинов? ")) price = float(input("Цена одного? ")) summa = qty * price print("Заплатите", summa, "руб.")

Сначала выполняется функция input() . Она возвращает строку, которую функция int() или float() сразу преобразует в число. Только после этого происходит присваивание переменной, то есть она сразу получает численное значение.

Практическая работа

  1. Напишите программу (файл user.py ), которая запрашивала бы у пользователя:
    — его имя (например, «What is your name?»)
    — возраст («How old are you?»)
    — место жительства («Where are you live?»)
    После этого выводила бы три строки:
    «This is имя »
    «It is возраст »
    «(S)he live in место_жительства »
    Вместо имя , возраст , место_жительства должны быть данные, введенные пользователем. Примечание: можно писать фразы на русском языке, но если вы планируете стать профессиональным программистом, привыкайте к английскому.
  2. Напишите программу (файл arithmetic.py ), которая предлагала бы пользователю решить пример 4 * 100 — 54. Потом выводила бы на экран правильный ответ и ответ пользователя. Подумайте, нужно ли здесь преобразовывать строку в число.
  3. Запросите у пользователя четыре числа. Отдельно сложите первые два и отдельно вторые два. Разделите первую сумму на вторую. Выведите результат на экран так, чтобы ответ содержал две цифры после запятой.

Примеры решения и дополнительные уроки в pdf-версии курса

X Скрыть Наверх

Python. Введение в программирование

Как сделать условие для ответа на вопрос в Python?

Здравствуйте уважаемые разработчики, я только начал изучать Python и у меня возникла проблема. Как мне в коде после
input («Тебе больше 18 лет? «)
Если пользователь ответил «Да» «да» «ДА», то выполняется одно условие, а если ответил «Нет» «нет» «НЕТ», то выполняется условие. Я думаю через if и else, но не понимаю как это правильно сделать.

  • Вопрос задан более трёх лет назад
  • 9223 просмотра

Комментировать
Решения вопроса 1

answer = input ("Тебе больше 18 лет? ") if answer.upper() == 'ДА': print(answer) if answer.upper() == 'НЕТ': print(answer)

Используйте .upper() что бы вот этого не делать

Ответ написан более трёх лет назад
Нравится 1 6 комментариев
13-Pythin-13 @13-Pythin-13 Автор вопроса

а как можно сделать так, если пользователь вводит не заданные мною ответы, а что то другое то ему выходит текст с ошибкой?

13-Pythin-13, можете добавить ниже

if answer.upper() != 'ДА' and answer.upper() != 'НЕТ': print(answer+ " Ответ не верный")

Pr0gram1st

Кирил Мирошниченко @Pr0gram1st

У меня такая ситуация,я зделал прогу(рандомайзер)и там ето условие вопрос(Ти мальчики?)если да то все работает,а если нет то оно пишет то и самое что в да,помогите(

Я Точно я, без кода тут не помочь.

Pr0gram1st

Кирил Мирошниченко @Pr0gram1st

625ff315ac1a0168489151.png

datka, ,вище только import time,import random і фрази для рандомайзера(проценти крутости)

Pr0gram1st

Кирил Мирошниченко @Pr0gram1st

Я Точно я, с мальчики работает,а с девочкой не пишет «сканування крутости 1%»и вместо ти крутая на(количество процентов)пишет ти крутой на(количество процентов)

Как сделать условие на проверку ответа пользователя в Python?

Ребят, всем привет! Python начал изучать недавно, много чего еще не знаю. Нужна ваша помощь.
Делал я программу которая выводит на экран рандомные примеры, которые пользователь должен был решать. И столкнулся с проблемой, что не знаю как сделать проверку того, что ввел пользователь. Помогите мне пж.

#coding utf8: #меню print("Выберете уровень сложности :") otv = (input("1 - Easy " + "2 - Medium" + "3 - Hard - ")) # если ввел верные данные if otv == "1": t2 = True print("Решите примеры ") #если ввел не верные данные if otv != "1": while True: print("Введенно не правильное действие") print("Попробуйте еще раз :") otv = (input("1 - Easy " + "2 - Medium" + " 3 - Hard - ")) if otv == "1": t2 = True print("Решите примеры ") break while t2: import random a = random.randint(0, 20) b = random.randint(0, 20) r = a + b otv1 = (input(str(a) + " + "+ str(b) + " = " )) if r == "otv1": v = "Верно " print(v) else: v1 = "Не верно " print(v1)
  • Вопрос задан более трёх лет назад
  • 4324 просмотра

10 комментариев

Простой 10 комментариев

Списки в Python: методы и основные операции

Рассмотрим создание списков в Python и разберём основные методы. Научимся изменять, сортировать и совершать другие операции над list.

Списки в Python представляют собой упорядоченные изменяемые наборы объектов, пронумерованных от 0. При этом объекты могут быть разными — от целых чисел до строк. Списки могут также хранить в себе списки.

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

  1. Хранение в памяти
  2. Создание списка
  3. Срезы (slice)
  4. Простые операции
  5. Методы списков

Хранение в памяти

При создании списка, в памяти резервируется пустая область. С одной стороны, это ничем не отличается от создания любого другого типа данных, но разница в том, что содержимое list может меняться:

numbers = [1, 2] numbers[1] = 3 # обновлённый список: [1, 3] 

До замены элемента последовательности print(numbers[1]) выведет 2, а после замены — 3.

Создание списка в Python

Это можно сделать несколькими способами, например перечислением элементов списка в квадратных скобках:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9] 

При этом единица будет на позиции 0, то есть print(numbers[0]) выведет 1.

Также можно использовать обработку итерируемого объекта функцией list() . Пусть у нас будет некоторая строка, тогда:

list('tproger') # ['t', 'p', 'r', 'o', 'g', 'e', 'r'] 

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

numbers = [i for i in range(1,6)] # [1, 2, 3, 4, 5] 

Срезы (slice) списка

Срезы позволяют получить некое подмножество значений. Следующий код вернёт список с элементами, начиная индексом 0 и не включая при этом индекс 2 и выше:

numbers = [1, 5, 9, 6] print(numbers[0:2]) # вывод [1, 5] 

Далее выведем всё, за исключением элемента на позиции 3:

print(numbers[:3]) # вывод [1, 5, 9] 

А теперь начиная с индекса 1 и до конца:

print(numbers[1:]) # вывод [5, 9, 6] 

Операции над списками Python

  • x in l — true , если элемент x есть в списке l ;
  • x not in l — true , если элемент x отсутствует в l ;
  • l1 + l2 — объединение двух списков;
  • l * n , n * l — копирует список n раз;
  • len(l) — количество элементов в l ;
  • min(l) — наименьший элемент;
  • max(l) — наибольший элемент;
  • sum(l) — сумма чисел списка;
  • for i in list() — перебирает элементы слева направо.

Методы списков Python

Index

Возвращает положение первого совпавшего элемента. Поиск совпадения происходит слева направо. Пример:

numbers = [1, 5, 9, 6, 1, 2, 1] print(numbers.index(1)) # вывод 0: первая найденная единица на позиции 0 

Count

Данный метод считает, сколько раз указанное значение появляется в списке Python:

numbers = [1, 5, 9, 6, 1, 2, 1] print(numbers.count(1)) # вывод 3, потому что единица встречается 3 раза 

Append

Добавляет указанное значение в конец:

numbers = [1, 5, 9, 6] numbers.append(3) # обновлённый список: [1, 5, 9, 6, 3] 

Sort

Сортирует список в Пайтоне. По умолчанию от меньшего к большему:

numbers = [1, 5, 9, 6] numbers.sort() # обновлённый список: [1, 5, 6, 9] 

Также можно сортировать последовательность элементов от большего к меньшему:

numbers = [1, 5, 9, 6] numbers.sort(reverse = true) # обновлённый список: [9, 6, 5, 1] 

Insert

Вставляет элемент перед указанным индексом:

numbers = [1, 5, 9, 6] numbers.insert(3, [2, 3]) # обновлённый список: [1, 5, 9, [2, 3], 6] 

Remove

Удаляет первое попавшееся вхождение элемента в списке Python:

numbers = [1, 5, 9, 6, 1, 2, 1] numbers.remove(1) # обновлённый список: [5, 9, 6, 1, 2, 1] 

Extend

Подобно методу append() , добавляет элементы, но преимущество метода extend() в том, что он также позволяет добавлять списки:

numbers = [1, 5, 9, 6] numbers.extend([2, 3]) # обновлённый список: [1, 5, 9, 6, 2, 3] 

Pop

А данный метод удаляет элемент в конкретно указанном индексе, а также выводит удалённый элемент. Если индекс не указан, метод по умолчанию удалит последний элемент:

numbers = [1, 5, 9, 6] numbers.pop(1) # получаем: # 5 # [1, 9, 6] 

Join

Преобразовывает список в строку. Разделитель элементов пишут в кавычках перед методом, а сам список Питона должен состоять из строк:

mylist = ['сайт', 'типичный', 'программист'] print(', '.join(mylist)) # вывод 'сайт, типичный, программист' 

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

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