C前 发表于 2020-2-19 00:32:55

游戏改进

temp = input("What's this:")
guess = int(temp)
while guess != 6:
    temp = input("No:")
    guess = int(temp)
    if guess == 6:
      print("You are right")
      print("But,no reward")
    else:
      if guess > 6:
            print("No,It's big.")
      else:
            print("No,It's small.")
print("Game over")
这代码里第一次输入数字不是6时,为啥不执行else里的内容?

风琰流水 发表于 2020-2-19 01:21:46

temp = input("What's this:")
guess = int(temp)
while guess != 6:
    if guess == 6:
      print("You are right")
      print("But,no reward")
    else:
      if guess > 6:
            print("No,It's big.")
      else:
            print("No,It's small.")
    temp = input ("Try a again:")
    guess =int(temp)
print("Game over")
这样就会先执行if..else.. 再执行input的指令

鱼子酱POI 发表于 2020-2-19 04:34:16

手机回帖不太方便,见谅。问题在于你发的代码第四,五两行。那两行原意是除第一次循环外,每次循环搜集用户输入的数字,然后进行判断。可是,pyshon的代码执行顺序是从上到下,从左到右,从外到内的。
当你第一次运行程序,输入数据,开启了循环条件,就是从循环外进入循环内部。之后你刚进入循环内部的第一行,执行的结果是再一次收集你的输入数字,然后转换数据类型再条件判断,输出结果。直到你猜对数字跳出循环内部,执行最后一句print语句。如果你要修改,可以同楼上一样,或者如下,利用break语句跳出循环:

while True:
    temp = input("What's this:")
    guess = int(temp)
    if guess == 6:
      print("You are right")
      print("But,no reward")
      break
    else:
      if guess > 6:
            print("No,It's big.")
      else:
            print("No,It's small.")
print("Game over")

C前 发表于 2020-2-19 11:15:29

风琰流水 发表于 2020-2-19 01:21
temp = input("What's this:")
guess = int(temp)
while guess != 6:


但是这样,猜6的时,if guess == 6又不执行了。

C前 发表于 2020-2-19 14:15:01

鱼子酱POI 发表于 2020-2-19 04:34
手机回帖不太方便,见谅。问题在于你发的代码第四,五两行。那两行原意是除第一次循环外,每次循环搜集用户 ...

谢谢!你上面一段话给我的帮助太大了
页: [1]
查看完整版本: 游戏改进