我是Python新手编码的新手。我正在尝试制作我的代码,以便在我进入年龄时将打印一系列文本。但是,我的代码只有在我逐行跟踪时才有效。例如,当我输入2000岁以上的时候,什么都不会发生。我需要先输入一个小于12的整数,然后输入一个大于2000的整数。
print('Please input name')
if input() == 'Alice':
print('Hi, Alice.Please input age')
if int(input()) < 12:
print('You are not Alice, kiddo.')
elif int(input()) > 2000:
print('Unlike you, Alice is not an undead, immortal vampire.')
elif int(input()) == 100:
print('You are not Alice, grannie.')
elif 12 < int(input()) < 99:
print('You are Alice!.')
答案 0 :(得分:3)
在这里,我为您的理解目的编写代码。采用新变量,这样就不需要多次重复input()方法了。此外,年龄验证代码保持在第一个条件内,并在第一个条件为真时执行。
print('Please input name')
var = input()
if var == 'Alice':
print('Hi, Alice.Please input age')
var = input()
try:
if int(var) < 12:
print('You are not Alice, kiddo.')
elif int(var) > 2000:
print('Unlike you, Alice is not an undead, immortal vampire.')
elif int(var) == 100:
print('You are not Alice, grannie.')
elif 12 < int(var) < 99:
print('You are Alice!.')
except Exception as ex:
print('Invalid Data: Error: ' + ex)
else:
print ("Invalid Name")
答案 1 :(得分:3)
var = input('Please input name ')
if var == 'Alice':
var = int(input('Hi, Alice.Please input age '))
if var < 12:
print('You are not Alice, kiddo.')
elif var > 2000:
print('Unlike you, Alice is not an undead, immortal vampire.')
elif var == 100:
print('You are not Alice, grannie.')
elif 12 < var < 99:
print('You are Alice!.')
else:
print ("Invalid Name")
此代码有效,因为它要求一次并尝试查看某些条件是否为真,而不是每次都询问。
答案 2 :(得分:1)
每次你去if
的另一个分支机构时,你都要求用户输入另一个年龄!而是执行以下操作:
age = int(input())
if age < 12:
print('You are not Alice, kiddo.')
elif age > 2000:
print('Unlike you, Alice is not an undead, immortal vampire.')
elif age == 100:
print('You are not Alice, grannie.')
elif 12 < age < 99:
print('You are Alice!.')
答案 3 :(得分:1)
print('Please input name')
if input() == 'Alice':
print('Hi, Alice.Please input age')
age = int(input()) # take input and assign it on a variable
if age < 12:
print('You are not Alice, kiddo.')
elif age > 2000:
print('Unlike you, Alice is not an undead, immortal vampire.')
elif age == 100:
print('You are not Alice, grannie.')
elif 12 < age < 99:
print('You are Alice!.')
答案 4 :(得分:1)
input
时都会调用 ()
。因此,input()
if
中的多个elif
不是必需的。
将[{1}}的结果存储为input()
,然后在age = int(input())
和age
部分中使用if
。
答案 5 :(得分:1)
input()
函数返回一个字符串。引用the docs(强调我的):
然后函数从输入中读取一行,将其转换为字符串(剥离尾随换行符),然后返回。
因此,当您致电if
时,在每个input()
中,您必须输入一个新字符串。因此,您必须先输入一个低于12的整数。
要解决此问题,您需要将原始输入存储在变量中。现在,正如文档所说,input()
返回一个字符串。因此,您可以通过执行以下操作(在每种情况下使用int()
)转换整数:
if int(age) < 12:
并将变量存储为字符串。
但是,除非你没有任何特定的理由将年龄保持为字符串,否则我建议你在首先将年龄存储在变量中时转换字符串:
age = int (input())
在这种情况下,age
将有一个int。
答案 6 :(得分:0)
希望这是您正在寻找的:
while True:
name = input("Please ENTER your name: ")
if name == "Alice":
print("Hi Alice!")
break
print("Sorry, your name isn't correct. Please re-enter.")
age = False
while age != True:
age = int(input("Please ENTER your age: ")
age = True
if age < 12:
print("You're not Alice, kiddo.")
age = False
elif age > 2000:
print("Unlike you, Alice is not an undead, immortal vampire.")
age = False
elif age == 100:
print("You're not Alice, Granny!")
age = False
else:
print("You are Alice!")
age = True