|
发表于 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
-
-
复制代码
|
|