Найти - Пользователи
Полная версия: Как решить поставленную задачу?
Начало » Python для новичков » Как решить поставленную задачу?
1
rvcXLB
Привет! Хотел сделать программу, которая будет определять, является ли введённое число отрицательным или положительным, но если ввести строку, то вылетит ошибка. Как сделать так, чтобы при вводе строки, программа заставляла пользователя заново вводить число?
py.user.next
rvcXLB
но если ввести строку, то вылетит ошибка. Как сделать так, чтобы при вводе строки, программа заставляла пользователя заново вводить число?
Отдели int() от input() и всё. Сначала делаешь input(), потом проверяешь, что ввелось в качестве строки, число ли это, а потом уже делаешь int().
rvcXLB
Если оставить просто input() тогда любое значение, неважно цифры это или буквы, будут записываться как строка, в этом и кроется моя проблема
py.user.next
rvcXLB
Если оставить просто input() тогда любое значение, неважно цифры это или буквы, будут записываться как строка, в этом и кроется моя проблема
  
text = None
while True:
    print('Введите число')
    text = input()
    if text.isdigit():
        break
    elif text[0] in '-+' and text[1:].isdigit():
        break
    else:
        print('неправильно')
 
number = int(text)
 
print('Число', number)
if number < 0:
    print('меньше нуля')
elif number > 0:
    print('больше нуля')
else:
    print('равно нулю')

  
>>> def f():
...     text = None
...     while True:
...         print('Введите число')
...         text = input()
...         if text.isdigit():
...             break
...         elif text[0] in '-+' and text[1:].isdigit():
...             break
...         else:
...             print('неправильно')
...     
...     number = int(text)
...     
...     print('Число', number)
...     if number < 0:
...         print('меньше нуля')
...     elif number > 0:
...         print('больше нуля')
...     else:
...         print('равно нулю')
... 
>>> f()
Введите число
abc
неправильно
Введите число
def
неправильно
Введите число
-a
неправильно
Введите число
0a
неправильно
Введите число
-123
Число -123
меньше нуля
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB