#小练习:
#使用可变参数的形式,将所有参数相乘,并将结果作为函数的返回值
def print_add(*args):
resul = 1
for i in args:
resul *= i
return resul
print print_add(1,3,4,5,6,7)
#按值传递的例子:
b =1
def print_sth(s):
s=s+1
return s
# print print_sth(b)
# print "b:",b
#按引用传递的例子:
a = [1]
print "a: ",a
def print_str(s):
s.append(2)
return
# print print_str(a)
# print a
#小练习:写一个而函数,一个字符串作为参数,函数需要将此字符串的偶数位字母做一个返回
def print_even(s):
s_list = []
for i in range(len(s)):
if i % 2 == 0:
s_list.append(s[i])
return "".join(s_list)
# s = "abcdef"
# print print_even(s)
def add(x,y):
try:
if isinstance(x,y(int,long,float)):
return x + y
else:
return None
except:
print "你传入的类型不一致,不能两个数增加"
# a = 10
# b = "ddd"
# print add(1,b)
#一个list 包含10个数字,然后生成新的List,要求,新的list里面的数都比之前的数多1
def print_list():
list1 = range(10)
list2 = []
for i in list1:
list2.append( i + 1)
print list1
print list2
精简版:
传值:被调函数局部变量改变不会影响主调函数局部变量
传址:被调函数局部变量改变会影响主调函数局部变量
Python参数传递方式:传递对象引用(传值和传址的混合方式),如果是数字,字符串,元组则传值;如果是列表,字典则传址;
copy使用场景:列表或字典,且内部元素为数字,字符串或元组
deepcopy使用场景:列表或字典,且内部元素包含列表或字典
本文转自 知止内明 51CTO博客,原文链接:http://blog.51cto.com/357712148/2048529,如需转载请自行联系原作者