如果语句仅打印其他

时间:2018-11-15 04:55:56

标签: python

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。

7 个答案:

答案 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('...'))