繁体   English   中英

如果语句仅打印其他

If statement only printing else

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

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 个回复

你要

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()通常返回一个字符串。

尝试将此代码用于==

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')

您必须将input()从字符串转换为整数,否则将始终运行else语句。 您可以使用int() ,但是如果用户输入了无法转换为整数的内容,则可能必须进行一些错误处理。

我对您的代码进行了一些更改。 我相信这就是您要寻找的。

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')

代替使用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')

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')

input返回一个字符串,所以我想你应该做amount = int(input('...'))

1 没有打印语句的Python打印

我当时在一个简单的项目中工作,我可以在不使用alt代码的情况下编写特殊字符,并且遇到了一个很酷的bug,我的代码无需打印语句即可打印。 我的程序没有按我预期的那样工作,因为备份(1.txt,2.txt ... 5.txt)与我离开它们(空)时一样,但是打印出前两个备份的内容,并且发现了一 ...

2 打印语句后的输入语句先打印

我有一个打印语句的开头和输入语句。 但是,输入语句将首先打印。 终端屏幕的结果是: 如果我在两个语句之间引入某种形式的延迟,则它可以正常工作。 示例代码: 终端中的输出以正确的顺序打印 任何人都知道为什么会发生这种情况,除非您延迟执行,否则看起来这两个语句之间 ...

2018-12-28 08:13:00 1 18   python
4 php,打印语句在哪里打印

我正在对以下代码进行修改。 我是新手。 下面的代码是一段较长的代码的一小段,该代码要长得多,每5分钟扫描一次mySQL数据库中的特定事件。 如果股票价格超过预设的设定值,则会触发以下事件。 触发事件后,将构造一个字符串(称为$ body)并发送电子邮件。 语句:“ $ body。= ...

7 打印语句会多次打印而不是一次打印?

这是我当前的代码: 它是输入和输出的内容: 如何使“游戏2:” printf语句仅显示一次? 我尝试将其放在代码的不同部分,但仍然没有得到。 为了更好地理解我想要得到的东西,这是我想要做的事情: ...

8 else 语句不打印线?

我写了一个简单的程序,它应该显示用户输入的 int 是否是闰年,如果是,它是什么闰年。 在程序运行期间,只要输入一个不应该是闰年的数字,它就不会打印 else 语句。 注意:这是在 IDE BlueJ 中编写的,因此 io 是自动导入的,因此我没有导入它 /** * Reads a user ...

9 如何保存打印语句的输出

我只想将每个 for 循环的打印语句的输出保存到一个名为 test.txt 的文本文件中,并且在文本文件中,每个 for 循环输出应该用 >>> 符号分隔,另外我想在文本文件的顶部为“column-a”。我试过的代码如下: 通过执行上面的代码,我得到了如下所示 但我需要像下 ...

10 aws lambda 不记录打印语句

我有一个 lambda_handler 函数,如: 我可以看到日志输出传递到 CloudWatch 就好了。 我可以看到开始、结束、语法错误等,所以我认为这不是权限问题,但我在任何地方都看不到我的打印语句。 我的 IAM 角色允许以下内容: 允许:日志:创建日志组 允许:日志:CreateLo ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM