Python 3.x python if和else语句错误

Python 3.x python if和else语句错误,python-3.x,Python 3.x,请帮助我使用python中的if和else语句。我喜欢根据a的值来设置b a=5 b=0 def fname(): #less than 5 if (a < 5): b=100 #greater than 5 or less than 10 elif (a >= 5) and (a <= 10): b=200 #greater than 10 or less than 20 elif (a >

请帮助我使用python中的if和else语句。我喜欢根据a的值来设置b

a=5
b=0
def fname():
    #less than 5
    if (a < 5): 
        b=100
    #greater than 5 or less than 10
    elif (a >= 5) and (a <= 10):
        b=200
    #greater than 10 or less than 20
    elif (a >10) and (a <= 20):
        b=300
print (b)
fname()
a=5
b=0
def fname():
#少于5
如果(a<5):
b=100
#大于5或小于10

elif(a>=5)和(a10)和(a在
fname
中的
b
与全局/外部范围中的
b
不同

一个丑陋的方法是在
fname
中添加
global b

更好的方法是将
A
的值传递给
fname
,让
fname
返回
b
的新值并分配:

def fname(a_number):
    #less than 5
    if a_number < 5: 
        return 100
    #greater than 5 or less than 10
    elif 5 <= a_number <= 10:
        return 200
    #greater than 10 or less than 20
    elif 10 < a_number <= 20:
        return 300        

b = fname(a)
def fname(一个数字):
#少于5
如果一个_数小于5:
返回100
#大于5或小于10
elif 5
a=5
b=0
def fname():
#少于5
如果(a<5):
b=100
印刷品(b)
#大于5或小于10

elif(a>=5)和(a 10)和(a)您在哪里调用
fname
任何地方?您在哪里都没有任何
其他
语句是的。我添加了fname()最后。嗯……你是否意识到
a
永远不能同时小于6和大于10,对吗?这些条件是:#如果小于5b是100;#大于或等于5和小于10b是200;#大于或等于10和小于20b是300;
在调用
fname()之前打印
ing
b
不会显示由
fname所做的更改。
还可以使用比较链接使条件更具可读性:
elif 5@ethafurman:您还可以将所有的elif更改为简单的if's,因为每个返回都会结束函数。@VPfB:True,但如果只是扫描代码,
elif
s会清楚地表明只有一个函数ch将被执行。我如何测试b的值?@EthanFurman:刚刚发现:我们只是有不同的个人偏好。
a = 5
b = 0


def fname():
    # less than 5
    if (a < 5):
        b = 100
        print(b)
    # greater than 5 or less than 10
    elif (a >= 5) and (a <= 10):
        b = 200
        print(b)
    # greater than 10 or less than 20
    elif (a > 10) and (a <= 20):
        b = 300
        print(b)


fname()