输入一个整数,当输入不在[0,100]区间时输出提示“Data error!”;当输入满足要求的前提下,用多分支结构实现百分制转五分制。实现规则是根据分数所在区间[0,60)、[60,70)、[70,80)、[80,90)、[90,100],分别输出字符“E”、“D”、“C”、“B”、“A”。

    1. # 1.百分转五分多分支方法
    2. score = int(input())
    3. if score > 100 or score < 0:
    4. print('请输入0至100之间的整数!')
    5. elif score >= 90: # 区间为90=<score<=100
    6. print('A')
    7. elif score >= 80: # 区间为80=<score<90
    8. print('B')
    9. elif score >= 70: # 区间为70=<score<80
    10. print('C')
    11. elif score >= 60: # 区间为60=<score<70
    12. print('D')
    13. else: # 区间为0=<score<60
    14. print('E')
    1. # 2.百分制转五分制二分支方法
    2. score = int(input())
    3. if score > 100 or score < 0:
    4. print('请输入0至100之间的整数!')
    5. else: # 此分支下0 =< score <= 100
    6. if score >= 90: # 此分支下90 =< score <= 100
    7. print('A')
    8. else: # 此分支 0 =< score < 90
    9. if score >= 80: # 此分支下80 =< score < 90
    10. print('B')
    11. else: # 此分支 0 =< score < 80
    12. if score >= 70: # 此分支下70 =< score < 80
    13. print('C')
    14. else: # 此分支 0 =< score < 70
    15. if score >= 60: # 此分支下60 =< score < 70
    16. print('D')
    17. else: # 此分支 0 =< score < 60
    18. print('E')
    1. # 3.单分支程序
    2. score = int(input())
    3. # int()函数将输入的整数字符串转换成整数
    4. if 90 <= score <= 100: # 连续比较运算,等价于score >= 90 and score <= 100
    5. print('A')
    6. if 80 <= score < 90:
    7. print('B')
    8. if 70 <= score < 80:
    9. print('C')
    10. if 60 <= score < 70:
    11. print('D')
    12. if 0 <= score < 60:
    13. print('E')
    14. if score < 0 or score > 100:
    15. print('请输入0至100之间的整数!')
    1. # 4.用字符串索引的方法对成绩转换程序进行优化
    2. score = int(input()) # 此处要求输入为非负整数
    3. degree = 'EEEEEEDCBAA' # 字符序号0,1,2,3,4,5,6,7,8,9,10
    4. if score > 100 or score < 0: # 排除不合法数据
    5. print(' Data error!')
    6. else:
    7. i = score // 10 # 索引号必须是整数,此处用整除符号“//”实现
    8. print(degree[i]) # degree[i]是索引操作,返回degree中序号为i的字符
    1. # 方法三
    2. score = float(input()) # 输入为非负数
    3. degree = 'EEEEEEDCBAA' # 字符序号0,1,2,3,4,5,6,7,8,9,10
    4. if score > 100 or score < 0: # 排除不合法数据
    5. print(' Data error!')
    6. else:
    7. i = int(score // 10) # 用int()实现取整使索引号为整数
    8. print(degree[i]) # degree[i]是索引返回degree中序号i的字符
    1. # 方法一,用字符串索引的方法实现成绩转换程序
    2. def hundred_to_five_grade(score):
    3. degree = 'EEEEEEDCBAA' # 字符序号0,1,2,3,4,5,6,7,8,9,10
    4. if score > 100 or score < 0: # 排除不合法数据
    5. return ' Data error!'
    6. else:
    7. i = int(score // 10) # 用int()实现取整使索引号为整数
    8. return degree[i] # degree[i]是索引返回degree中序号i的字符
    9. if __name__ == '__main__':
    10. score_hundred = float(input()) # 输入为非负数
    11. print(hundred_to_five_grade(score_hundred))
    1. # 5.用条件表达式进行优化
    2. score = int(input())
    3. degree = 'EEEEEEDCBAA'
    4. print('Data error!') if (score > 100 or score < 0) else print(degree[score // 10])
    1. # 方法二,用条件表达式实现
    2. def hundred_to_five_grade(score):
    3. degree = 'EEEEEEDCBAA'
    4. print('Data error!') if (score > 100 or score < 0) else print(degree[int(score // 10)])
    5. if __name__ == '__main__':
    6. score_hundred = float(input()) # 输入为非负数
    7. hundred_to_five_grade(score_hundred)

    描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
    编写一个学生成绩转换程序,用户输入百分制的学生成绩:
    成绩大于或等于90且小于或等于100的输出为“A”
    成绩大于或等于80且小于90的输出为“B”
    成绩大于或等于70且小于80的输出为“C”
    成绩大于或等于60且小于70的输出为“D”
    成绩小于60的输出为“E”
    输入数据不合法时输出“data error!”
    用户可反复输入成绩进行转换,直接输入回车时结束程序‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
    输入格式‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
    每次输入一个浮点数,代表百分制成绩;
    直接输入回车时结束程序‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
    输出格式‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
    根据每一次的输入值分别输出A、B、C、D、E中的一个字母或”data error!”。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
    示例‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
    输入:

    1. 88
    2. 99
    3. 56
    4. 156

    输出:

    1. B
    2. A
    3. E
    4. data error!

    常规方法

    1. while True:
    2. score_str = input()
    3. if not score_str: # 直接回车时not score_str 为True
    4. break
    5. score = float(score_str)
    6. if score > 100 or score < 0:
    7. print('data error!')
    8. elif score >= 90:
    9. print('A')
    10. elif score >= 80:
    11. print('B')
    12. elif score >= 70:
    13. print('C')
    14. elif score >= 60:
    15. print('D')
    16. else:
    17. print('E')
    1. while True:
    2. score_str = input()
    3. if not score_str: # 直接回车时not score_str 为True
    4. break
    5. # 此语句功能可以用以下语句实现
    6. while score_str := input(): # 赋值运算,实现循环输入,输入为空时结束循环,非空时进入循环
    1. while score_str := input():
    2. score = float(score_str)
    3. if score > 100 or score < 0:
    4. print('data error!')
    5. elif score >= 90:
    6. print('A')
    7. elif score >= 80:
    8. print('B')
    9. elif score >= 70:
    10. print('C')
    11. elif score >= 60:
    12. print('D')
    13. else:
    14. print('E')

    运用字符串、赋值运算符、条件表达式实现

    1. while score_str := input():
    2. score = float(score_str)
    3. degree = 'EEEEEEDCBAA'
    4. print('data error!') if (score > 100 or score < 0) else print(degree[int(score // 10)])