零基础入门Python3-函数详解
Posted pyshadow
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础入门Python3-函数详解相关的知识,希望对你有一定的参考价值。
我们通过一种运算方法,把一个数字运算成另一个数字,每次需要运算的数字都是不同的,但是运算方法都是一致的。如果每次运算都需要定义和编写相同代码,那我们的工作量简直太大了。函数就是对应的解决办法,输入对象,通过相同的计算,得到相应的结果,这个调用过程就叫做函数。
1、定义函数
def 函数名称():
语句1
语句2
......
return xxx
def是定义函数的标识,这个是不能丢的。然后函数名称和变量定义的规则是一致的,不能以数字开头等,冒号必须写在最后。语句就是我们需要编写的功能代码。return xxx代表的是调用函数后返回值。
#实例1
def func():
print(‘这是函数‘)
return True
#这里的func就是定义的函数名称,print(‘这是函数‘)是函数的内容,return True为返回值为真。
2、调用函数
我们上面讲到,定义函数的时候有一个函数名,这个函数名就是在调用函数使用使用的。
#调用没有参数的函数语法
函数名()
#调用有参数的函数语法
函数名(参数1,参数2,......)
#实例
func()
>>>这是函数
#这里输出的字符串就是我们刚才func函数的功能代码里面的输出结果。
3、函数的参数
函数的参数分为位置参数、默认参数、可变参数、关键字参数、命名关键字参数。
(1)位置参数
位置参数就是按照定义函数时,相对应的函数位置的值进行赋值。
def 函数名称(位置参数1、位置参数2、......):
语句1
语句2
......
return xxx
#实例1
def func(name,age):
print(‘My name is {0},i am {1} year old‘.format(name,age))
return True
func(‘zhangsan‘,‘18‘)
>>>My name is zhangsan,i am 18 year old
# func是函数名称,name、age是函数的参数,print(xxx)是函数的功能代码,return True为返回真。func(‘zhangsan‘,‘18‘)为调用代码。
#在我们调用函数的时候,我们并没有给参数进行赋值,而是直接输入相对应的值。我们已经知道,func函数的第一个参数就是name,调用函数是,按照相应位置,第一个参数输入name的值。第二个位置的参数是age,调用参数的时候值就是age的值。这就是位置参数。
但是,我们这个函数还是有点不严谨,如果我们在name变量的位置输入一个数字,在age变量的位置输入一个字符串,那输出的结果就不伦不类了。
#调用以上代码
func(20,‘lisi‘)
>>>My name is 20,i am lisi year old
# 第一,顺序完全乱了,第二变量没有做严格的筛分。
怎么避免这种情况呢?我们在函数的内部做一个判断,如果符合我们的设定,则运行我们的功能代码,否则,输出字符串错误,或者pass。
实例2
def func(name,age):
if isinstance(name,str):
if isinstance(age,int):
print(‘My name is {0},i am {1} year old‘.format(name,age))
else:
print(‘这个年龄不是正确的格式!‘)
else:
print(‘这个名字不是正确的格式!‘)
# 需要指出的是isinstance(v1,type)函数是指判断某个变量的值和type(数据的类型)是否相同,相同返回True,不同返回False。
# 两个判断,一个对name是否为str字符串类型进行判断,另一个对age是否为int整数类型进行判断。如果都成立了,则运行功能代码print(xxx)。
# 这里我在补充一点,函数可以返回多个值
def 函数名称(位置参数1、位置参数2、......):
语句1
语句2
......
return v1,v2,v3, ...
# 实例3
def func():
pass
return ‘aa‘,‘bb‘,‘cc‘,123,456
a=func()
print(a)
print(‘----------------------------‘)
print(type(a))
>>>
(‘aa‘, ‘bb‘, ‘cc‘, 123, 456) #输出的结果
---------------------------- #输出的结果
<class ‘tuple‘> #输出的结果
# 我们可以看到,确实是返回了几个值。同时这些值的类型是tuple(以后会讲到的)
(2)默认参数
默认参数就是在调用函数的时候可以不给这个默认参数赋值,这个参数在定义的时候就默认给赋值了,但是我们想另外赋值也是可以的。以前我们一直用的print()就是一个内置函数,一般的情况下,只给一个值,就是想输出的内容(字符串、整数、list....)例:print(‘这就是我想输出的内容‘)其实,print()内置函数定义的时候,是有几个参数,只不过我们几乎不用。我们使用help(print)来看看他的具体参数。 print(value, ..., sep=‘ ‘, end=‘ ‘, file=sys.stdout, flush=False)
#语法
函数名称(参数1,参数2,参数3=‘python‘)
我们就以end=‘ ‘为例,这就是一个典型的默认函数。print函数在定义的时候就已经给end赋值为 ‘ ‘,‘ ‘ 是什么呢?是换行符的意思。print() 函数默认的情况下是自动换行的。但是,我们也可以给end赋值为 ‘ ‘ 空,让它不换行。
# 实例1
print(‘这个是换行的‘)
>>>这个是换行的
#这个新的一行
# 实例2
print(‘这个是不换行的‘,end=‘ ‘)
>>>这个是不换行的
# 实例3
#演示默认函数的定义与调用
def func(name,age,sex=‘man‘):
print(‘name:{0} age:{1} sex:{2}‘.format(name,age,sex))
func(‘wangwu‘,38)
>>>name:wangwu age:38 sex:man
func(‘xiaomei‘,19,sex=‘girl‘)
>>>name:xiaomei age:19 sex:girl
# 这个func()函数在定义的时候,就给sex赋值为字符串 ‘man‘,调用的时候,如果在sex的相应位置没有值,则sex的值默认为字符串 ‘man‘。如果调用的时候,给sex赋值的话,此时,默认函数sex在定义时候的值 ‘man‘已经无效了,sex的值为字符串 ‘girl‘。
在定义函数的时候,我们给某个参数赋值,这个参数就变成默认参数了。调用函数的时候,如果不给默认参数赋值,则默认函数的值为定义函数时候的默认值。如果在调用函数的时候,给默认函数赋值,则默认函数的值为最新赋的值。
*这里我们要注意,默认参数的位置在所有参数的最后面。
以上是关于零基础入门Python3-函数详解的主要内容,如果未能解决你的问题,请参考以下文章