格式化函数返回的值

2024-10-02 00:36:37 发布

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

我有一个包含两个列表的函数。其中一个有一串字符串,但另一个是由随机数生成的整数填充。完成后,我有一个for语句,它以我想要的格式打印出信息。但这就是问题所在,我可以在函数本身中格式化信息。但我需要将数据传递给另一个函数并以相同的方式显示它

def charAbility():
    pAbility = ['Str', 'Dex', 'Con', 'Int', 'Wis', 'Cha']
    pScore = []
    i = 0
    while i < 6:
        randomNumber = random.randint(7, 18)
        pScore.append(randomNumber)
        i = i + 1
return pAbility, pScore

为了得到我想要在函数中打印的内容,我有以下代码:

for score, ability in zip(pAbility, pScore):
    print str(score) + ":\t\t " + str(ability)

有没有一种方法可以将返回的值以相同的方式打印到另一个函数中?你知道吗


Tags: 函数字符串信息列表for格式方式整数
3条回答

您应该调用现有函数,并将这两个列表分配给两个不同的变量,否则它们将一起作为元组返回。那么,使用字符串格式打印结果将是最干净的:

scorelist, abilitylist = charAbility()

for score,ability in zip(scorelist,abilitylist):
    print "{}:\t\t{}".format(score,ability)

或者,使用一个变量:

combinedlists = charAbility()

for pair in zip(*combinedlists):
    print "%s:\t\t%s" % pair

我相信你只是在寻找这个:

param1, param2 = charAbility()

解释

您的方法返回两个值pAbility, pScore。如果你想简单地做到这一点:

param = charAbility()

您仍然可以访问这两个返回,但是它们以tuple的形式返回:

正在发生的事情的简化示例:

def charAbility():
    return 1, 2
param = charAbility()
print(param)
(1, 2)

因此,要处理返回到它们自己的变量,以便您可以将其传递给新方法,您应该使用上面提供的示例。要重新迭代:

param1, param2 = charAbility()

现在您可以将param1(它将保持pAbility)和param2(它将保持pScore)传递给您需要将其发送到的任何其他方法:

some_other_method(param1, param2)

我想你在找这个:-

def charAbility():
    pAbility = ['Str', 'Dex', 'Con', 'Int', 'Wis', 'Cha']
    pScore = []
    i = 0
    while i < 6:
        randomNumber = random.randint(7, 18)
        pScore.append(randomNumber)
        i = i + 1
    return pAbility, pScore

def otherFunc():
    score, ability = charAbility()

    for iscore, strability in zip(ability, pScore):
        print str(iscore) + ":\t\t " + str(strability)

otherFunc() # function in module scope

相关问题 更多 >

    热门问题