Python编程:03-函数,对象的方法

2023-03-27  本文已影响0人  小小一颗卤蛋

函数

函数:是一段封装的代码,在有需要的时候进行调用

 def fun1():  #定义函数
     print('Hello')
 print(fun1())  #调用函数

函数的返回值

 def fun2():
     return 'Hello'
 print(fun2())

函数的形参与实参

 def sumdata(a,b):  #a,b形式参数,简称形参
     return a+b
 print(sumdata(1,2))  #实际参数,简称实参
 print(sumdata(1))  #实参的数量与形参的数量不相等,则报错

函数的缺省值

 def sumdata2(a=100,b=80):
     return a+b
 print(sumdata2())  #用户不输入实参,则使用缺省值
 print(sumdata2(1,2))  #用户输入了实参,则使用用户输入的值
 print(sumdata2(1))  #用户输入了a的值,那么就是1+80=81
 print(sumdata2(b=1))  #指定输入b的值,那么就是100+1=101
 print(sumdata2(3,6))  #简略写法
 print(sumdata2(a=3,b=6))  #完整写法
 print(sumdata2(3,b=6))  #先简略写法,后完整写法
 print(sumdata2(a=3,6))  #先完整写法,后简略写法,这种写法会报错

函数中可以有多个return
写一个函数,返回某数的绝对值

 def absolute_value(n):
     if n>=0:
         return n
         return 'Hello'  #上一行的return语句执行完之后就退出了函数,之后的语句是不可达语句
     else:
         return -n
 print(absolute_value(6))

函数可以return多个值,当有多个值时,以元组形式返回

 def sumdata3(a,b):
     return a+b,a-b,a*b,a**b
 print(sumdata3(3,6))

列表是一个对象,所以返回时,直接返回列表,不需要以元组形式返回

 def sumdata3(a,b):
     return [a+b,a-b,a*b,a**b]  #列表是一个对象,所以返回时,直接返回列表,不需要以元组形式返回
 print(sumdata3(3,6))
print()函数可以传任意个参数

sep=' ' 间隔符的默认值为1个空格 end='\n' 结束符的默认值为一个换行符

 print(1,2,3,4,5,6,7,8,9,10,sep='/',end='')  #内置函数

*args可变长度参数,允许用户传任意个参数

 def fun6(a,*args):
     return a,*args  #这么写,可以少一层元组,这种写法称之为解包.这种写法在低版本的python中会报错
 print(fun6(1,2,3,4,5,6))

python2的写法

 def fun6(a,*args):
     return (a,*args)  #低版本的python,这么写
 print(fun6(1,2,3,4,5,6))

不解包的写法

 def fun6(a,*args):
     return a,args  #这么写,会多一层元组
 print(fun6(1,2,3,4,5,6))

关键字参数 **kwargs
允许用户输入任意个参数,必须是x=y的格式,返回值是字典格式

 def fun9(a,**kwargs):
     return a,kwargs
 print(fun9(1,A='apple',B='book'))

对象的方法

方法就是写在类当中的函数

 str1='hytrevrwce'
 print(str1.index('h'))  #返回某个或某些字符在字符串中的下标,默认从第0位开始查找,也可以从指定的参数位置开始查找
 print(str1.index('h',3))  #找不到时,抛异常
 print(str1.find('h',3))  #找不到时返回-1
 str2='            nht  br  gvfr  bnth  b       g              '
 print(str2.strip())
 str2='********************nht  br  gvfr  bnth  b       g****************'
 print(str2.strip('*'))
 print(str2.replace(' ',''))
 str3='****  * *  ***  **abcde**   ***'
 print(str3.replace('*','').replace(' ',''))
 #根据身份证号码判断是否是南京的身份证
 id_card='32010419990809098X'
 if id_card.startswith('3201'):
     print('南京的身份证')
 #判断身份证最后一位是否是X
 if id_card.endswith('X'):
     print('最后一位是X')
 str9='abcdecfgc'
 print(str9.split('c'))
上一篇下一篇

猜你喜欢

热点阅读