Python编写程序 输入提示“请输入成绩(按回车键退出):”,将输入的百分制成绩转换为相应的等级?

Python022

Python编写程序 输入提示“请输入成绩(按回车键退出):”,将输入的百分制成绩转换为相应的等级?,第1张

编码思路:

申明两个变量: 成绩cj为 浮点数float 且  取值范围为 [0,100] 闭区间内pf为字符类型,接收最终分数评级的字母A,B,C,D,E中的一个。

引导用户输入100分制的分数,并用cj接收。

判断分数是否为一个有效的分数。在不在 [0,100] 区间内,若不在则提示“成绩无效”。

在成绩有效的情况下,利用if...esle if...else...逐级判断,分数大于90的评为A,不大于90(在前一判断后else即取反)的但是又大于80的评为B,以此类推,分别判断出分数评级C,D,E。将字符赋值给字符变量pf

最后输出分数评级。

代码示例:

//代码语言:C++#include <iostream>int main(int argc, const char * argv[]) {    float cj //成绩100分制    char pf //评分A,B,C,D,E    std::cout<<"输入您的分数: "    std::cin>>cj //输入的分数赋值给cj    if(cj>100 || cj<0){  //分数小于0或大于100时成绩无效        std::cout<<"您的成绩无效!\n"    }else{ //成绩有效时 即:[0,100]        if(cj>90){  //大于90即:(90,100]            pf = 'A'        }else if(cj>=80){ //即:[80,90]            pf = 'B'        }else if(cj>=70){ //即:[70,80)            pf = 'C'        }else if(cj>=60){ //即:[60,70)            pf = 'D'        }else{ //否则(不大于60) 即:[0,60)            pf = 'E'        }        std::cout<<"您的分数评级为:"<<pf<<"\n" //输出结果    }    return 0}   

# -*- coding: cp936 -*-class StuInfo:def __init__(self):self.Stu=[{"Sno":"1","Sname":"姓名","ChineseScore":64,"MathsScore":34,"EnglishScore":94,"ComputerScore":83}, {"Sno":"2","Sname":"姓名","ChineseScore":44,"MathsScore":24,"EnglishScore":44,"ComputerScore":71}, {"Sno":"3","Sname":"姓名","ChineseScore":74,"MathsScore":35,"EnglishScore":74,"ComputerScore":93}, {"Sno":"4","Sname":"姓名","ChineseScore":94,"MathsScore":54,"EnglishScore":24,"ComputerScore":73}]self.attribute={"Sno":"学号","Sname":"姓名","ChineseScore":"语文成绩","MathsScore":"数学成绩","EnglishScore":"英语成绩","ComputerScore":"计算机成绩"}def _add(self):'''添加'''singleInfo={}for i in self.attribute:if "Score" in i:singleInfo[i]=int(raw_input(self.attribute[i]+"\n"))else:singleInfo[i]=raw_input(self.attribute[i]+"\n").strip()self.Stu.append(singleInfo)print "添加成功OK"for i in singleInfo:print i,"=",singleInfo[i]def _del(self):"""删除学号为Sno的记录"""Sno=raw_input("学号:\n")self.Stu.remove(self.__getInfo(Sno))print "删除成功OK"def _update(self):"""更新数据"""Sno=raw_input("学号\n").strip()prefix="修改"updateOperate={"1":"ChineseScore", "2":"MathsScore", "3":"EnglishScore", "4":"ComputerScore"}for i in updateOperate:print i,"-->",prefix+self.attribute[updateOperate[i]]getOperateNum=raw_input("选择操作:\n")if getOperateNum:getNewValue=int(raw_input("输入新的值:\n"))record=self.__getInfo(Sno)record[updateOperate[getOperateNum]]=getNewValueprint "修改"+record["Sname"]+"的"+str(updateOperate[getOperateNum])+"成绩=",getNewValue,"\n成功OK"def _getInfo(self):"""查询数据"""while True:print "1->学号查询 2->条件查询 3->退出"getNum=raw_input("选择:\n")if getNum=="1":Sno=raw_input("学号:\n")print filter(lambda record:record["Sno"]==Sno,self.Stu)[0]elif getNum=="2":print "ChineseScore 语文成绩;","MathsScore 数学成绩;","EnglishScore 英语成绩;","ComputerScore 计算机成绩;"print "等于 ==,小于 <, 大于 >,大于等于 >=,小于等于<= ,不等于!="print "按如下格式输入查询条件 eg: ChineseScore>=60 "expr=raw_input("条件:\n")Infos=self.__getInfo(expr=expr)if Infos:print "共%d记录"%len(Infos)for i in Infos:print ielse:print "记录为空"elif getNum=="3":breakelse:passdef __getInfo(self,Sno=None,expr=""):"""查询数据 根据学号 _getInfo("111111") 根据分数 _getInfo("EnglishSorce>80")"""if Sno:return filter(lambda record:record["Sno"]==Sno,self.Stu)[0]for operate in [">=",">","<=","<","==","!="]:if operate in expr:gradeName,value=expr.split(operate)return filter(lambda record: eval( repr(record[gradeName.strip()])+operate+value.strip()) ,self.Stu)return {}def _showAll(self):"""显示所有记录"""for i in self.Stu:print i@staticmethoddef test():"""测试"""_StuInfo=StuInfo()while True:print "1->录入数据 2->修改数据 3->删除数据 4->查询数据 5->查看数据 6->退出"t=raw_input("选择:\n")if t=="1":print "录入数据"_StuInfo._add()elif t=="2":print "修改数据"_StuInfo._update()elif t=="3":print "删除数据"_StuInfo._del()elif t=="4":print "查询数据"_StuInfo._getInfo()elif t=="5":print "显示所有记录"_StuInfo._showAll()elif t=="6":breakelse:passif __name__=="__main__":StuInfo.test()

1、def main():

  score = float(input('请输入成绩: '))

  if score >= 90:

      grade = 'A'

  elif score >= 80:

      grade = 'B'

  elif score >= 70:

      grade = 'C'

  elif score >= 60:

      grade = 'D'

  else:

      grade = 'E'

  print('对应的等级是:', grade)

if __name__ == '__main__':

  main()

2、也可以将五分制构造出一个字符串'EEEEEEDCBAA',用以下方法实现这个功能:

score = int(input())

degree = 'EEEEEEDCBAA'

if (score >100 or score <0):

  print('Data error!')

else:

  print(degree[score//10])

扩展资料:

1、关于整数的格式化输出

num01,num02=200,300

print("八进制输出:0o%o,0o%o"%(num01,num02))。

print("十六进制输出:0x%x,0x%x"%(num01,num02))。

print("十进制输出:%d,%d"%(num01,num02))。

print("200的二进制输出:",bin(num01),"300的二进制输出为:",bin(num02))。

2、# 浮点数输出

%f 保留小数点后面六位有效数字,%.3f 保留三位小数。

%e 保留小数点后面六位有效数字,指数形式输出。%.3e 保留3位小数位,使用科学计数法。

%g 保留六位有效数字的前提下,使用小数方式,否则用科学计数法。%3g保留3位有效数字,使用小数或科学计数法。