python中怎么利用while true将百分制成绩转化成五等级,并且按负数或大于100退出循环?

如题所述

#!/usr/bin/python3

# -*- coding:utf-8 -*-

# @Time      :2021/4/02 08:35

def getlevel(fraction):

    if 90 <= fraction <= 100:

        return "A"

    elif 80 <= fraction < 90:

        return "B"

    elif 70 <= fraction < 80:

        return "C"

    elif 60 <= fraction < 70:

        return "D"

    else:

        return "E"



if __name__ == "__main__":

    try:

        myfraction = float(input("请输入你的分数:"))

        if myfraction < 0 or myfraction > 100:

            flag = False

        else:

            flag = True

            

        while flag:

            print("你的成绩是:{}".format(getlevel(myfraction)))

            myfraction = float(input("请输入你的分数:"))

            if myfraction < 0 or myfraction > 100:

                flag = False

            else:

                flag = True

        

    except ValueError:

        print("输入的内容不对")

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-04-02
#分数转换代码
import re
orgnScore = input()
pat = re.compile(r'^(0|100|[1-9]\d.?\d*)$')
try:
if pat.match(orgnScore):
score = eval(orgnScore)
if 0 <= score < 60:
print("输入成绩属于E级别。")
elif score < 70:
print("输入成绩属于D级别。")
print("祝贺你通过考试!")
elif score < 80:
print("输入成绩属于C级别。")
print("祝贺你通过考试!")
elif score < 90:
print("输入成绩属于B级别。")
print("祝贺你通过考试!")
else:
print("输入成绩属于A级别。")
print("祝贺你通过考试!")
else:
print("输入数据有误!")
except Exception as e:
print(e.message)
finally:
print("好好学习,天天向上!")
希望本次回答对你有所帮助谢谢
第2个回答  2021-04-02

代码如下,仅供参考:

执行结果: