python程序修改,关于学生成绩

img

课堂作业,不知道怎么写,说是要修改原来的程序,不能改变语序结构,显示的错误是str()>=int()

因为input()对象默认为字符串,字符串是不能与数值进行比较的。
所以需要类型转换

grade = int(input())
#..后续照旧

input接受的数据都会转换为字符串类型,不能和int类型直接比较,所以代码第一行改成:
grade = float(input("请输入学生成绩:"))

有帮助的话,请点采纳该答案~

grade变量应该是int或者float类型,才能和数字进行比较;还有就是if-elif的顺序要改,如果按照题目中给出的,只要输入大于60的都是合格,后面的elif就不会走了。


grade = int( input('请输入学成的成绩:') )
if grade >= 90:
    print("该学生成绩优秀。")
elif grade >=80:
    print("该学生成绩良好。")
elif grade >= 70:
    print("该学生成绩一般。")
elif grade >= 60:
    print("该学生成绩合格。")
else:
    print("该学生成绩不合格。")

加一句grade=int(grade),类型不符

  • 这篇文章讲的很详细,请看:(Python)将字符串数字(str)转化为整数(int),不使用内置的int函数
  • 除此之外, 这篇博客: python3学习课(二)-数据类型str,int,float,数据运用,数据转换中的 1.数据类型 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 字符串英文string,简写str。

    number=1+1          #这里没有带'引号'
    print(number)       #这里的number是整数型
    >2
    number='1+1'        #这里带了'引号'
    print(number)       #这里的number是字符串型
    >1+1
    
    #可以理解为带了引号的都是字符串类型,无论引号里面是字符,文字,还
    是数字,都是字符串类型
    

    在这里插入图片描述

    整数英文为integer,简写做int

    a=0
    b=-1
    c=1
    #这些都是整数,也没有带'引号',没什么好说的
    

    浮点数的英文名是float,与整数(int)和字符串(str)不同,浮点数没有
    简写

    a=0.5
    b=-1.3
    c=1.1
    #这些都是浮点数,也可以理解为带小数点的且没有带'引号'的都是float。
    —————————————————————————————————————————————————————————————
    number=0.55+0.3
    print(number)
    >0.8500000000000001
    
    #在Python计算浮点数时,会先把0.550.3转化成二进制数,转化的过程会
    有误差
    

    在这里插入图片描述