a.代码跑不起来
b.以萌新的角度简化一下
c.谢谢大佬!
代码贴出来吧,可以抽离一下代码。
xmyw = int(input('小明语文成绩:'))
xmsx = int(input('小明数学成绩:'))
xmyy = int(input('小明英语成绩:'))
if 100>=xmyw>=0 and 100>=xmsx>=0 and 100>=xmyy>=0:
if xmyw >= 90:
print('小明语文成绩为:%d 评级为[A]'% xmyw)
elif 90>xmyw>=60:
print('小明语文成绩为:%d 评级为[B]'% xmyw)
else:
print('小明语文成绩为:%d 评级为[C]'% xmyw)
if xmsx >= 90:
print('小明数学成绩为:%d 评级为[A]'% xmsx)
elif 90>xmsx>=60:
print('小明数学成绩为:%d 评级为[B]'% xmsx)
else:
print('小明数学成绩为:%d 评级为[C]'% xmsx)
if xmyy >= 90:
print('小明英语成绩为:%d 评级为[A]'% xmyy)
elif 90>xmyy>=60:
print('小明英语成绩为:%d 评级为[B]'% xmyy)
else:
print('小明英语成绩为:%d 评级为[C]'% xmyy)
else:
print('结束')
可以简化成:
xmyw = int(input('小明语文成绩:'))
xmsx = int(input('小明数学成绩:'))
xmyy = int(input('小明英语成绩:'))
xm = [xmyw, xmsx, xmyy]
xk = ['语文', '数学', '英语']
if 100>=xmyw>=0 and 100>=xmsx>=0 and 100>=xmyy>=0:
for i in range(len(xm)):
if xm[i] >= 90:
print('小明%s成绩为:%d 评级为[A]'% (xk[i], xm[i]))
elif 90>xm[i]>=60:
print('小明%s成绩为:%d 评级为[B]'% (xk[i], xm[i]))
else:
print('小明%s成绩为:%d 评级为[C]'% (xk[i], xm[i]))
else:
print('结束')
代码重复部分太多,用以下代码较为简洁。
def degree(x):
if x>=90:
return 'A'
elif 60<=x<90:
return 'B'
elif x<60:
return 'C'
xmyw = int(input('小明语文成绩:'))
xmsx = int(input('小明数学成绩:'))
xmyy = int(input('小明英语成绩:'))
lst=[xmyw,xmsx,xmyy]
if all(x>=0 for x in lst) and all(x<=100 for x in lst):
print(f'小明语文成绩为:评级为[{degree(xmyw)}],{xmyw}')
print(f'小明数学成绩为:评级为[{degree(xmsx)}],{xmsx}')
print(f'小明英语成绩为:评级为[{degree(xmyy)}],{xmyy}')
else:
print('退出 ')
把第五行改一下试试:
if 0<=xmyw<=100 and 0<=xmsx<=100 and 0<=xmyy<=100:
void fun(int chengji, char* kemu)
{
if(chengji >100 || chengji <0)
{
printf("成绩输入错误!");
return;
}
char dengji;
if(chengji >=90)
dengji='A';
else if(chengji >=60)
dengji='B';
else
dengji='C';
printf("小明的%s成绩为%d /评级为[%c]",kemu,chengji,dengji);
}
调用:fun(95,"语文");