函数又可以分为内置函数和用户自定义函数。
函数的主要作用就是让程序看起来看不那么臃肿,增加程序的可读性。
1)函数的定义
def 函数名(<参数0>,<参数1>.....):
函数体
return <表达式>
def:定义函数的关键字
函数名:函数的名字按照标识符的命名规则来就行。
参数:可以没有可以是一个或多个都可(这里的参数也叫形参)
函数体:他决定了函数的功能
举个例子吧:
def miao_1(name):
print("你好:"+name)
miao_1('喵1喵2')
输出结果:
在上面这段程序里面 “def miao_1(name):”中的name就是所谓的形参。
在后面 “miao_1(‘喵1喵2’)” 中的 “喵1喵2” 就是实参。
2)函数的调用
形式:函数名(实参)
例如上面例子中的 “miao_1(‘喵1喵2’)” 就是调用函数
一般情况下有几个形参就要传进来几个实参否则会报错!(可以试试少写一个实参看它报啥错)
默认参数
当然你也可以使用默认参数那那个参数的值也就不用传也可了。
举例:
def miao_1(name,sex='男'):
print('姓名:'+name+'\n性别:'+sex)
print('____________________________')
miao_1('张三')
miao_1("李四","女")
运行结果:
在这里可以看出如果有对形参有默认值就可以直接用不赋值,如例子中的张三默认为“男”,第二个咱们直接给他赋值“女”所以李四为女。
不定长参数
形式:函数名(实参,*参数名):
举例
def miao_1(name,sex='男'):
print('姓名:'+name+'\n性别:'+sex)
print('____________________________')
miao_1('张三')
miao_1("李四","女",2131,4154,54,45,464,54,4,32415,4)
结果:
对于不定长参数其实是存在元组里面的,不定长的参数是在定长的后面放着。
或者:
def miao(x,**y):
print(x,y)
miao('张三',**{'name':'xx'})
运行结果:
也可将不定长参数设为字典类型。
调用函数
在别的文件如果函数在一个程序里面直接调用。
函数名(实参)
如果不在一个程序里面咱们就得提前调用它整个模块了。
咱们先创建一个one.py的 文件并在里面创建名字为“miao_1”的函数,再创建two.py文件并在two.py中调用miao_1.
one.py
def miao_1():
"""进制转换"""
x=int(input("输入一个整数:"))
print('{}的二进制是:{:b}'.format(x,x))
print('{}的八进制是:{:o}'.format(x,x))
print('{}的十六进制是:{:x}'.format(x,x))
if __name__=='__main__': #马上说到他了
miao_1()
two.py
import one as x #调用one.py模块as的意思是将one用别名x代替
x.miao_1() #调用miao_1函数
运行结果;
如果写完需要测试可以在函数末尾用 if _ _name _ == ’ _ main _ _ ‘: 在这里面测试就不会在调用时起作用举例上面的one.py文件
如果没有if _ _ name _ _ ==’ _ _ main _ _ ':运行two.py文件就会运行两次。(可以自己试试)