文章目录
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 代码
# -*- coding: utf-8 -*-
"""
需求
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 : # 判断total的值,不在for循环里面哈
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 实现效果