#python #loops #input #while-loop #format
#python #циклы #ввод #цикл while #формат
Вопрос:
Я нашел в Интернете следующий пример кода, который завершает while True
цикл, используя определенное целое число:
while True:
i = int(input('Please enter an integer (or 0 to exit):n'))
if i == 0:
print("Exiting the Program")
break
print(f'{i} square is {i ** 2}')
Я хотел бы знать, как выйти из цикла, используя str
ввод (например, «exit») вместо определенного int (0 в этом примере).
Я запутался, создав один ввод для каждого типа:
while True:
i_str = input('Please enter an integer ( or "exit" to exit): ')
if i_str == "exit":
print("Exiting the Program")
break
i_int = int(input('Please enter an integer (or "exit" to exit): '))
print(f'{i_int} square is {i_int ** 2}')
…но он выводит что-то при каждой второй попытке и выдает ошибку ValueError при вычислении ‘exit’ при неправильной попытке.
Я в принципе не могу понять, как это правильно реализовать, и я не уверен, что мне даже следует использовать два разных формата ввода для решения этой проблемы.
Ответ №1:
Вы можете использовать if-else
и конвертировать в int
, если это не exit
так:
while True:
i_str = input('Please enter an integer ( or "exit" to exit): ')
if i_str == "exit":
print("Exiting the Program")
break
else:
i_int = int(i_str)
print(f'{i_int} square is {i_int ** 2}')
Комментарии:
1. Рад быть полезным, @Effojire, пожалуйста, подумайте о том, чтобы принять ответ, если он решил вашу проблему.
2. Проголосовали за и приняты. Upvote не будет отображаться, так как я здесь новичок. Спасибо, что дали мне знать о приемлемом варианте, я понятия не имел, что такое существует.
Ответ №2:
вы можете просто сначала преобразовать его в строку и проверить ее, затем преобразовать в int, а затем поместить все это в try-catch для перехвата любых исключений вы можете использовать пример ниже
while True:
try:
i = str(input('Please enter an integer (or 0 to exit):n'))
if "exit" in i:
print("Exiting the Program")
break
else:
i = int(i)
if i == 0:
print("Exiting the Program")
break
print(f'{i} square is {i ** 2}')
except:
print("Exiting the Program")
Ответ №3:
Вы можете просто использовать try-except
, программа вызовет исключение, если она не сможет преобразовать введенное число в целое число.
while True:
try:
i = int(input('Please enter an integer ( or "exit" to exit): '))
print(f'{i} square is {i ** 2}')
except:
print("Exiting the Program")
break