python的不等式/数值+条件语句?

Posted

技术标签:

【中文标题】python的不等式/数值+条件语句?【英文标题】:Inequalities/numerical values+conditional statements for python? 【发布时间】:2017-04-06 08:31:23 【问题描述】:

我想对python进行条件测试,检查给定输入数字的值是否等于或小于9,并且大于或等于0。

number =input( "Please enter a number! :" )
Please enter a number! :23
>>> edited_number=float(number)
>>> if edited_number >0 <9:
    print ("Entered value greater than or equal to 0 and less than or equal to 9!")

我收到一条打印的消息:

输入的值大于或等于 0 且小于或等于 9!

这显然是错误的,因为输入的值是 23。这向我表明

有没有办法让我有一个带有单个 if 的数字范围?还是每个 if 语句只解释一个条件?

PS:如果有任何相关性,我正在使用 Python 3.6.0b。

【问题讨论】:

【参考方案1】:

你可以写

if not (0 <= edited_number <= 9):
   print ("Entered value greater than or equal to 0 and less than or equal to 9!")

【讨论】:

【参考方案2】:

那个链接的表达式并没有像你想象的那样做。你想要的是:

0 <= edited_number <= 9

或者,如果您对链式条件不满意,您可以使用详细形式:

0 <= edited_number and edited_number <= 9

表达式:

edited_number > 0 < 9

一样
edited_number > 0 and 0 < 9

edited_number 为 23 时,其计算结果为 True


参考:

Comparisons

【讨论】:

您建议的表达方式难道不是与想要的相反吗? @ScottHunter 好眼光 @Moses Koledoyle;我可以和你澄清一下,你是说我的语法错误,而不是编码错误? :) @apronedsamurai 我会说条件表达式没有正确编写 - 您的编码。变量应该在中间。如果您对链式条件不满意,最好使用详细形式。【参考方案3】:

if edited_number &gt; 0 &lt; 9

这在 python 中不起作用。 您需要像这样指定变量两次:

if edited_number &gt; 0 and edited_number &lt; 9

【讨论】:

【参考方案4】:
number =input( "Please enter a number! :" )

edited_number=float(number)
if  not (0 <= edited_number <= 9):
    print ("Entered value greater than or equal to 0 and less than or equal to 9!")

输入:23

输出:Entered value greater than or equal to 0 and less than or equal to 9!

【讨论】:

以上是关于python的不等式/数值+条件语句?的主要内容,如果未能解决你的问题,请参考以下文章

五.条件循环和其他语句

Python语法

pythonif判断条件简写

条件判断语句

sql 语句中where多个数值条件的判断使用,或者其他可以实现的方式,高手来

14Shell脚本—判断语句