python编写:要求:输入一批学生的成绩(数字字符串),先转换为整数类型,再调用函数avg()计算平均分并返回,然后分别输出低于、高于平均分的学生成绩,成绩之间用一个空格分开,输出的顺序和输入的相同。 输入 一行数据,用空格分隔,每个数据都是一个整数(字符串) 输出 分为两行,第一行输出低于平均分的学生成绩,第二行输出高于平均分的学生成绩;成绩之间均用一个空格分开,且输出顺序与输入顺序相同。 程序结构如下: def avg(data):#函数定义 #功能:计算平均分并返回;参数data:int型list数据,返回值为float型值 def main():#函数定义 #功能:输入一批数据并转换为整数,调用avg()计算平均分,再分别输出低于、高于平均分的学生成绩 if __name__=='__main__': main()
时间: 2023-05-14 18:05:19 浏览: 133
以下是Python代码实现:
def avg(data):
# 将字符串转换为整数类型
data = list(map(int, data))
# 计算平均分
average = sum(data) / len(data)
return average
# 输入学生成绩
scores = input().split()
# 计算平均分
average_score = avg(scores)
# 输出低于平均分的学生成绩
for score in scores:
if int(score) < average_score:
print(score, end=' ')
print()
# 输出高于平均分的学生成绩
for score in scores:
if int(score) > average_score:
print(score, end=' ')
print()
相关问题
用python实现:输入一批学生的成绩(数字字符串),先转换为整数类型,再调用函数avg()计算平均分并返回,然后分别输出低于、高于平均分的学生成绩,成绩之间用一个空格分开,输出的顺序和输入的相同。
可以用以下代码来实现:
```python
def avg(scores):
return sum(scores) / len(scores)
# 输入学生成绩
scores_str = input("请输入一批学生的成绩,以空格分隔:")
scores_list = scores_str.split()
# 转换为整型列表
scores_int = [int(score) for score in scores_list]
# 计算平均分
average_score = avg(scores_int)
# 输出低于平均分的学生成绩
below_average = [score for score in scores_int if score < average_score]
print("低于平均分的学生成绩:", end="")
for score in below_average:
print(score, end=" ")
# 输出高于平均分的学生成绩
above_average = [score for score in scores_int if score > average_score]
print("\n高于平均分的学生成绩:", end="")
for score in above_average:
print(score, end=" ")
```
输入格式示例:
```
请输入一批学生的成绩,以空格分隔:85 92 76 88 90 79
```
输出结果示例:
```
低于平均分的学生成绩:76 79
高于平均分的学生成绩:85 92 88 90
```
卡塔尔;848016;2472000 罗马尼亚;21904551;25377000 西班牙;46754784;50991000 泰国;66720153;83057000 美国;313232044;286000000 委内瑞拉,27635743,28124000 赞比亚;13881336;4407000 记住CSV格式,用Python编写以下函数: 1.数字_居民 (文件名)接收字符串(文件名) 并返回包含总人口(所有国家的总 和)的数字。 A。GET_residents(line)接收字符串(如前所述, 文件中的一行)并返回 population字段(作为数字)。 2.号码_手机(文件名)接收一个字符串(文件名) 并返回一个带有手机总数(所 有国家的总和)的号码。 A。GET_Mobiles(line)接收一个字符串(如前所述, 文件中的一行)并返 回Mobiles字段的数量(作为一个数字)。 3.平均_移动设备(文件名)接收一个字符串 (文件名),并返回一个数字,其中包 含每个居民的平均移动设备数量 (移动设备数量除以居民数量)。
以下是您需要的函数实现:
```
# 获取population字段
def GET_residents(line):
# 从行中获取population字段
population_str = line.split(";")[1]
# 将字符串转换为整数
population = int(population_str)
return population
# 计算总人口
def 数字_居民(file_name):
# 初始化总人口
total_residents = 0
# 打开文件并遍历每一行
with open(file_name, "r") as f:
for line in f:
# 获取每个国家的人口
residents = GET_residents(line)
# 将每个国家的人口加入总人口
total_residents += residents
# 返回总人口
return total_residents
# 获取Mobiles字段
def GET_Mobiles(line):
# 从行中获取Mobiles字段
mobiles_str = line.split(";")[2]
# 将字符串转换为整数
mobiles = int(mobiles_str)
return mobiles
# 计算总移动设备数量
def 号码_手机(file_name):
# 初始化总移动设备数量
total_mobiles = 0
# 打开文件并遍历每一行
with open(file_name, "r") as f:
for line in f:
# 获取每个国家的移动设备数量
mobiles = GET_Mobiles(line)
# 将每个国家的移动设备数量加入总移动设备数量
total_mobiles += mobiles
# 返回总移动设备数量
return total_mobiles
# 计算平均移动设备数量
def 平均_移动设备(file_name):
# 获取总移动设备数量和总人口
total_mobiles = 号码_手机(file_name)
total_residents = 数字_居民(file_name)
# 计算平均移动设备数量
avg_mobiles = total_mobiles / total_residents
# 返回平均移动设备数量
return avg_mobiles
```
您可以调用上述函数并传递文件名作为参数,以获取总人口、总移动设备数量和平均移动设备数量。请注意,文件必须按照特定的格式(例如,国家名称,人口数量,移动设备数量)进行编写,并使用分号作为分隔符。
阅读全文