这个特定参数是如何接收值的?

2024-04-25 07:54:04 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的脚本取自python游戏开发书籍。作者解释了一切,除了一件事。我自己也想弄明白,但作为一个初学者,这没什么意义。代码如下:

import random
import time

def displayIntro():
    print('You are on a planet full of dragons. In front of you,')
    print('you see two caves. In one cave, the dragon os friendly')
    print('and will share his treasure with you. The other dragon')
    print('is greedy and hungry, and will eat you on sight.')
    print()

def chooseCave():
    cave=''
    while cave != '1' and cave != '2':
        print('Which cave will you go into? (1 or 2)')
        cave=input()
    return cave

def checkCave(chosenCave):
    print('You approach the cave...')
    time.sleep(2)
    print('It is dark and spooky...')
    time.sleep(2)
    print('A large dragon jumps out in front of you! He opens his jaws and...')
    print()
    time.sleep(3)
    friendlyCave=random.randint(1,2)
    if chosenCave==str(friendlyCave):
        print('Gives you his treasure!')
    else:
        print('Gobbles you down in one bite.')

playAgain='yes'
while playAgain=='yes' or playAgain=='y':
    displayIntro()
    caveNumber=chooseCave()
    checkCave(caveNumber)
    print('Do you want to play again? (yes or no)')
    playAgain=input()

现在我的问题是:参数chosenCave如何获得一个值?在我看来,它似乎没有定义任何地方。我们定义了什么是cave,什么是friendlyCave,而不是chosenCave。这里发生了什么?我错过了什么?你知道吗

抱歉,如果这是一个完整的初学者问题。你知道吗


Tags: orandofyoutimedefsleepwill
1条回答
网友
1楼 · 发布于 2024-04-25 07:54:04

参数chosenCave在调用checkCave函数时接收其值。在此之前,它没有值。你知道吗

定义函数时,必须选择向该函数声明参数。在函数名旁边的圆括号中可以看到chosenCave。这些圆括号创建了所谓的“形式参数声明”。它定义了有人如何调用你的方法。它实际上并不调用该方法,但它只是告诉每个人如何调用它。你知道吗

在代码的底部,您可以看到以下代码:

caveNumber = chooseCave()
checkCave(caveNumber)

这称为“实际参数声明”。用一种奇特的方式说,这就是乔森卡夫的实际价值所在。在您的示例中,chosenCave被分配了变量caveNumber中的值。你知道吗

这并不意味着chosenCave永远是一个价值观。它只是意味着在这个函数的执行过程中,它是一个特定的值。每次调用函数时,都会给chosenCave分配一个新值。例如,用户可以选择洞穴1,获得一些宝藏,说是再次玩,然后选择洞穴2。这是两次对checkCave的调用。第一个是checkCave(1),第二个是checkCave(2)。chosenCave的值可以随着函数的每次调用而改变。你知道吗

相关问题 更多 >