为什么guess = int(guess)放在while就可以输入字符串结束
guess = input("请输入你的分数:")guess = int(guess)
while guess != "e":
guess = int(guess)
if guess == 100:
print("S")
if 90 <= guess < 100:
print("A")
if 80 <= guess < 90:
print("B")
if 60 <= guess < 80:
print("c")
if guess < 60:
print("D")
guess = input("请重新输入吧:")
我的理解是,程序是从上往下走的,最上面的两行代码随便输入一个数字,然后就到了下面的if进行判断,判断出了第一个数,也就进入到了循环里面,
下一次是从最底下的guess = input(" 请重新输入吧:")这里开始,进行判断,因为没有用int整型所以input,可以输入字符串,但是我将guess = input("请重新输入吧:")
中加入int进行整型就只能输入数字,输入了字符串"e"就会报错。
问题:
为什么guess == int(guess)放在while下面,就可以输入字符串来结束程序,和放在while循环下面后,最顶上的guess = input("请输入你的分数:")不用整型,and,最底下的guess = input("请重新输入吧:")也不用进行整型。 因为后来有个guess = int(guess)啊 qiuyouzhi 发表于 2020-6-11 19:52
因为后来有个guess = int(guess)啊
哪个,大神可以说详细点嘛。 zhp466 发表于 2020-6-11 19:54
哪个,大神可以说详细点嘛。
我说的这一步,其实就是把guess转换成int的步骤。 本帖最后由 Twilight6 于 2020-6-11 20:01 编辑
然后就到了下面的if进行判断,判断出了第一个数,也就进入到了循环里面
你这句话就错咯!是判断循环条件成立 进入循环才判断 if,而不是先判断 if 哦
但是我将guess = input("请重新输入吧:")
中加入int进行整型就只能输入数字,输入了字符串"e"就会报错。
因为你如果 guess 在while 最后一个执行,那么 这边的 guess 你输入完 首先判断的是 循环条件 guess != 'e' 是否等于 e ,而不会运行到你循环里面的 int
int 是转为整型,而字母不能转为整型, 所以才会导致你报错,但是这里判断的是先判断 while 而不是先转为整型 所以就不会报错 反之你直接 int 就会报错
Twilight6 发表于 2020-6-11 19:59
你这句话就错咯!是判断循环条件成立 进入循环才判断 if,而不是先判断 if 哦
嗷,那也就是他程序运行到最底下的guess = input(“请重新输入吧”)这里后,就先判断while,我输入的这个数
是不是等于e,然后在进行整型数字,在接着下面的if判断 如果是e的话就直接结束程序,不是的话就进行整型然后if判断,是这样嘛? zhp466 发表于 2020-6-11 20:26
如果是e的话就直接结束程序,不是的话就进行整型然后if判断,是这样嘛?
对 , 所以先被判断掉了,如果你直接 int ,那么就会报错因为 e 不能转为整型 Twilight6 发表于 2020-6-11 20:27
对 , 所以先被判断掉了,如果你直接 int ,那么就会报错因为 e 不能转为整型
嗷嗷,谢谢大佬指教。{:10_281:} zhp466 发表于 2020-6-11 20:29
嗷嗷,谢谢大佬指教。
{:10_297:}客气了~
页:
[1]