5.7 案例精选
例 5-1:编写函数计算圆的面积。
>>> from math import pi as PI
>>> def CircleArea(r):
... if isinstance(r,(int,float)): #确保接收的参数为数值
... return PI*r*r
... else:
... print('You must give me an integer or float as radius.')
...
>>> print(CircleArea(3))
28.274333882308138
例 5-2:编写函数,接受任意多个实数,返回一个元组,其中第一个元素为所有参数的平均值,其他元素为所有参数中大于平均值的实数。
>>> def demo(*para):
... avg = sum(para)/len(para)
... g = [i for i in para if i>avg]
... return (avg,)+tuple(g)
...
>>> print(demo(1,2,3,4))
(2.5, 3, 4)
例 5-3:编写函数,接受字符串参数,返回一个元组,其中第一个元素为大写字母的个数,第二个元素为小写字母个数。
>>> def demo(s):
... result = [0,0]
... for ch in s:
... if 'a'<=ch<='z':
... result[1]+=1
... elif 'A'<=ch<='Z':
... result[0]+=1
... return tuple(result)
...
>>> print(demo('aaabbbbC'))
(1, 7)
例 5-4:编写函数,接受包含20个整数的列表lst和一个整数k作为参数,返回新列表。处理规则为:将列表lst中下标k之前的元素逆序,下标k之后的元素逆序,然后将整个列表lst中的所有元素再逆序。
>>> def demo(lst,k):
... x = lst[:k]
... x.reverse()
... y = lst[k:]
... y.reverse()
... r = x+y
... r.reverse()
... return r
...
>>> lst = list(range(1,21))
>>> print(demo(lst,5))
[6, 7, 8, 9, 10,