Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 23, 2023 21:41:39

rvcXLB
Зарегистрирован: 2023-09-23
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как решить поставленную задачу?

Привет! Хотел сделать программу, которая будет определять, является ли введённое число отрицательным или положительным, но если ввести строку, то вылетит ошибка. Как сделать так, чтобы при вводе строки, программа заставляла пользователя заново вводить число?

Прикреплённый файлы:
attachment 123.png (10,3 KБ)

Офлайн

#2 Сен. 23, 2023 23:28:24

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9880
Репутация: +  853  -
Профиль   Отправить e-mail  

Как решить поставленную задачу?

rvcXLB
но если ввести строку, то вылетит ошибка. Как сделать так, чтобы при вводе строки, программа заставляла пользователя заново вводить число?
Отдели int() от input() и всё. Сначала делаешь input(), потом проверяешь, что ввелось в качестве строки, число ли это, а потом уже делаешь int().



Офлайн

#3 Сен. 23, 2023 23:33:15

rvcXLB
Зарегистрирован: 2023-09-23
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как решить поставленную задачу?

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

Офлайн

#4 Сен. 24, 2023 19:54:43

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9880
Репутация: +  853  -
Профиль   Отправить e-mail  

Как решить поставленную задачу?

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
меньше нуля
>>>



Отредактировано py.user.next (Сен. 24, 2023 20:00:54)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version