NameError,变量未显示存储的tex

2024-05-15 22:51:41 发布

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

我正在为一个类赋值编写一些代码,在我的一生中,我无法获得一个变量来显示我存储在其中的文本:

if (salesavg < 5000):
    rank = "SAD SALESMEN"
    if (salesavg >= 5000 or salesavg <= 8000):
        rank = "LOW SALESMAN"
        if (salesavg >= 8001 or salesavg <= 9000):
            rank = "MID SALESMAN"
            if (salesavg >= 9001 or salesavg <= 10000):
                rank = "EXCELLENT SALESMAN"
                if (salesavg > 10000):
                   rank = "TOP SALESMAN"

以及它应该显示的位置:

print("RANKING: " ,rank)

不是很匆忙,但我很困惑为什么它不起作用,我在这个程序的其他部分使用了类似的方法,它们工作得很好

回答:谢谢!将其改为elif和from或to,并修复了我遇到的问题(也颠倒了顺序)。现在很好用


Tags: or代码文本iftoplowprint赋值
3条回答

不确定你是否弄乱了格式,但我认为你弄乱了逻辑: 你们所有人如果循环是嵌套的

if (salesavg >= 5000 or salesavg <= 8000):

仅在salesavg<;时运行;5000个

这是不合逻辑的,所以要解决这个问题:

if salesavg < 5000: rank = "SAD SALESMEN"
elif salesavg <= 8000: rank = "LOW SALESMAN"
elif salesavg <= 9000: rank = "MID SALESMAN"
elif salesavg <= 10000: rank = "EXCELLENT SALESMAN"
elif salesavg > 10000): rank = "TOP SALESMAN"
# this last one could just be else: rank = "TOP SALESMAN"

编辑优化

你需要用elif,而不仅仅是如果。代码检查salesavg<;如果这不是真的,它只会跳过所有其他if语句,因为只有在第一个if语句触发时,它们才能触发。那么变量rank没有被声明,因为if语句从未被触发

下面是我要做的:

if (salesavg > 10000):
    rank = "TOP SALESMAN"
elif (salesavg >= 9001 or salesavg <= 10000):
    rank = "EXCELLENT SALESMAN"   
elif (salesavg >= 8001 or salesavg <= 9000):
    rank = "MID SALESMAN"
elif (salesavg >= 5000 or salesavg <= 8000):
    rank = "LOW SALESMAN"
elif (salesavg < 5000):
    rank = "SAD SALESMEN"

还要注意,我更改了顺序,以便它首先查找最高的。这是因为,如果不是这样的话,顶级销售人员只会首先触发其他任何更小的级别。希望这有帮助

在Python中,缩进用于确定语句的结构

在你的代码里,在里面

if (salesavg < 5000):

嵌套条件

    if (salesavg >= 5000 and salesavg <= 8000):

不会是真的。其他人也一样

应该是这样的:

if (salesavg < 5000): 
    rank = "SAD SALESMEN"
elif (salesavg >= 5000 and salesavg <= 8000):
    rank = "LOW SALESMAN"
//...

顺便说一句,代码中的所有or都应该是and,正如我在示例中修复的那样

相关问题 更多 >