zh201208 发表于 2019-2-14 20:20:03

为什么少一个

import random
secret= random.randint(1,30)
print('这是一个小游戏')
temp=input ('猜猜我想的啥:')#输入一个数字;
guess=int(temp)             #把这个整形变量赋值给guess;
while guess!=secret:      #循环语句.判断为ture进入循环体;
      if guess==secret:
            print('你真棒')
      else:
            if guess<secret:
                print('小了')
            else:
                print('大了')
      temp=input ('猜错了,重新输入吧:')
      guess=int(temp)
print('你真棒')
print('游戏结束')
#为什么多次猜中后,最后输出只有一个’你真棒‘,而不是想象中的两个’你真棒‘?
如果程序运行两次以上才猜中的话为什么不会输出两次‘你真棒’?

ba21 发表于 2019-2-14 21:08:53

         print('你真棒')
print('游戏结束')
缩进

heidern0612 发表于 2019-2-15 08:00:48

你的while循环大前提是guess不等于secret,也就是说你里面的if guess ==secret不会执行。

当你猜中数字,直接执行的尾部的print语句,没有执行while里面的if语句。

清风明月星 发表于 2019-2-15 09:01:45

如果你的guess一来就等于secret,自然就不会进入到while循环中,直接就运行末尾的print了,所以只要你输入对了,就只会出现一次‘你真棒’。

吃猪讲狗 发表于 2019-2-15 11:20:08

本帖最后由 吃猪讲狗 于 2019-2-15 13:56 编辑

import random
secret = random.randint(1, 30)
temp = input("猜一猜: ")
guess = int(temp)
if guess==secret:
        print('你真棒')
while guess!=secret:
        if guess<secret:
                print('小了')
        else:
                print('大了')
        temp=input ('猜错了,重新输入吧:')
        guess=int(temp)
        if guess==secret:
                print('你真棒')
                break
print('你真棒')
print('游戏结束')

zh201208 发表于 2019-2-18 12:50:10

heidern0612 发表于 2019-2-15 08:00
你的while循环大前提是guess不等于secret,也就是说你里面的if guess ==secret不会执行。

当你猜中数字 ...

非常感谢,明白了
页: [1]
查看完整版本: 为什么少一个