我正在使用Python 2.7导入random
。我想这个代码生成两张随机卡。当前代码不生成随机卡。如果我请求卡片(9,11),代码会生成总计为19的卡片(9,J)。输出没有任何随机性。
def blackjack(A,B):
print "Welcome to Blackjack!"
print "Your cards are",name[A-1],"&",name[B-1]
total = value[A-1] + value[B-1]
print "Your card total is",total
import random
A = random.randint(1,13)
B = random.randint(1,13)
name = ('A','2','3','4','5','6','7','8','9','10','J','Q','K')
value = (11,2,3,4,5,6,7,8,9,10,10,10,10)
示例输出:
>>> blackjack(9,11)
Welcome to Blackjack!
Your cards are 9 & J
Your card total is 19
答案 0 :(得分:3)
您似乎在定义函数和调用函数以及参数如何工作之间感到困惑。
def blackjack(A,B):
print "Welcome to Blackjack!"
print "Your cards are",name[A-1],"&",name[B-1]
total = value[A-1] + value[B-1]
print "Your card total is",total
在您的函数中A
和B
是占位符。它们将被您在括号中放置的任何内容替换。由于范围界定,您的功能对A
和B
之外的任何内容都不了解。
Scoping是Python如何知道要使用的变量。这里有一个简单的例子:
>>> a = 10
>>> def bar():
a = 5
>>> a
10
函数内的a
不会影响外部的A
。在你的功能中反过来也是如此。除非您将其作为参数传递,否则该函数的blackjack(random.randint(1,13), random.randint(1,13))
外侧不会影响内部。
试试这个:
foo
看看你得到了什么。
您可以阅读有关函数如何工作的更多信息here