Python 如何将一个参数从一个函数返回到另一个函数?

Python 如何将一个参数从一个函数返回到另一个函数?,python,python-3.x,Python,Python 3.x,我目前正在尝试创建一种扑克游戏,如果你输入一个整数,你要玩多少轮,然后让人和计算机根据你输入的整数生成牌,并决定每轮谁赢。我的问题是如何将一个参数从一个函数返回到另一个函数?我有x,y在函数扑克,我想用它来比较函数totalwins 代码很混乱,但下面是如何将返回值传递给下一个函数 Deck = ['Diamond', 'Hearts', 'Jack', 'Spade'] Number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] def poker(

我目前正在尝试创建一种扑克游戏,如果你输入一个整数,你要玩多少轮,然后让人和计算机根据你输入的整数生成牌,并决定每轮谁赢。我的问题是如何将一个参数从一个函数返回到另一个函数?我有x,y在函数扑克,我想用它来比较函数totalwins


代码很混乱,但下面是如何将返回值传递给下一个函数


Deck = ['Diamond', 'Hearts', 'Jack', 'Spade']
Number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]


def poker():

    # instead of passing x, y as 0 i am initializing inside
    x = 0
    y = 0

    Times = int(input('How many rounds would you like to play: '))

    while Times > 0:
        Human = random.choice(Deck)
        Human_value = random.choice(Number)
        Computer = random.choice(Deck)
        Computer_value = random.choice(Number)

        print('Human: ', Human, Human_value)
        print('Computer: ', Computer, Computer_value)

        if Human_value > Computer_value:
            print('Human wins')
            x += 1
        elif Human_value < Computer_value:
            print('Computer wins')
            y += 1
        else:
            print('Tie')

        Times -= 1

        # returning x, y to the next funcction
        return x, y


def totalwins():
    x, y = poker()
    if x > y:
        print('Human wins!')
    else:
        print('Computer wins!')


totalwins()

也许是扑克结束时的回报声明?比如:

return (x,y)
然后,在您调用扑克时捕捉值:

x,y = poker(0,0)
然后将totalwins的参数列表更改为接受x和y并调用:

totalwins(x,y)
或者你可以将x和y设为全局,但我不会这样做,一旦while循环在poker函数中结束,你调用函数total\u winsx,y

由于变量x和y在poker函数中递增,因此应在其内部调用函数total_wins,如下面更正的代码所示:

import random
Deck = ['Diamond', 'Hearts', 'Jack', 'Spade']
Number = [1,2,3,4,5,6,7,8,9,10,11,12]

def totalwins(x,y):
    if x == y:
      print('It\'s a tie!')
    elif x > y:
        print('Human wins!')
    else:
        print('Computer wins!')

def poker(x,y):
    Times = int(input('How many rounds would you like to play: '))
    
    while Times > 0:
        Human = random.choice(Deck)
        Human_value = random.choice(Number)
        Computer = random.choice(Deck)
        Computer_value = random.choice(Number)
    
        print('Human: ', Human , Human_value)
        print('Computer: ', Computer, Computer_value)
        
        if Human_value > Computer_value:
            print('Human wins')
            x +=1
        elif Human_value < Computer_value:
            print('Computer wins')
            y += 1
        else:
            print('Tie')

        Times -= 1
    totalwins(x,y)
poker(0,0)
PS:在total_wins函数中还添加了一个平局条件。 注意:确保将total_wins函数放在扑克函数之前。
一种方法是创建一个类,这样所有实例方法都可以使用self访问这些参数。这是否回答了您的问题?谢谢,成功了。我不知道我能那样还它。顺便说一句,我们必须删除return语句的缩进,并将其放在循环之外,否则它只会播放onceyeah粘贴问题,在将注释放在return语句上后不会格式化。请接受答案@JarckilThanks alot!这实际上帮助我理解了如何更好地使用函数。直到现在我才知道我可以在函数中调用函数并使用它自己的参数。
import random
Deck = ['Diamond', 'Hearts', 'Jack', 'Spade']
Number = [1,2,3,4,5,6,7,8,9,10,11,12]

def totalwins(x,y):
    if x == y:
      print('It\'s a tie!')
    elif x > y:
        print('Human wins!')
    else:
        print('Computer wins!')

def poker(x,y):
    Times = int(input('How many rounds would you like to play: '))
    
    while Times > 0:
        Human = random.choice(Deck)
        Human_value = random.choice(Number)
        Computer = random.choice(Deck)
        Computer_value = random.choice(Number)
    
        print('Human: ', Human , Human_value)
        print('Computer: ', Computer, Computer_value)
        
        if Human_value > Computer_value:
            print('Human wins')
            x +=1
        elif Human_value < Computer_value:
            print('Computer wins')
            y += 1
        else:
            print('Tie')

        Times -= 1
    totalwins(x,y)
poker(0,0)