|  | 
 
 发表于 2022-3-4 07:29:57
|
显示全部楼层
   本楼为最佳答案 
| 本帖最后由 isdkz 于 2022-3-4 07:43 编辑 
 因为 e 不是十进制整数,你用 int() 转化成整数就会出错,
 
 e 是一个十六进制数,你用 int(temp, 16) 是可以转化成十进制整数的,
 
 但是这样一来所有的输入都转成了 16 进制数,后面你就得用 16 进制数来判断了,
 
 所以最好的做法是用字符串的 isdigit 方法判断字符串是否是十进制数,
 
 如果是的话再用 int(temp) 转化成整数,然后对整数进行比较
 
 故对你的代码修改如下:
 
 复制代码counts = 5
while counts > 0:
    temp = input("请输入你的分数: ")
    if temp.isdigit():         # 用字符串的 isdigit 方法判断字符串是不是十进制整数
        guess = int(temp)
        if guess < 60:        # 分数评级的地方要跟转化成整数的地方缩进同一级,因为转化成整数才能跟整数比较
            print("D")
        if 60 <= guess < 80:
            print("C")
        if 80 <= guess < 90:
            print("B")
        if 90 <= guess < 100:
            print("A")
        if guess == 100:
            print("S")
    
    if temp == "e":                  # 这里得换成 temp,因为 guess 是转化成整数才定义的
        counts = counts - 5
       
      
 | 
 |