返回介绍

3.8 一个小程序:猜数字

发布于 2024-01-22 21:44:07 字数 2380 浏览 0 评论 0 收藏 0

到目前为止,前面展示的小例子适合于介绍基本概念。现在让我们看一看,如何将所学的知识综合起来,编写一个更完整的程序。在本节中,我将展示一个简单的猜数字游戏。在运行这个程序时,输出看起来像这样:

I am thinking of a number between 1 and 20.
Take a guess.
10
Your guess is too low.
Take a guess.
15
Your guess is too low.
Take a guess.
17
Your guess is too high.
Take a guess.
16
Good job! You guessed my number in 4 guesses!

在文件编辑器中输入以下代码,并保存为guessTheNumber.py:

# This is a guess the number game.
import random
secretNumber = random.randint(1, 20)
print('I am thinking of a number between 1 and 20.')

# Ask the player to guess 6 times.
for guessesTaken in range(1, 7):
    print('Take a guess.')
    guess = int(input())

    if guess < secretNumber:
        print('Your guess is too low.')
    elif guess > secretNumber:
        print('Your guess is too high.')
    else:
        break # This condition is the correct guess!
if guess == secretNumber:
    print('Good job! You guessed my number in ' + str(guessesTaken) + ' guesses!')
else:
    print('Nope. The number I was thinking of was ' + str(secretNumber))

让我们逐行来看看代码,从头开始。

# This is a guess the number game.
import random
secretNumber = random.randint(1, 20)

首先,代码顶部的一行注释解释了这个程序做什么。然后,程序导入了模块random,以便能用random.randint()函数生成一个数字,让用户来猜。返回值是一个1到20之间的随机整数,保存在变量secretNumber中。

print('I am thinking of a number between 1 and 20.')

# Ask the player to guess 6 times.
for guessesTaken in range(1, 7):
    print('Take a guess.')
    guess = int(input())

程序告诉玩家,它有了一个秘密数字,并且给玩家6次猜测机会。在for循环中,代码让玩家输入一次猜测,并检查该猜测。该循环最多迭代6次。循环中发生的第一件事情,是让玩家输入一个猜测数字。因为input()返回一个字符串,所以它的返回值被直接传递给int(),它将字符串转变成整数。这保存在名为guess的变量中。

    if guess < secretNumber:
        print('Your guess is too low.')
    elif guess > secretNumber:
        print('Your guess is too high.')

这几行代码检查该猜测是小于还是大于那个秘密数字。不论哪种情况,都在屏幕上打印提示。

    else:
        break # This condition is the correct guess!

如果该猜测既不大于也不小于秘密数字,那么它就一定等于秘密数字,这时你希望程序执行跳出for循环。

if guess == secretNumber:
    print('Good job! You guessed my number in ' + str(guessesTaken) + ' guesses!')
else:
    print('Nope. The number I was thinking of was ' + str(secretNumber))

在for循环后,前面的if...else语句检查玩家是否正确地猜到了该数字,并将相应的信息打印在屏幕上。不论哪种情况,程序都会打印一个包含整数值的变量(guessesTaken和secretNumber)。因为必须将这些整数值连接成字符串,所以它将这些变量传递给str()函数,该函数返回这些整数值的字符串形式。现在这些字符串可以用+操作符连接起来,最后传递给print()函数调用。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文