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

Как вводить бесконечное количество чисел в питоне

  • автор:

Бесконечный ввод

Задание: Дано натуральное число. (Вводится с клавиатуры). Определить сколько раз в нем встречается минимальная цифра. Например, для числа 201 001 ответ равен 3. Для числа 4033 — 1. Для числа 434643 — 2.
Написал вот такой код:

chisl = int(input(«Введите число: «))

i = 0
n = 10
while chisl > 0:
if chisl % 10 < n:
n = chisl % 10
chisl //= 10
while chisl > 0:
if chisl % 10 == n:
i += 1
chisl //= 10

После первого ввода он продолжает просить ввести число. Подскажите что не так или как можно реализовать по другому.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

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

Бесконечный цикл
tokenlist = s = input() s=s+’ ‘ fstsym = "*/" sndsym = "+-" allsym = ‘+-*/’ tempstr = "".

Бесконечный цикл
Какое самое маленькое число делится нацело на все числа от 1 до 20? Дело в том, что ничего не.

Бесконечный цикл программы
здравствуйте! помоги пожалуйста, сделал игру "Камень Ножницы Бумага". Хочу сделать бесконечный.

Эксперт Python

2683 / 1589 / 512
Регистрация: 21.02.2017
Сообщений: 4,205
Записей в блоге: 1

1 2 3 4 5 6 7
# -*- coding: utf-8 -*- number = input("Введите число") minimum = min(number) amount = number.count(minimum) print(f"Number: , minimum: , amount: ")

Регистрация: 15.06.2020
Сообщений: 9
А можно через циклы?
307 / 288 / 116
Регистрация: 23.01.2018
Сообщений: 933

1 2 3 4 5 6 7 8 9
n, m = divmod(int(input()), 10) k = 1 while n: n, d = divmod(n, 10) if d == m: k += 1 elif d  m: m, k = d, 1 print(m, k)

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Бесконечный вызов функции
Здравствуйте, проблема в том, как я понял, что функция qwe у меня вызывается постоянно и по-этому.

Бесконечный цикл с условиями
Здравствуйте, я всего месяц стала изучать программирование и мне нужна помощь! По задумке, эта.

Прервать бесконечный цикл
Добрый день У меня получается бесконечный цикл подскажите как сделать0 чтобы например.

Бесконечный индекс массива
Заменить числа в массиве на сумму чисел до и после этого числа input = res_list = len_mass.

Что работает быстрее, ввод с консоли или ввод с файла?
вводятся множество списков программа удаляет первое число списка и удаляет все числа в этом списке.

Как определить бесконечный список?
Добрый день. Есть такая ситуация: в результате работы кода, появляются бесконечно вложенные друг в.

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

Функция 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

Бесконечный ввод и подсчет положительных чисел

С клавиатуры вводятся целые числа, до тех пор пока не будет введена строка "стоп". Посчитать количество положительных чисел, среди введенных.

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Подсчет количества положительных чисел в списке и формирование списка с номерами позиций этих чисел
Подсчитайте количество положительных чисел в списке и сформируйте список с номерами позиций этих.

Подсчёт положительных чисел
Подсчитать количество положительных чисел среди чисел a, b, c. Как и в других моих темах, буду.

Ввод чисел по while, подсчет среднего
Числа вводятся в бесконечном цикле, пока пользователь не прекратит. Пользователь вводит число.

705 / 588 / 150
Регистрация: 04.03.2022
Сообщений: 1,220
301 / 213 / 104
Регистрация: 02.08.2022
Сообщений: 344

Лучший ответ

Сообщение было отмечено iSmokeJC как решение

Решение

Whitecolor,

1 2 3 4
counter = 0 while (num := input()) != 'стоп': counter += int(num) > 0 print(counter)

750 / 519 / 66
Регистрация: 10.03.2012
Сообщений: 3,770

1 2 3 4 5 6 7
count = 0 num=0 while num != "стоп": if int(num) > 0: count += 1 num = input("Введите число: ") print("количество введенных чисел = " ,count)
1 2 3 4 5 6 7 8 9
stop = "stop" number = "" count = 0 while stop != number: number = input("Number: ") if number != "stop": if int(number) > 0: count += 1 print("Положительных чисел:", count)

Добавлено через 3 минуты

1 2 3 4 5 6 7 8
count = 0 while True: s = input('input numberes while стоп:') if s == "стоп": break elif int(s) > 0: count += 1 print(count)

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

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

Подсчёт отрицательных и положительных чисел
Добрый день! Помогите составить макрос, который будет подсчитывать количество крайних нижних.

Подсчет количества положительных и отрицательных чисел
Мне очень нужна помощь в создании bat-файла Задание: разработать командный файл для.

Считывание положительных чисел с объекта Edit и их подсчёт
Возникла такая задача.Есть 4 объекта Edit,куда нужно вносить целые числа(отрицательные и.

Рекурсия: подсчет количества положительных чисел в массиве
Заданы массивы А(5), В(11). Определить, в каком массиве больше положительных чисел. Подсчет.

Последовательность чисел. Подсчет количества положительных и отрицательных элементов.
вводится последовательность ненулевых чисел 0-конец .последовательности . подчитать сколько в нем.

Как создать бесконечный цикл в бесконечном цикле на Python

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

 while True: print("Введите 'Добавить' чтобы добавить два числа") user_input = input(": ") if user_input == "Добавить" or "добавить": while True: numb1 = float(input("Введите первое число: ")) numb2 = float(input("Введите второе число: ")) print(str(numb1), str(numb2)) 

Отслеживать
4,497 2 2 золотых знака 9 9 серебряных знаков 28 28 бронзовых знаков
задан 27 апр 2020 в 18:29
1 1 1 золотой знак 1 1 серебряный знак 2 2 бронзовых знака

Исключений, может, и нет. А вот ошибка как раз есть. Условие if user_input == "Добавить" or "добавить": всегда истинно.

27 апр 2020 в 18:34

1 ответ 1

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

>>> while True: . print("Введите 'Добавить' чтобы добавить два числа") . user_input = input(": ") . if user_input.lower() == "добавить": . while True: . numb1 = float(input("Введите первое число: ")) . numb2 = float(input("Введите второе число: ")) . print(str(numb1), str(numb2)) . Введите 'Добавить' чтобы добавить два числа : добавить Введите первое число: 10 Введите второе число: 5 10.0 5.0 Введите первое число: 15 Введите второе число: 3 15.0 3.0 Введите первое число: 123 Введите второе число: 10 123.0 10.0 Введите первое число: 

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

>>> while True: . print("Введите 'Добавить' чтобы добавить два числа") . user_input = input(": ") . if user_input.lower() == "добавить": . while True: . numb1 = float(input("Введите первое число: ")) . numb2 = float(input("Введите второе число: ")) . print(str(numb1), str(numb2)) . if numb1 == numb2: # условие, при котором цикл заканчивается. Я использовал условие равенства двух чисел, у вас оно может быть другим . break . print('***** Бесконечный цикл закончен, код дальше выполняется') . Введите 'Добавить' чтобы добавить два числа : добавить Введите первое число: 3 Введите второе число: 2 3.0 2.0 Введите первое число: 3 Введите второе число: 5 3.0 5.0 Введите первое число: 5 Введите второе число: 5 5.0 5.0 ***** Бесконечный цикл закончен, код дальше выполняется Введите 'Добавить' чтобы добавить два числа : 

Что касательно ошибки в вашем коде:

user_input = input() if user_input == "Добавить" or "добавить": print('Это условие выполняется всегда!') 

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

if (user_input == "Добавить") or ("добавить"): pass # do something 

Логическое выражение user_input == "Добавить" может принимать как истинное значение, так и ложное, а вот логическое значение строки "добавить" всегда истинно, т.к. любая непустая строка имеет истинное булево представление. Если хотите использовать именно такой подход к решению, а не приведением к нижнему регистру, условие должно иметь вид:

if user_input in ("Добавить", "добавить"): pass # do something 

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

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

https://alkogolizm-zhi.vyvod-iz-zapoya-na-domu-sankt-peterburg-abc.ru/