回答一下 在Python 猜数游戏中 while 循环里 guess=int(input(""))和 if int(guess) 使用有什么区别呢 这一问题中 Python_Leaner的问题

在这里首先先感谢 Python_Leaner 给指出的问题 我这边改正之后程序运行没问题了 ,然后再来回复一下他同时抛出的问题
先把他的问题摆出来,我就直接截图了:
回答一下 在Python 猜数游戏中 while 循环里 guess=int(input(""))和 if int(guess) 使用有什么区别呢 这一问题中 Python_Leaner的问题
首先我先吧代码重新打了一遍 但是不知道为什么 他的代码在我这边会报错 (会不会是以内我用的是IDLE的原因)所以我就把代码简单改了一下 :

from random import randint 
secret = randint(1, 99)
guess = 0
tries = 0
print ("你有8次机会猜1-99之间的一个数")
while int(guess) != secret and tries < 8:
    guess = input("what's yer guess? ")
    if int(guess) < secret:
        print ("太小")
    elif int(guess) > secret:
        print ("太大!")
    tries = tries + 1
    print ("第 %s 次机会." % str(tries) )
if int(guess) == secret:
    print ("答对了")
else:
    print ("没有机会了!")
print ("正确答案",secret)

运行结果如下:
回答一下 在Python 猜数游戏中 while 循环里 guess=int(input(""))和 if int(guess) 使用有什么区别呢 这一问题中 Python_Leaner的问题
然后我们可以看到我俩的代码有点不同就是我第三个 if 没有缩进的。我先来说一下if缩进与不缩进的区别,说完if也就会懂else了
1、如果if缩进了就相当于这个if是在while循环内了,那这样在运行程序时会出现一个问题,就是当你猜对了的时候,运行完if他会在直接运行else 也就是会将else的 没有机会了也给输出出来,结果如下:
回答一下 在Python 猜数游戏中 while 循环里 guess=int(input(""))和 if int(guess) 使用有什么区别呢 这一问题中 Python_Leaner的问题
2、如果if没有缩进 相当于在while的循环外 当你猜对的时候就会直接跳出循环 从而运行if 而且也不会在运行else 而是输出最后结果:正确答案 。这是因为这个没有缩进的if在这段代码中是和while属于同一个级别,当他会发现你输入的数和随机的数相等时会认为这个程序结束而直接结束运行从而输出:答对了 ;在输出:最后一行的print的:正确答案,也就是会跳过else,因为if 和else在这里的等级是一样的都没有缩进且是互斥的,输出了if就不会输出else。
3、 tries = tries + 1
print (“第 %s 次机会.” % str(tries) )
这短代码放在if上面和下面都是一样的,没有区别。
4、这回能懂了么为什么你的代码里的else感觉毫无意义,就是因为你的程序运行完if 猜对了之后并没有直接跳出循环去走print的:正确答案,而是直接运行了else,(因为你的if是缩进的);就因为这个else是和while是同一个等级。且if语句执行有个特点,它是从上往下判断,如果在某个判断上是True(真)时,把该判断对应的语句执行后,就忽略掉你程序中的else了。

我也是小白 第一次提问,第一次写博客解答问题有描述不懂得见谅 或者
再有啥不理解的可以加我扣扣:1691598339