定义函数
def 函数名(形参):
函数体
传递实参
传递多个参数时,一定要注意顺序,但是如果使用关键字实参,可以打乱顺序。
def name(first_name,last_name):
print("name:"+first_name.title()+" "+last_name.title())
name(last_name="ming",first_name="li")
name("li","ming")
输出结果
使用默认值
直接给形参赋初值,即为默认值,但是如果后面实参重新赋值,那么就忽略形参初始值
def name(first_name,last_name="ming"):
print("name:"+first_name.title()+" "+last_name.title())
name('li')
name('li','si')
输出结果:
返回值
让实参变得可选
#人的名字并非所有人都有中间名
def name(first_name,last_name,middle_name=""):
if middle_name:
name=first_name+" "+middle_name+" "+last_name
else:
name=first_name+" "+last_name
return name.title()
print(name("li","si"))
print(name("wang","zi","ma"))
输出结果:
返回字典
#返回一个人的信息,并且让里面的部分内容可选
def build_person(first_name,last_name,age=""):
person={"first name":first_name,"last name":last_name}
if age:
person['age']=age
return person
print(build_person('li','si',18))
输出结果:
传递列表
#传递一个名字列表
def greet_users(names):
for name in names:
print("Hello "+name.title())
names=['asd','sdg','zxc']
greet_users(names)
#修改列表
def greet_users(names,new_names):
while names:
current_name=names.pop()
print(current_name.title())
new_names.append(current_name)
return new_names
names=['asfx','werd','fghxc']
new_names=[]
greet_users(names,new_names)
print(new_names)
输出结果:
如果想要保存原列表,只需要在调用函数时,将实参改为切片
#修改列表
def greet_users(names,new_names):
while names:
current_name=names.pop()
print(current_name.title())
new_names.append(current_name)
return new_names
names=['asfx','werd','fghxc']
new_names=[]
greet_users(names[:],new_names) #此处换为切片
print(new_names)
print(names)
输出结果:(按原来方法,names应该变成一个空列表)
传递任意数量的实参
在函数中,如果形参是一个列表,则:def 函数名(*列表名):
如果时字典,则:def 函数名(**字典名)
def build_profile(first_name,last_name,**info):
profile={}
profile['name']=first_name.title()+last_name.title()
for key,value in info.items():
profile[key]=value
return profile
print(build_profile('asd','xcv',
country="China",
language="Chinese")) #最好分开
输出结果:
将函数存储在模块中
导入整个模块:import 文件名
导入特定的函数:from 文件名 import 函数名
使用as给函数指定别名:from 文件名 import 函数名 as 新名
使用as给模块指定别名:import 文件名 as 新名
导入模块中所有函数:from 文件名 import *
看完python里面的函数,忽然明白了C++里面的一些东西。
函数里面的东西太凌乱了,,总能把我搞懵逼。
重新复习一遍之后,突然感觉内容并没有多少,以前很迷的地方,现在很轻松就明白了。
定个小目标,三天之内把python中的类搞明白。