用Python语言写出【输入形式】输入的第一行表示学生人数n;标准输入的第2至n+1行表示学生成绩。 【输出形式】输出的一行表示平均分(保留两位小数)。若输入的数据不合法(学生人数不是大于0的整数,或学生成绩小于0或大于100),输出“illegal input”。
时间: 2024-06-02 07:13:47 浏览: 59
n = input()
if not n.isdigit() or int(n) <= 0:
print("illegal input")
else:
count = 0
sum_score = 0
for i in range(int(n)-1):
score = input()
if not score.isdigit() or int(score) < 0 or int(score) > 100:
print("illegal input")
break
count += 1
sum_score += int(score)
else:
avg_score = sum_score / count
print("%.2f" % avg_score)
相关问题
用python帮我写出输入n个学生的成绩(n也由键盘输入),统计平均分及成绩不及格的人数。 输入格式: 1.第一行输入一个正整数,表示指定输入的人数n。 2.从第二行开始每行输入一个数,共n行,表示n个成绩。 输出格式: 有……个学生不及格。
n = int(input("请输入学生人数:"))
grades = []
count = 0
for i in range(n):
grade = int(input("请输入第{}个学生的成绩:".format(i+1)))
grades.append(grade)
if grade < 60:
count += 1
average = sum(grades)/n
print("平均分为:{:.2f}".format(average))
print("有{}个学生不及格。".format(count))
用python写出1+2+3.+20的代码要求第一行是1=1,第二行是1+2=3,最后一行是1+2+3+4+..+20=210 每行都要显示
这个题目有点奇怪,但我猜测你想要一个类似下面的输出:
```
1=1
1+2=3
1+2+3=6
1+2+3+4=10
...
1+2+3+...+20=210
```
如果是这样,可以使用循环来实现:
```python
n = 20
total = 0
for i in range(1, n+1):
total += i
equation = '+'.join(str(j) for j in range(1, i+1))
print(f"{equation}={total}")
```
输出结果:
```
1=1
1+2=3
1+2+3=6
1+2+3+4=10
1+2+3+4+5=15
1+2+3+4+5+6=21
1+2+3+4+5+6+7=28
1+2+3+4+5+6+7+8=36
1+2+3+4+5+6+7+8+9=45
1+2+3+4+5+6+7+8+9+10=55
1+2+3+4+5+6+7+8+9+10+11=66
1+2+3+4+5+6+7+8+9+10+11+12=78
1+2+3+4+5+6+7+8+9+10+11+12+13=91
1+2+3+4+5+6+7+8+9+10+11+12+13+14=105
1+2+3+4+5+6+7+8+9+10+11+12+13+14+15=120
1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16=136
1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17=153
1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18=171
1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19=190
1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20=210
```
阅读全文