Python print语句未显示在If-in-range语句中

2024-09-29 01:34:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我在网上看过如何用python编写if-in-range语句,我很困惑为什么print语句没有出现。你知道吗

print("Hello User What Is The Wind Chill Today?")
windChill = int(input())

if windChill <= -25:
    print("No School!!!")

if windChill >= 0:
    print("Theres School ):")

if int(windChill) in range(-1, -24):
    print("Maybe school")

预期的结果是,如果我输入-20,它会说“也许学校”,但现在它并没有显示打印语句,当我输入一个从-1到-24的数字。你知道吗


Tags: theinhelloifisrange语句what
3条回答

您的range命令是向后的,它应该从最小的(最负的)数字变为最大的。如果你想要一个从-1到-24的范围,你应该做range(-24, -1)

您的范围函数是向后的。但如果使用if-elif-else语法,则不需要包含最后一个if条件。

您应该在这里使用if-elif-else语句,如下所示:

print("Hello User What Is The Wind Chill Today?")
windChill = int(input())

if windChill <= -25:
    print("No School!!!")

elif windChill >= 0:
    print("Theres School ):")

else:
    print("Maybe school")

Python的range函数以1的值递增。range中的第一个参数是start,第二个是stop,第三个(可选)参数是step,这是它的增量。你有两个选择。你知道吗

从较低的数字开始,到较高的数字停止

if int(windChill) in range(-24, -1):

或者保留你所拥有的,但告诉range以-1递增

if int(windChill) in range(-1, -24, -1):

以上两种方法将为您实现相同的结果,不过仅供参考,如果您对它们运行list(),它们都将导致彼此的反向列表

print(list(range(-24, -1)))
#[-24, -23, -22, -21, -20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2]

print(list(range(-1, -24, -1)))
#[-1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15, -16, -17, -18, -19, -20, -21, -22, -23]

编辑

如果挖掘得更深,则使用以下公式确定范围:

For a positive step, the contents of a range r are determined by the formula r[i] = start + step*i where i >= 0 and r[i] < stop.

For a negative step, the contents of the range are still determined by the formula r[i] = start + step*i, but the constraints are i >= 0 and r[i] > stop.

Reference

所以本质上,range实际上排除了我的示例中的stop值(分别是-1-24,所以一定要考虑到这一点。使用

if int(windChill) in range(-24, 0):
#or
if int(windChill) in range(-1, -25, -1):

相关问题 更多 >