本帖最后由 lightninng 于 2021-11-22 17:07 编辑
抱歉,是我没看清楚
建议,自己用人工的方式跑一遍程序,举个例子,下面这段程序
- temp = input("please input a int")
- while not temp.isdigit():
- temp = input("Please input a int")
- num = int(temp)
- while num :
- x = y = num
- while (x - 1) > 0:
- print(" ", end = "")
- x = x - 1
- while y > 0 :
- print("*", end = "")
- y = y - 1
- print()
- num = num - 1
复制代码
temp = input("please input a int")
控制台第一行出现【please input a int】,然后输入5,此时内存中一个变量temp=5
while not temp.isdigit():
temp = input("Please input a int")
因为temp=5,所以temp.isdigit()为真,直接跳出while循环
num=int(temp) ,内存中两个变量,num=temp=5
while num: ,由于num=5,所以进入循环
x = y = num,内存中四个变量x=y=num=temp=5
while (x - 1) > 0,x=5,所以(x-1)>0为真进入循环
print(" ", end = "") ,控制台第二行出现一个空格,并且下次输出不换行
x=x-1,x等于自己减1,内存中有四个变量,x=4,y=num=temp=5
......
请以这样的方式自己跑一遍两个程序,那么位置不同带来的变化就会了然于胸。
PS:更简单的方式是使用集成ide(比如pyharm,vs等)中的程序单步执行功能,并观察每一步中变量的值,单步执行和显示变量值都是ide自带的程序调试功能,具体看下面这篇帖子
https://fishc.com.cn/thread-173240-1-1.html