我有麻烦的变量没有得到定义的方式,我希望他们在我的函数。我收到错误消息“global name color1 is not defined”,即使我从一个函数返回color1,在这个函数中我给它一个定义的值。 这是我的密码:
import random
card = ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52']
def computer_card1():
return random.choice(card)
def computer_card2():
return random.choice(card)
def player_color():
color_in = input('Purple, Black or Red? ').strip().lower()
return color_in
def cards():
if computer_card1() == 1:
color1 = black
value1 = 2
if computer_card1() == 2:
color1 = black
value1 = 3
if computer_card1() == 3:
color1 = black
value1 = 4
if computer_card1() == 4:
color1 = black
value1 = 5
if computer_card1() == 5:
color1 = black
value1 = 6
if computer_card1() == 6:
color1 = black
value1 = 7
if computer_card1() == 7:
color1 = black
value1 = 8
if computer_card1() == 8:
color1 = black
value1 = 9
if computer_card1() == 9:
color1 = black
value1 = 10
if computer_card1() == 10:
color1 = black
value1 = 11
if computer_card1() == 11:
color1 = black
value1 = 12
if computer_card1() == 12:
color1 = black
value1 = 13
if computer_card1() == 13:
color1 = black
value1 = 0
if computer_card1() == 14:
color1 = black
value1 = 2
if computer_card1() == 15:
color1 = black
value1 = 3
if computer_card1() == 16:
color1 = black
value1 = 4
if computer_card1() == 17:
color1 = black
value1 = 5
if computer_card1() == 18:
color1 = black
value1 = 6
if computer_card1() == 19:
color1 = black
value1 = 7
if computer_card1() == 20:
color1 = black
value1 = 8
if computer_card1() == 21:
color1 = black
value1 = 9
if computer_card1() == 22:
color1 = black
value1 = 10
if computer_card1() == 23:
color1 = black
value1 = 11
if computer_card1() == 24:
color1 = black
value1 = 12
if computer_card1() == 25:
color1 = black
value1 = 13
if computer_card1() == 26:
color1 = black
value1 = 0
if computer_card1() == 27:
color1 = red
value1 = 2
if computer_card1() == 28:
color1 = red
value1 = 3
if computer_card1() == 29:
color1 = red
value1 = 4
if computer_card1() == 30:
color1 = red
value1 = 5
if computer_card1() == 31:
color1 = red
value1 = 6
if computer_card1() == 32:
color1 = red
value1 = 7
if computer_card1() == 33:
color1 = red
value1 = 8
if computer_card1() == 34:
color1 = red
value1 = 9
if computer_card1() == 35:
color1 = red
value1 = 10
if computer_card1() == 36:
color1 = red
value1 = 11
if computer_card1() == 37:
color1 = red
value1 = 12
if computer_card1() == 38:
color1 = red
value1 = 13
if computer_card1() == 39:
color1 = red
value1 = 0
if computer_card1() == 40:
color1 = red
value1 = 2
if computer_card1() == 41:
color1 = red
value1 = 2
if computer_card1() == 42:
color1 = red
value1 = 3
if computer_card1() == 43:
color1 = red
value1 = 4
if computer_card1() == 44:
color1 = red
value1 = 5
if computer_card1() == 45:
color1 = red
value1 = 6
if computer_card1() == 46:
color1 = red
value1 = 7
if computer_card1() == 47:
color1 = red
value1 = 8
if computer_card1() == 48:
color1 = red
value1 = 9
if computer_card1() == 49:
color1 = red
value1 = 10
if computer_card1() == 50:
color1 = red
value1 = 11
if computer_card1() == 51:
color1 = red
value1 = 12
if computer_card1() == 52:
color1 = red
value1 = 13
if computer_card2() == 1:
color2 = black
value2 = 2
if computer_card2() == 2:
color2 = black
value2 = 2
if computer_card2() == 3:
color2 = black
value2 = 4
if computer_card2() == 4:
color2 = black
value2 = 5
if computer_card2() == 5:
color2 = black
value2 = 6
if computer_card2() == 6:
color2 = black
value2 = 7
if computer_card2() == 7:
color2 = black
value2 = 8
if computer_card2() == 8:
color2 = black
value2 = 9
if computer_card2() == 9:
color2 = black
value2 = 10
if computer_card2() == 10:
color2 = black
value2 = 11
if computer_card2() == 11:
color2 = black
value2 = 12
if computer_card2() == 12:
color2 = black
value2 = 13
if computer_card2() == 13:
color2 = black
value2 = 0
if computer_card2() == 14:
color2 = black
value2 = 2
if computer_card2() == 15:
color2 = black
value2 = 3
if computer_card2() == 16:
color2 = black
value2 = 4
if computer_card2() == 17:
color2 = black
value2 = 5
if computer_card2() == 18:
color2 = black
value2 = 6
if computer_card2() == 19:
color2 = black
value2 = 7
if computer_card2() == 20:
color2 = black
value2 = 8
if computer_card2() == 21:
color2 = black
value2 = 9
if computer_card2() == 22:
color2 = black
value2 = 10
if computer_card2() == 23:
color2 = black
value2 = 11
if computer_card2() == 24:
color2 = black
value2 = 12
if computer_card2() == 25:
color2 = black
value2 = 13
if computer_card2() == 26:
color2 = black
value2 = 0
if computer_card2() == 27:
color2 = red
value2 = 2
if computer_card2() == 28:
color2 = red
value2 = 3
if computer_card2() == 29:
color2 = red
value2 = 4
if computer_card2() == 30:
color2 = red
value2 = 5
if computer_card2() == 31:
color2 = red
value2 = 6
if computer_card2() == 32:
color2 = red
value2 = 7
if computer_card2() == 33:
color2 = red
value2 = 8
if computer_card2() == 34:
color2 = red
value2 = 9
if computer_card2() == 35:
color2 = red
value2 = 10
if computer_card2() == 36:
color2 = red
value2 = 11
if computer_card2() == 37:
color2 = red
value2 = 12
if computer_card2() == 38:
color2 = red
value2 = 13
if computer_card2() == 39:
color2 = red
value2 = 0
if computer_card2() == 40:
color2 = red
value2 = 2
if computer_card2() == 41:
color2 = red
value2 = 2
if computer_card2() == 42:
color2 = red
value2 = 3
if computer_card2() == 43:
color2 = red
value2 = 4
if computer_card2() == 44:
color2 = red
value2 = 5
if computer_card2() == 45:
color2 = red
value2 = 6
if computer_card2() == 46:
color2 = red
value2 = 7
if computer_card2() == 47:
color2 = red
value2 = 8
if computer_card2() == 48:
color2 = red
value2 = 9
if computer_card2() == 49:
color2 = red
value2 = 10
if computer_card2() == 50:
color2 = red
value2 = 11
if computer_card2() == 51:
color2 = red
value2 = 12
if computer_card2() == 52:
color2 = red
value2 = 13
return color1
return color2
return value1
return value2
def main():
card1 = computer_card1()
card2 = computer_card2()
pcolor = player_color()
print ( "The cards where:",card1,",",card2,",",pcolor )
if color1 == color2:
color = color1
else:
color = 'purple'
if color == pcolor:
print ('Win')
else:
print ('Lose')
请注意,在这种用法中,实际挑选两张卡片并进行比较会做大量不必要的工作;使用这些卡片可以更直接地得到相同的结果
天哪!你还是误会了很多事情年轻的学徒。。。:)
可变范围
让我们从variable scope开始。让我解释一下。你知道吗
当您编写以下代码时
您将得到一个失败,因为
a
是local到myfunction
,也就是说它只存在于该函数中,并且最后一个语句引用了python不知道的变量。这是一个很好的特性,因为如果没有作用域,您必须非常小心,不要在程序的任何部分使用可能发生冲突的相同变量名。如果在一个小程序中很无聊,那么在更大的程序中它是必须的(想想firefox的1020万行代码)。你知道吗return
关键字return
关键字不会将变量放在全局范围内(某些变量在任何时候都是可用的)。相反,它结束当前函数并将一些值传递给调用方。第一条语句以函数结尾,后面的return
永远不会到达。从调用方获取返回值的过程如下:Python提供了一种以元组形式从函数返回多个值的简便方法。一个是这样使用的:
Python的禅宗和所有这些东西
最后一个话题是一个好的程序有简单的算法和复杂的数据。Python有一套非常好的工具,专门用来表示和操作复杂的数据集。Lists、tuples和dictionaries用于描述复杂数据、对它们进行分组和建立关系。使用它们,你会简化很多代码,所以要尽快学会使用它们。你知道吗
一些不错的读物:
相关问题 更多 >
编程相关推荐