Python 如何将一个参数从一个函数返回到另一个函数?
我目前正在尝试创建一种扑克游戏,如果你输入一个整数,你要玩多少轮,然后让人和计算机根据你输入的整数生成牌,并决定每轮谁赢。我的问题是如何将一个参数从一个函数返回到另一个函数?我有x,y在函数扑克,我想用它来比较函数totalwinsPython 如何将一个参数从一个函数返回到另一个函数?,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(
代码很混乱,但下面是如何将返回值传递给下一个函数
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)