萌新求解006讲最后一题
标准答案score = input("请输入你的分数:")
while score != 'e':
score = int(score)
if score < 60:
print("D")
if 60 <= score < 80:
print("C")
if 80 <= score < 90:
print("B")
if 90 <= score < 100:
print("A")
if score == 100:
print("S")
score = input("请输入你的分数:")
我的思路是这样
counts = 5
while counts > 0:
temp = input("请输入你的分数: ")
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 guess == "e":
counts = counts - 5
为什么我的思路输入e后无法运行呢?求大佬解答 if guess == "e":
break 本帖最后由 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
这行的错:
score = int(score) isdkz 发表于 2022-3-4 07:29
因为 e 不是十进制整数,你用 int() 转化成整数就会出错,
e 是一个十六进制数,你用 int(temp, 16) 是 ...
好的,明白了十分感谢 wp231957 发表于 2022-3-4 06:57
if guess == "e":
break
感谢 python爱好者. 发表于 2022-3-4 08:43
这行的错:
感谢 粪海蝇魔 发表于 2022-3-4 17:00
感谢
不用谢
页:
[1]