在自学过程中遇到的一个例子:将一个书名字列表传给函数,将我的书名字输出一行,带逗号间隔。
def favourite_books(book_names):
n = 0
print(len(book_names))
print('Your favourite books are ',end = '')
for book_name in book_names:
# 判断是不是最后一个元素,如果是则后面不加逗号,,,,,
n +=1
if n == len(book_names):
print(book_name,end = '')
else:
print(book_name + ',', end='')
print('.')
name = ['Zero to One', 'The Great Debate', 'The Power of Hibit']
favourite_books(name)
2. 我们都知道list是可变数据类型,但是在函数操作中,会遇到以下情况:
a = ['1','2','3']
def fun(a):
a = ['3','4']
fun(a)
print(a)
a = ['1','2','3']
def fun(a):
a.append('5')
fun(a)
print(a)
你会发现,对list进行赋值,和对list进行添加元素时,函数外的a不同,赋值的a不变,添加的a变了,
原来是因为在函数中给传递的列表进行赋值,会给这个函数中的列表开辟一个新的地址,所以对它的修改则不会影响函数外的列表。经过验证,如果将其他的列表赋值给函数中的列表,依然不会影响函数外的列表。