https://img-mid.csdnimg.cn/release/static/image/mid/ask/183876681966115.jpg
def getC(l):
return len([i for i in l if i > (sum(l) / len(l))])
l = list(map(int, input().split()[:-1]))
print(getC(l))
--result
70 80 50 -1
2
a = input().split(' ') # 这里的a是list形式
score = 0
number = 0
if a[0] != '-1': # 如果输入的值是-1,那么直接去最后面的else输出0
for i in a:
i = int(i) # 这里把i从str变成int格式
score += i # score会把之前的数全部加起来
number += 1 # number统计输入数字个数
average_score = (score + 1) / (number - 1)
greater = 0
for j in a:
j = int(j)
if j > average_score:
greater += 1
print(greater) # 同理,可print
else: # 为什么要把else放在后面和第一个if并列?
# 不把else放在后面,前面统计number=0,而0作除数时会报错
print('0')
如有帮助,还请采纳!谢谢!
scores = list(map(int, input().split()[:-1]))
avg = sum(scores)/len(scores)
count = 0
for i in scores:
if i>avg:
count += 1
print(count)
函数版本:
def getnumber():
e=input().split()
a=list(map(int,e))
b=len(a)
a.pop()
c=0
for i in range(b-1):
c+=a[i]
avg=c / b
d=0
for i in range(b-1):
if a[i] > avg:
d+=1
print(d)
# 函数调用
getnumber();
无函数版本:
e=input().split()
a=list(map(int,e))
b=len(a)
a.pop()
c=0
for i in range(b-1):
c+=a[i]
avg=c / b
d=0
for i in range(b-1):
if a[i] > avg:
d+=1
print(d)
a = list(map(int, input().split()))
# 创建一个列表,使用 split() 函数进行分割
# map() 函数根据提供的函数对指定序列做映射,就是转化为int型
可以根据Python自带的函数处理,很简单。直接上代码。
def getnumber():
e=input().split()
d=list(map(int,e))
b=len(a)
d.pop()
c=0
for i in range(b-1):
c+=a[i]
avg=c / b
d=0
for i in range(b-1):
if a[i] > avg:
g+=1
print(g)
# 通过调用getnumber函数直接处理
getnumber();
def get_count(data):
# 求平均值sum求和,len求长度
avg = float(sum(data)) / len(data)
count = 0
# 统计所有超过平均数的分数个数,遍历
for i in data:
if i > avg:
count += 1
return count
if __name__ == '__main__':
# 获取输入数据,按空格分隔,剔除-1那条数据
data = input().split()[:-1]
# 将所有的字符串转换为数字
data = [int(i) for i in data]
# 调用函数打印结果
print(get_count(data))
函数实现~~
def cal_count(score_list):
sum = 0
count = 0
for i in score_list:
sum += float(i)
avg = sum / len(score_list)
for i in score_list:
if float(i) > avg:
count += 1
return count
if __name__ == "__main__":
score_list = [int(score) for score in input().strip().split()[:-1]]
count = cal_count(score_list)
print(count)
一个循环计算平均分,接着一个循环判定各个学生分数是否超过平均分,超过时,输出数加一,然后输出,结束。
## python3
if __name__ == '__main__':
### 70 50 80 -1
a = input('请输入学生分数:')
print(a)
scores = list(filter(lambda x: x != -1, list(map(int, a.split(" ")))))
print(scores)
count = len(list(filter(lambda x: x > sum(scores) / len(scores), scores)))
print(count)