一、自定义函数
#不带参数函数
def fname():
print("hello,world")
fname()
#带参数函数
#向函数传递信息,通过username,函数可接受指定传递给username任何值
def fname(username):
print("hello,world"+","+username)
fname("Dragon")
1、带参数函数的实参与形参
#函数的定义可能包含多个实参,也可能包含多个形参。实参的传递方式多种,可用位置实参,要求:实参的顺序与形参的顺序相同。关键字实参,每个参数都由变量名和值组成。还可以使用字典和列表
#位置实参
def function_name(user_1,user_2):
print(user_1.title()+" "+user_2.title())
function_name('wang','best')
#可以改变实参多次调用
#关键字实参(使用时务必指出形参名)
function_name(user_1='wang',user_2='best')
#默认值,使用时不必指出,注意此时user_1和user_2位置不可以变
def function_name(user_1,user_2="dog"):
print(user_1.title()+" "+user_2.title())
function_name(user_1="wang")
#可以用function_name("wang")替换
#带返回值函数
def function_name(user_1,user_2):
full=user_1.title()+" "+user_2.title()
return full
name=function_name("wang","zhang")
print(name)
#为了让中间的变量名是可选择的,可先赋值一个空字符串,当没有提供中间字符串是依然可行
def fname(first_name,last_name,middle_name=""):
if middle_name:
full_name=first_name.title()+" "+middle_name.title()+" "+last_name.title()
else:
full_name=first_name.title()+" "+middle_name.title()+" "last_name.title()
return full_name
name=fname('wang','long')
print(name)
name=fname('wang','long','zi')
print(name)
#函数返回值为字典
def fname(first_name,last_name):
names={
'first': first_name,
'last': last_name,
}
return names
name=fname('wang','long')
print(name)
#让用户不断输入打印
def fname(first_name,last_name):
full_name=first_name+" "+last_name
return full_name.title()
while True:
f_name=input("请输入姓")
l_name=input("请输入名")
form_name=fname(f_name,l_name)
print(form_name)
#函数参数为列表
def fname(names):
for name in names:
meg="Hello"+" "+name.title()+" "+"!"
print(meg)
full_name=['wang','zi','long']
fname(full_name)
#将一个列表中元素赋值到另个列表中
def fname_1(signed_form,unsigned_form):
while signed_form:
new_elemwnt=signed_form.pop()
unsigned_form.append(new_elemwnt)
def fname_2(unsigned):
for vlaue in unsigned:
print(vlaue)
signed_form=['wang','zi','long']
unsigned_form=[]
fname_1(unsigned_form,signed_form)
fname_2(unsigned_form)
#传递多个实参
#形参名*topping的*让topping建立一个元组,且将多所有的值都封装在这个元组中
def fname(*topping):
print(topping)
fname('wang')
fname('wang','zi','long')
#如果让函数接受不同类型的形参,必须把接纳任意数量实参的形参放在最后
def fname(size,*topping):
print(str(size))
for vlaue in topping:
print(vlaue)
fname(28,'wang')
fname(18,'wang','zi','long')
#字典作为实参
#形参名中**俩个星号是去建立一个空字典
def fname(first,last,**user_infor):
profit={}
profit['first_name']=first
profit['last_name']=last
for key,value in user_infor.items():
profit[key]=value
return user_infor
user_nmae=fname('wang','zhang',location="liu",field="qiu")
#将函数存储在模块中
#import语句允许在当前函数运行的模块中使用模块中的代码
print(user_nmae)
#导入函数
#新建个text.py文件
def fname(zise,*toppings):
print("输出尺寸"+" "+str(size))
for topping in toppings:
print(topping)
#新建个py文件
import test #将函数文件导入其中
print(18,"hunbering",'ice-cream',"tea")
#注意:导入特定函数 from text import function_0,function_1
#给函数起定别名wo from text import function_0 as wo
#给模块指定别名wu import text as p
#使用*可导数文件中所有函数
imprt text *