zhp466 发表于 2020-6-11 19:50:49

为什么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("请重新输入吧:")也不用进行整型。

qiuyouzhi 发表于 2020-6-11 19:52:59

因为后来有个guess = int(guess)啊

zhp466 发表于 2020-6-11 19:54:31

qiuyouzhi 发表于 2020-6-11 19:52
因为后来有个guess = int(guess)啊

哪个,大神可以说详细点嘛。

qiuyouzhi 发表于 2020-6-11 19:56:31

zhp466 发表于 2020-6-11 19:54
哪个,大神可以说详细点嘛。

我说的这一步,其实就是把guess转换成int的步骤。

Twilight6 发表于 2020-6-11 19:59:26

本帖最后由 Twilight6 于 2020-6-11 20:01 编辑

然后就到了下面的if进行判断,判断出了第一个数,也就进入到了循环里面
你这句话就错咯!是判断循环条件成立 进入循环才判断 if,而不是先判断 if 哦

但是我将guess = input("请重新输入吧:")
中加入int进行整型就只能输入数字,输入了字符串"e"就会报错。
因为你如果 guess 在while 最后一个执行,那么 这边的 guess 你输入完 首先判断的是 循环条件 guess != 'e' 是否等于 e ,而不会运行到你循环里面的 int

int 是转为整型,而字母不能转为整型, 所以才会导致你报错,但是这里判断的是先判断 while 而不是先转为整型 所以就不会报错   反之你直接 int 就会报错


zhp466 发表于 2020-6-11 20:25:06

Twilight6 发表于 2020-6-11 19:59
你这句话就错咯!是判断循环条件成立 进入循环才判断 if,而不是先判断 if 哦




嗷,那也就是他程序运行到最底下的guess = input(“请重新输入吧”)这里后,就先判断while,我输入的这个数
是不是等于e,然后在进行整型数字,在接着下面的if判断

zhp466 发表于 2020-6-11 20:26:21

如果是e的话就直接结束程序,不是的话就进行整型然后if判断,是这样嘛?

Twilight6 发表于 2020-6-11 20:27:17

zhp466 发表于 2020-6-11 20:26
如果是e的话就直接结束程序,不是的话就进行整型然后if判断,是这样嘛?

对 , 所以先被判断掉了,如果你直接 int ,那么就会报错因为 e 不能转为整型

zhp466 发表于 2020-6-11 20:29:16

Twilight6 发表于 2020-6-11 20:27
对 , 所以先被判断掉了,如果你直接 int ,那么就会报错因为 e 不能转为整型

嗷嗷,谢谢大佬指教。{:10_281:}

Twilight6 发表于 2020-6-11 20:29:45

zhp466 发表于 2020-6-11 20:29
嗷嗷,谢谢大佬指教。

{:10_297:}客气了~
页: [1]
查看完整版本: 为什么guess = int(guess)放在while就可以输入字符串结束