#python #string #integer
#python #строка #целое
Вопрос:
У меня возникла проблема с запуском этого кода. Когда я пытаюсь его запустить, он говорит, что это не сработает, потому что age — это строка. Как мне преобразовать строку в целое число? Я также пытался сделать 18 — int(возраст), и это тоже не сработает.
age = input ("How old are you? (): ")
if int(age) > 18 :
print("You're old enough to drink")
else:
print("You're not old enough to drink. Wait", 18 - age, "more years")
Комментарии:
1. Можете ли вы поделиться с нами выводом, который выдает этот код, и выводом, который вы ожидали от него.
2. Где вы делаете
if int(age) > 18
, по вашим собственным словам: а) что означаетint(age)
часть? б) ожидаете ли вы, что это изменитсяage
? Почему или почему нет?3. «Я также пытался сделать 18 — int(возраст), и это тоже не сработает». Что вы имеете в виду, «не будет работать»? Как именно вы «попробовали» это; что произошло, когда вы попытались; и чем это отличается от того, что должно произойти?
4. возможно, вы вводите строки типа «19.0» …. вы не можете напрямую преобразовать str в int, если str имеет значение с плавающей запятой в формате str …. для этого вы можете использовать float … float(возраст)
Ответ №1:
age = input("How old are you? (): "))
try:
age = int(age)
if age > 18 :
print("You're old enough to drink.")
else:
print(f"You're not old enough to drink. Wait {18-age} more years.")
except:
print("You did not enter a valid age.")
Ответ №2:
Обратите input("How old are you? (): ")
внимание, что int(input("How old are you? (): "))
age = int(input("How old are you? (): "))
if int(age) > 18 :
print("You're old enough to drink")
else:
print("You're not old enough to drink. Wait {} more years".format(18-age))
Ответ №3:
Вы можете добавить try.. except..
Вот так:
age = input("How old are you? (): "))
try:
age = int(age)
if age > 18 :
print("You're old enough to drink.")
else:
print(f"You're not old enough to drink. Wait {18-age} more years.")
except ValueError:
print("Not a valid age. Please enter again")
и, кстати, вы можете использовать f'
строки для строкового формата.
или используйте .format
:
print("You're not old enough to drink. Wait {0} more years.".format(18-age))
Ответ №4:
while True:
age = input ("How old are you? ")
#Check if the input is a positive integer
if age.isdigit() >0:
break
if int(age) > 18 :
print("You're old enough to drink.")
else:
print("You're not old enough to drink. Wait",18 - int(age), "more years.")
#Remove the in 18 because you already use comma after'Wait'
Комментарии:
1. Я использую цикл while, чтобы повторить запрос для недопустимого ввода.