def quantity():
global amount
amount = input('How many tickets are you looking for? ')
if amount == range(1,7):
print('You have selected {} tickets '.format(amount))
elif amount == (0):
print('You have selected 0 tickets')
else:
print('Please choose an amount between 0-6')
我正试图创建票务成本计算器来缓和我的记忆,但是我对数量部分的IF语句感到困惑,因为即使IF和ELIF为true,它也只打印ELSE。
答案 0 :(得分:2)
您想要
if amount in range(1,7):
而不是当前拥有的
if amount == range(1,7):
实际上它有点复杂(因为它返回的是生成器而不是列表),但是您可以将range(1,7)
概念化为返回该范围内的数字列表的函数。例如
range(1,7) ~~ [1, 2, 3, 4, 5, 6]
如果您的金额是整数,则要查看它是否在该范围内,而不是 在该范围内-毕竟,整数不能是列表同时。
[edit]:正如其他答案之一指出的那样,您可能还希望将input()
的结果强制转换为int-因为input()
通常返回一个字符串。
答案 1 :(得分:0)
尝试将此代码用于==
def quantity():
global amount
amount = input('How many tickets are you looking for? ')
if amount in range(1,7):
print('You have selected {} tickets '.format(amount))
elif amount == (0):
print('You have selected 0 tickets')
else:
print('Please choose an amount between 0-6')
答案 2 :(得分:0)
您必须将input()
从字符串转换为整数,否则将始终运行else语句。您可以使用int()
进行此操作,但是如果用户输入了一些无法转换为整数的内容,则可能必须进行一些错误处理。
答案 3 :(得分:0)
我对您的代码进行了一些更改。我相信这就是您要寻找的。
def quantity():
global amount
amount = int(input('How many tickets are you looking for? '))
if amount in range(1,7):
print('You have selected {} tickets '.format(amount))
elif amount ==0 :
print('You have selected 0 tickets')
else:
print('Please choose an amount between 0-6')
答案 4 :(得分:0)
使用if amount == range(1,7):
代替使用if amount in range(1,7):
这是您应该使用的修改后的代码:
def quantity():
global amount
amount = input('How many tickets are you looking for? ')
if amount in range(1,7):
print('You have selected {} tickets '.format(amount))
elif amount == (0):
print('You have selected 0 tickets')
else:
print('Please choose an amount between 0-6')
答案 5 :(得分:0)
1。python3中的range函数返回一个迭代类型。
2。python3中的输入函数返回一个字符串,应将其转换为整数。 试试这个:
amount = int(input('How many tickets are you looking for? '))
if amount in range(1,7):
print('You have selected {} tickets '.format(amount))
elif amount == (0):
print('You have selected 0 tickets')
else:
print('Please choose an amount between 0-6')
答案 6 :(得分:-1)
input
返回一个字符串,所以我想您应该做amount = int(input('...'))
。