Python 在一个条件语句中检查多个变量
如果。。。else语句同时检查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
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