Пользователь вводит значение, и я хочу, чтобы оно было ТОЛЬКО положительным целым числом . Когда введенное значение не является положительным целым числом, оно зациклится и попросит пользователя ввести снова. Как мне написать исключительный случай для этого? Я хочу написать исключительный случай для отрицательного числа, десятичного числа и строки.
4 ответа
Вот пример цикла:
>>> x = -1
>>> while(x < 0):
... x = input('Enter a positive integer> ')
... try:
... x = int(x)
... except ValueError:
... x = -1
...
Enter a positive integer> aaa
Enter a positive integer> -123
Enter a positive integer> 5.2
Enter a positive integer> 5
>>> print(x)
5
Десятичное число терпит неудачу, потому что это эквивалентно int("5.2")
, который генерирует ValueError
Как насчет использования регулярного выражения
import re
re.match('^[1-9][0-9]*$', input)
def isPositive(input):
return bool(re.match('^[1-9][0-9]*$', input))
In [26]: isPositive('3')
Out[26]: True
In [27]: isPositive('-4')
Out[27]: False
In [28]: isPositive('0')
Out[28]: False
In [29]: isPositive('345')
Out[29]: True
In [30]: isPositive('3.5')
Out[30]: False
Я преобразовал float в int, потому что я пытался последовательность Фибоначчи
test = True
user1 = ''
while test:
user1 = float(input("Enter numbers of fibonacci : "))
if int(user1) == user1:
if user1 > 0:
user1 = int(user1)
break
else:
print("Please enter a positive integer")
else:
print("Please enter a positive integer")
Это можно сделать с помощью простой проверки:
n = int(input())
while n < 0: # simply check that it's not negative:
print("can't be negative!")
n = int(input())
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.