三:python核心知识点
程序员文章站
2024-03-24 10:16:28
...
1、学习函数的知识 Done
2、神秘的字符串操作
3、python中神秘的六剑客
4、面试python真题实践2
函数
'''
使用函数的好处
减少重复代码的编写
方便复用
方便代码的使用和维护
举例:统计一句话中某个字母的数量
I a good good girl. 现在想统计这句话中o字母的数量
'''
s='I a good good girl. ' num=0 for i in s: if i=='o': num+=1 print(num) num=0 for i in s: if i=='g': num+=1 print(num) def count_letter(s,letter): num=0 for i in s: if i==letter: num+=1 return num s='I a good good girl. ' print("这句话中一共有%s个o字母" %count_letter(s,'o')) print("这句话中一共有%s个g字母" %count_letter(s,'g'))
def func(): #没有任何参数 pass #pass相当于占位置,表示函数的内部什么都不做 #也没有任何返回值 func() #这样的函数没有实际意义,什么都没有执行 def func(): #没有任何参数 print("hello,world") #打印一句话 func() def func(s): #传入一个参数 print(s) #打印一句话 func("你好") func("我是一名中学生") func("我希望到外面的世界走一走") def add(a,b): #传入两个参数 print(a+b) #如果函数没return 语句,自动会加一个return None add(1,1) add(2,3) result=add(5,9) print("result:",result) def add(a,b): #传入两个参数 print(a+b) return a+b add(1,1) add(2,3) result=add(5,9) print("result:",result) def add(a,b): if isinstance(a,(int,float)) and isinstance(b,(int,float)): #容错考虑 return a+b else: return("%s和%s中至少一个不是数字类型" %(a,b)) result=add(5,'a') print("result:",result) def add(a,b): try: return a+b #当类型错误时,会跑出异常,except会拦截异常,执行except下面的语句 except: print("%s和%s中至少一个不是数字类型" %(a,b)) return None result=add(5,'cc') print("result:",result) def add(*arg): #可变参数, 元组 result=0 print(arg,type(arg)) for i in arg: result+=i return result result=add(1,2,3,4) print("result: " , result) def add(**kw): #可变参数, 字典 result=0 print(kw,type(kw)) for value in kw.values(): result+=value return result result=add(a=1,b=2,c=3,d=4) print("result: " , result) def add(*arg,**kw): #可变参数, 混用 result=0 print(kw,type(kw)) for value in kw.values(): result+=value for i in arg: result+=i return result result=add(10,20,30,a=1,b=2,c=3,d=4) print("result: " , result) def add(x,y,*arg,**kw): #可变参数, 混用 result=0 print(kw,type(kw)) for value in kw.values(): result+=value for i in arg: result+=i result+=x result+=y return result result=add(99,88,10,20,30,a=1,b=2,c=3,d=4) print("result: " , result)
练习:
''' 求两数字最大的 ''' def get_bigger(a,b): if not (isinstance(a,(int,float)) and isinstance(b,(int,float))): return None elif a>b: return a elif a==b: return a else: return b print(get_bigger(1,'2')) print(get_bigger('s',2)) print(get_bigger('s','2')) print(get_bigger(1,2)) print(get_bigger(1,1)) print(get_bigger(2,1)) ''' 求三个数字最大的 ''' def get_bigger(a,b,c): max=a if not (isinstance(a,(int,float)) and isinstance(b,(int,float)) and isinstance(c,(int,float))): return None elif a>b: max=a elif a==b: max=a else: max=b if max>c: return max elif max==c: return c else: return c print(get_bigger(1,'2','s')) print(get_bigger(1,2,3)) print(get_bigger(2,1,4)) print(get_bigger(5,1,2))
python中神秘的六剑客
map
filter
reduce
推导列表
lambda
切片
map
'''
map 小写字母转换成大写字母
'''
def convert(word):
new_word=''
for i in word:
new_word+=chr(ord(i)-32)
return new_word
word='abcde'
print(convert(word))
def convert(letter):
return chr(ord(letter)-32)
print("".join(list(map(convert,'zhi')))) #map可以逐个把z\h\i代入函数convert
filter
'''
filter
'''
def get_upper_letter(letter):
if letter>='A' and letter <='Z':
return True
return False
print(list(filter(get_upper_letter,'AaBbCc')))
#6个字母,每个字母会分别带入到一次get_upper_letter函数中,如果函数返回True,这个字母就会保存在list中,否则就过滤掉这个字母