1.1 需求
01:成绩一共分为5个等级,分别是ABCDE;相应的等级如下
A 90~100
B 80~89
C 60~79
D 40~59
E 0~39
02:当用户输入没有输入任何内容时(空格、回车),继续让用户输入,不给相应提示;
03:用户输入的内容只可以是0~100内的整数或小数,若不是给出提示,且让用户重新输入;
04:当用户输入q/Q时可以退出程序。
1.2 代码实现一
1.2.1 代码
"""
需求
01:成绩一共分为5个等级,分别是ABCDE;相应的等级如下
A 90~100
B 80~89
C 60~79
D 40~59
E 0~39
02:当用户输入没有输入任何内容时(空格、回车),继续让用户输入,不给相应提示;
03:用户输入的内容只可以是0~100内的整数或小数,若不是给出提示,且让用户重新输入;
04:当用户输入q/Q时可以退出程序。
"""
while True:
user_in = input("请输入你的成绩,按q/Q可退出程序:")
if user_in.upper() == "Q" :
print("# 感谢使用,已退出程序。")
break
elif user_in.isspace() or len(user_in) == 0 :
continue
user_in_r = user_in.strip().replace(" ",".")
if user_in_r.count(".") > 1 :
print("# 请输入[0~100]的整数或小数")
continue
elif user_in_r.count(".") == 0 :
if user_in_r.isdigit() :
i_user_in = int(user_in_r)
if i_user_in > 100:
print("# 成绩超过100,请重新输入。")
elif i_user_in >= 90:
print("** 成绩等级为A")
elif i_user_in >= 80:
print("** 成绩等级为B")
elif i_user_in >= 60:
print("** 成绩等级为C")
elif i_user_in >= 40:
print("** 成绩等级为D")
elif i_user_in >= 0:
print("** 成绩等级为E")
else:
print("# 请输入[0~100]的整数或小数")
elif user_in_r.count(".") == 1 :
user_in_l = user_in_r.split(".")
total = len(user_in_l)
for n in user_in_l :
if n.isdigit() :
total = total - 1
if total == 0 :
f_user_in = float(user_in_r)
if f_user_in > 100:
print("# 成绩超过100,请重新输入。")
elif f_user_in >= 90:
print("** 成绩等级为A")
elif f_user_in >= 80:
print("** 成绩等级为B")
elif f_user_in >= 60:
print("** 成绩等级为C")
elif f_user_in >= 40:
print("** 成绩等级为D")
elif f_user_in >= 0:
print("** 成绩等级为E")
else:
print("# 请输入[0~100]的整数或小数")
continue
1.2.2 实现效果
|