本帖最后由 铁棍阿童木 于 2017-10-16 16:03 编辑
仔细看了一下你的问题,如果没有理解错误,并且不去评价数据结构,我尝试解释一下:
1、当print("真遗憾",+name)语句位于while循环体最后面时,一旦进入循环,都会在temp = int( temp)语句执行以后被执行,也就是说:在while循环内部,第二次输入temp的值以后,才会print真遗憾。之后便是再一次回到while循环的条件判断部分,看输入的值是否还是 != 5 并且 cishu <=3:两个条件同时成立才会进入while循环,只要有一个条件不成立,就会终止循环,执行最后的if 语句和print("游戏结束")语句。
2、当你调整位置以后,将print“真遗憾”语句放在temp = input("猜错了请重新输入吧:")语句前面的话就产生了如下变化:
她会先打印“真遗憾”,再接收input输入,然后进行while循环的条件判断,如果这个时候输入的是5,那么就不会进入循环体,而是直接执行if == 5的后续指令。所以才有了你发图的内容变化。
最后,稍微纠正一下,为了让数据结构更加清晰,这个程序的逻辑判断应该是:
1、等待输入名字
2、等待输入数字
3、计数器归零
4、输入的数字转为整型
5、进行if 判断
如果 等于 5 那么直接print"好厉害",游戏结束。
6、否则
while temp != 5 or 计数器<=3
if > 5
显示大了大了 计数器+1 然后等待用户输入新的数字 continue
else
显示小了小了 计数器+1 然后等待用户输入新的数字 continue