Нужно было прекратить цикл на вводе пустой строки, выдавало ту самую ошибку:
ValueError: invalid literal for int() with base 10: ''
Проблему решил с помощью int(input() or 0)
Но вот какая была задача: 2 ввода, первый на левую границу и второй на правую, дальше ввод цифр до тех пор, пока не введется пустая строка и если хоть одна цифра из ввода выходит за границы то на вывод False, иначе True
Задачу решил по всем тестам, но когда сам тестировал с границами 1 и 10, а на ввод добавлял 0, то выводило True сразу и цикл сам прерывался, не пойму почему, даже дописал код, что если данные будут == 0, чтобы выводило False, но все равно даже после цикла код не выполнялся.
Объясните, пожалуйста, простым языком начинающему программисту, почему так произошло и как это предотвратить
Без заморочек решается через "try". Пустой ввод (или не цифры, напр х) вызовет ошибку, чего и надо.
Вводится и 0 в том числе, конец ввода - Enter, пустая строка x=[]
while True:
try:
x.append(int( input('x['+str(len(x)+1)+']= ')))
except:
break
print(*x)
a, b = int(input()), int(input())
flag = True
while True:
n = input()
if n and (int < a or int > b) and flag:
flag = False
elif not n:
break
print(flag)
Проблема в том, что твой вариант решения проблемы не различает ситуации "ввели пустую строку" и "ввели 0".
Специально для указанного в задаче способа ввода в Python есть стандартная функция iter: for s in iter(input, ''):
n = int(s)
... или сразу получать числа: for n in map(int, iter(input, '')):
...
1 вариант
#у нас есть переменная ответ в которое ты вводишь число
otvet = input ("введите число: "
#Тут у нас переводиться с str (обычного текста) на int(число)
try:
otvet = int(otvet)
#Если программа выдаёт ошибку то у нас печатается текст и программа закрывается
except:
print('вы ввели буквы, а ни число от 1 до 3.'
exit()
2 вариант
#тут бесконечный цикл
while True:
#берём число
otvet = input("Введите число: "
#если всё верно бесконечный цикл прерываеться и программа идёт дальше
try:
otvet = int(otvet)
break
#если выдаётся ошибка то цикл идёт заново
except:
print("Введите число, а ни букву"