Python 在一个条件语句中检查多个变量

Python 在一个条件语句中检查多个变量,python,python-3.x,Python,Python 3.x,如果。。。else语句同时检查a和b。我想要一种有效的方法来计算不好的和不坏的,以最小化代码行数。可能吗 如何在if语句中同时打印a和b?以及如何计算好的和差的计数 a = 1 b = 3 good_count=0 poor_count=0 if a in range(0,6) and b in range(0,6): //print and count elif a in range(6,10) and b in range(6,10): //ppri

如果。。。else语句同时检查
a
b
。我想要一种有效的方法来计算不好的和不坏的,以最小化代码行数。可能吗

如何在if语句中同时打印
a
b
?以及如何计算好的和差的计数

a = 1  
b = 3  
good_count=0  
poor_count=0  
if a in range(0,6) and b in range(0,6):   
    //print and count
elif a in range(6,10) and b in range(6,10):  
    //pprint and count
这是一种很长的工作方法:

a = 1  
b = 3  
good_count=0  
poor_count=0  
if a in range(0,6):  
    print("a = GOOD")
    good_count+=1`    
elif a in range(6,10):
    print("a = POOR")
    poor_count+=1
if b in range(0,6):    
    print("b = GOOD") 
    good_count+=1 
elif b in range(6,10):   
    print("b = POOR ")  
    poor_count+=1
print("no_of_good=",good_count," ","no_of_poor=",poor_count)
实际产量:

a = GOOD  
b = GOOD  
no_of_good= 2   no_of_poor= 0  

预期的输出也应该是相同的,但是通过使用任何不同的方法

如果不想重复If语句,那么可以考虑使用一个datatstructure来保存值并迭代所有值

我还将条件更改为使用整数comparison而不是范围;在我看来,它更干净

下面是一个使用
dict
保存数据的示例:

data = {
    'a': 1,
    'b': 3,
    'c': 5,
    'd': 6,
}

good_count = 0
poor_count = 0
for k, v in data.items():
    if 0 <= v <= 5:
        good_count += 1
        result = 'GOOD'
    else:
        poor_count += 1
        result = 'POOR'
    print('{} = {}'.format(k, result))

print('no_of_good = {}'.format(good_count))
print('no_of_poor = {}'.format(poor_count))

这对你有帮助吗?

如果你不关心变量,
a,b,c,d
等,你可以使用一个列表,并使用列表的索引来打印
好的
差的

li = [1,3,5,6]

good_count = 0
poor_count = 0

#Iterate through the list
for idx, item in enumerate(li):

    #Check the condition on the item and print accordingly
    if 0 <= item <= 5:
        good_count+=1
        print('index {} = GOOD'.format(idx))
    elif 6<= item <= 10:
        poor_count+=1
        print('index {} = POOR'.format(idx))

#Print final good and poor count
print('no_of_good = {}'.format(good_count))
print('no_of_poor = {}'.format(poor_count))

你的短方法不管用吗?您遇到的问题是什么?“有效”和“最小化代码行数”不一定是同一件事-一行代码通常是无效的。如果您不关心变量的
名称
,您可以使用一个列表,如下面我的回答!是的,有帮助。我想询问是否有一个变量已经保存了一个值,例如avg_sen_len=(word_count/sen_count)。这个变量的值会随着文本的变化而不断变化。我们如何将其添加到dict中。您可以像这样更新
dict
数据['avg_sen_len']=word_count/sen_count
这里的列表包含变量值li={1,3,5,6},但我不关心“变量值”而不是“变量”。因为每次运行代码时,值都在变化,所以我只能在列表中指定变量a、b、c、d。是否遵循相同的程序?另外,我不想打印索引0=good。相反,a或b或c或d=GOOD(该索引中的变量名是什么)是的,当您想要更改值时,请更改列表,并且当列表变大时,变量名也将用完,因此最好有一个动态生成的变量名,var_0或var_1这样的名称是否适合您@米苏希德
li = [1,3,5,6]

good_count = 0
poor_count = 0

#Iterate through the list
for idx, item in enumerate(li):

    #Check the condition on the item and print accordingly
    if 0 <= item <= 5:
        good_count+=1
        print('index {} = GOOD'.format(idx))
    elif 6<= item <= 10:
        poor_count+=1
        print('index {} = POOR'.format(idx))

#Print final good and poor count
print('no_of_good = {}'.format(good_count))
print('no_of_poor = {}'.format(poor_count))
index 0 = GOOD
index 1 = GOOD
index 2 = GOOD
index 3 = POOR
no_of_good = 3
no_of_poor = 1