三.函数+对象的方法

1函数

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

def fun1(): #定义函数

print('Hello')

print(fun1()) #调用函数

1.2函数的返回值

def fun2():

return 'Hello'

print(fun2())

1.3函数的形参与实参

def sumdata(a,b): #a,b形式参数,简称形参

return a+b

print(sumdata(1,2)) #实际参数,简称实参

print(sumdata(1)) #实参的数量与形参的数量不相等,则报错

1.4函数的缺省值

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)) #先完整写法,后简略写法,这种写法会报错

1.5函数中可以有多个return

写一个函数,返回某数的绝对值

def jueduizhi(n):

if n>=0:

return n

return 'Hello' #上一行的return语句执行完之后就退出了函数,之后的语句是不可达语句

else:

return -n

print(jueduizhi(6))

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

def sumdata3(a,b):

return a+b,a-b,a*b,a**b

print(sumdata3(3,6))

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

def sumdata3(a,b):

return [a+b,a-b,a*b,a**b] #列表是一个对象,所以返回时,直接返回列表,不需要以元组形式返回

print(sumdata3(3,6))

1.8 print()函数可以传任意个参数

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

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

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

def fun6(a,*args):

return a,*args #这么写,可以少一层元组,这种写法称之为解包.这种写法在低版本的python中会报错

print(fun6(1,2,3,4,5,6))

1.10低版本的python的写法

def fun6(a,*args):

return (a,*args) #低版本的python,这么写

print(fun6(1,2,3,4,5,6))

1.11不解包的写法

def fun6(a,*args):

return a,args #这么写,会多一层元组

print(fun6(1,2,3,4,5,6))

1.12 #关键字参数 **kwargs

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

def fun9(a,**kwargs):

return a,kwargs

print(fun9(1,A='apple',B='book'))

2.对象的方法

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

2.2 index()方法 返回某个或某些字符在字符串中的下标,默认从第0位开始查找,也可以从指定的位置开始查找

str1='hytrevrwce'

print(str1.index('h')) #返回某个或某些字符在字符串中的下标,默认从第0位开始查找,也可以从指定的参数位置开始查找

print(str1.index('h',3)) #找不到时,抛异常

print(str1.find('h',3)) #找不到时返回-1

2.3 strip()方法 去掉字符串前后的空格,或者其他指定字符

str2=' nht br gvfr bnth b g '

print(str2.strip())

str2='********************nht br gvfr bnth b g****************'

print(str2.strip('*'))

2.4 replace(参数1,参数2) 参数1需要替换的字符,参数2 替换后的字符,replace的返回值是字符串,是一个新的字符串对象

print(str2.replace(' ',''))

str3='**** * * *** **abcde** ***'

print(str3.replace('*','').replace(' ',''))

2.5 startswith() 判断字符串是否以某个或某些字符开头

#根据身份证号码判断是否是南京的身份证

id_card='32010419990809098X'

if id_card.startswith('3201'):

print('南京的身份证')

2.6 endswith() 判断字符串是否以某个或某些字符结尾

#判断身份证最后一位是否是X

if id_card.endswith('X'):

print('最后一位是X')

2.7 split() 切割字符串,它有一个参数,以参数作为分割符,将字符串切割为多个值,split()返回值是列表

str9='abcdecfgc'

print(str9.split('c'))

2.8 写一个号段筛选程序,需求如下:

用户从控制台输入一个手机号,判断出运营商(移动(假设号段是130-150)、

联通(假设是151-170)、电信(假设是171-199)),如果用户输入的位数不对,提示用户位数有误;

如果用户输入非数字,提示有非法字符

input1=input('请输入一个手机号')

if not input1.isdigit(): #判断用户输入的是否不是数字,如果不是数字,则提示用户输入的不正确

print('您输入的不是数字')

else:

if len(input1)!=11: #判断手机号的位数是否是11位

print('位数不正确')

else:

num1=int(input1[0:3]) #取得手机号的前三位,并转为int型

if 130<=num1<=150:

print('移动手机号')

elif 151<=num1<=170:

print('联通手机号')

elif 171<=num1<=190:

print('电信手机号')

else:

print('您输入的手机号不属于任何运营商')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值