def make_great(人名):
for i in 人名:
魔术师2.append('the Great '+i)
魔术师= 魔术师2[:]
print (魔术师)
def show_magicians(人名):
for i in 人名:
print (i)
魔术师=['汪洋','王洋','王阳','王杨']
魔术师2=[]
make_great(魔术师)
show_magicians(魔术师)
#魔术师=魔术师2[:]
print(魔术师)
print(魔术师2)
<<python编程:从入门到实践>>的第8-10题
函数内已经把列表魔术师2赋值给列表魔术师了 可是和想象的完全不一样呢
今天还看到一个
a='x1'
b='x2'
c={'x1','x3'}
print((b or a)in c)
print((a or b)in c)
这个也想了半天没想明白
自学好费解啊
在函数中 魔术师= 魔术师2[:] 对魔术师变量赋值,不是修改全局变量魔术师的值,而是在函数内再创建一个同名的局部变量。
需要在函数中用
global 魔术师
声明这个函数中的 魔术师是全局变量,再对魔术师变量赋值,才能修改全局变量魔术师的值
代码改成
def make_great(人名):
global 魔术师 #声明这个函数中的 魔术师 是全局变量,
for i in 人名:
魔术师2.append('the Great '+i)
魔术师= 魔术师2[:]
print (魔术师)
def show_magicians(人名):
for i in 人名:
print (i)
魔术师=['汪洋','王洋','王阳','王杨']
魔术师2=[]
make_great(魔术师)
show_magicians(魔术师)
#魔术师=魔术师2[:]
print(魔术师)
print(魔术师2)