python-函数

函数基础

定义函数使用def语句,依次写出函数名括号、括号中的参数冒号:

然后在缩进中编写函数体,返回值用return语句返回

计算字符串中某字符个数

 1 def countsubstring(s,ch):         #s和ch为形参
 2     c=0
 3     i=0
 4     while i<len(s):
 5         if s[i]==ch:
 6             c +=1
 7         i +=1
 8     print(c)
 9 str='wujiadongjiangruisuirsuiuigjsjsiuisldjsjeuiui'
10 m=‘i’
11 countsubstring(s,m)      #调用函数传入的参数str和m为实参

计算子串sub个数

 1 def countsubstring(s,sub):
 2     c=0
 3     i=0
 4     while i<=len(s)-len(sub):
 5         if s[i:i+len(sub)]==sub:
 6             c +=1
 7 #                                  print(s[i:i+len(sub)])
 8         i +=1
 9     print(c)
10 str='wujiadongjiangruisuirsuiuigjsjsiuisldjsjeuiui'
11 
12 countsubstring(str,'ui')

 

 1 def myfind(s,sub):
 2     i=0
 3     while i<=len(s)-len(sub):
 4         if s[i:i+len(sub)]==sub:
 5             print(i)
 6             break
 7         i +=1
 8     else:
 9         print('-1')
10 
11 str='wujiadong'
12 sub='on'
13 myfind(str,sub)

找最大值

 1 li=[111,2,3,7,9,76,98,23,45]
 2 def myfindmax(M):
 3     i=0
 4     max=li[0]
 5     while i<len(li):
 6         if max<li[i]:
 7            max=li[i]
 8 
 9         i +=1
10     print(max)
11 myfindmax(li)

找第二大值

#这种情况两个最大都相等时是错误的
1
li=[111,222,333,7,9,765,98,23,45] 2 def max2(t): 3 max1=t[0] 4 max2=t[0] 5 for x in t: 6 if x >max1: 7 max2=max1 8 max1=x 9 else: 10 if x >max2: #这里添加上条件x!=max1 就可避免 11 max2=x 12 print('max1',max1) 13 print('max2',max2) 14 max2(li)

 删除某个值

 #有bug,有重复的值不能删除

1
li=[1,2,3,4,5,6,7,8,9] 2 def delvalue(t): 3 global li #没懂为什么一定要加这个 4 i=0 5 while i<len(li): 6 if li[i]==t: 7 left=li[:i] 8 print(left) 9 right=li[i+1:] 10 # print(i) 11 li=left+right 12 i +=1 13 14 delvalue(6)

删除所有的值

 

posted @ 2015-11-24 21:43  邬家栋  阅读(322)  评论(0编辑  收藏  举报