检查至少2个变量是否与另一个变量相同或更高

时间:2017-10-27 19:55:06

标签: python

代码:

quota = 22

a = int(input("Enter a number: "))
b = int(input("Enter a number: "))
c = int(input("Enter a number: "))
d = int(input("Enter a number: "))
e = int(input("Enter a number: "))

如果a-f中的至少两个变量等于或高于变量配额而不是print"我满意的话,那就是#Quot met"

最好是我希望以最有效和最容易理解的方式。

8 个答案:

答案 0 :(得分:6)

最简单的方法,恕我直言,只有count出现quota的次数:

if (a, b, c, d, e).count(quota) >= 2:
    print "quota met"

答案 1 :(得分:2)

您可以使用while循环执行cicle 6次(并且不需要变量)

quota = 22
n = 6
res = 0
while n != 0:
  if(int(input("Enter a number: ")) >= quota):
    res += 1
  n -= 1

if(res >= 2):
  print("Quota met")
else:
  print("not met2")

或使用您的方法和变量:

quota = 22

a = int(input("Enter a number: "))
b = int(input("Enter a number: "))
c = int(input("Enter a number: "))
d = int(input("Enter a number: "))
e = int(input("Enter a number: "))
f = int(input("Enter a number: "))



if (len([x for x in [a,b,c,d,e,f] if x>=quota]) >= 2): print("quota met!")

答案 2 :(得分:2)

您可以创建一个可迭代的条目,并总结测试等于或高于配额值的所有项目的bool值:

if sum(x >= quota for x in (a, b, c, d, e, f)) >= 2:
    print('quota met')

答案 3 :(得分:1)

type=input("enter the type of animal(cheetah:c,lion:l,deer:d):") speed=float(input("average speed for a hour(km):") while answer=="Y" or answer=="y": while type=="c" or type=="d" or type=="l": if type=="c": ceetah_count+=1 total_c_speed+=speed elif type=="d": deer_count+=1 total_d_speed+=speed else: lion_count+=1 total_l_speed+=speed animal_count+=1 total_speed+=speed type=input("enter the type of animal(cheetah:c,lion:l,deer:d):") speed=float(input("average speed for a hour(km):) answer=input("are there any animals?(yes:y/no:n):)`

if (sum([x >=quota for x in [a,b,c,d,e]])) >= 2: print("Quota met")

答案 4 :(得分:1)

使用reduce

  

Reduce是一个非常有用的函数,用于在列表上执行某些计算并返回结果。它将滚动计算应用于列表中的连续值对。

In [1]: a,b,c,d,e = 5,6,7,8,9
In [2]: quota=7
In [3]: f=lambda x, y: x + 1 if y >= quota else x
In [4]: reduce ( f, [a,b,c,d,e], 0 )
Out[4]: 3

不是真的可读,但每个人都喜欢减少。

编辑过期@ StefanPochmann的评论 - 函数f已修复

答案 5 :(得分:0)

  quota = 22
cc=0

a = int(input("Enter a number: "))
b = int(input("Enter a number: "))
c = int(input("Enter a number: "))
d = int(input("Enter a number: "))
e = int(input("Enter a number: "))

if (a==quota):
    cc=cc+1
if (b==quota):
    cc=cc+1
if (c==quota):
    cc=cc+1
if (d==quota):
    cc=cc+1
if (e==quota):
    cc=cc+1

if(cc>=2):
    print('Quota met')
else
    print('Quota not met')

第1步:获取输入

第2步:将每个输入与配额

进行比较

步骤3:如果输入与配额匹配,则将计数器(cc)增加一个

步骤4:对其他输入重复步骤3

步骤5:检查计数器是否大于或等于2打印"配额符合"

答案 6 :(得分:0)

使输入调用迭代并测试它们是否大于22.如果它们是创建一个布尔列表,则计算有多少值等于或大于配额。

quota = 22

#create empty list
b_ls = []

# iterate input and check if it's larger than quote
for i in range(5):
  b_ls .append(int(input('Enter a number: ')) >= quota)

# print if quota is meta
if b_ls .count(True) >= 2: print('Quota met')

答案 7 :(得分:0)

我宁愿早点将输入收集到列表中:

numbers = [int(input("Enter a number: ")) for i in range(5)]

可读性可以更简化,重复(a,b,c,d,e)意味着任何未来的代码更新都意味着需要在多个地方进行更改。

if numbers.count(quota) >= 2: print("Quota met")