练习1:写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
def hanshu(can):
if len(can)>5:
return '大于5!'
else:
return '不大于5!'
a1=[1,2,3]
a2='sssdgfhgj'
a3=('a',1,3,[])
print(len(a2))
print(hanshu(a1))
print(hanshu(a2))
print(hanshu(a3))
运行结果:
练习2:写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。
def func1(p,q,i):
if p=="":
print('字符串有')
if q==[]:
print('列表有')
if i==():
print('元组有')
r=func1("123",[11,22],())
运行结果:
练习3:写函数,接收两个数字参数,返回比较大的那个数字。
def func(a,b):
if a>b:
return a
else:
return b
print(func(1,5))
运行结果:
练习4:写函数,检查传入列表的长度,如果大于2,那么仅仅保留前两个长度的内容,并将新内容返回给调用者。
def func(l):
return l[:2]
print(func([1,2,3,4]))
运行结果:
练习5:写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新的列表返回给调用者。
def func1(p,q):
result=[]
for a1 in range(len(p)):
if a1 % 2==1:
result.append(p[a1])
for a2 in range(len(q)):
if a2 % 2 ==1:
result.append(a2)
print(result)
r=func1([11,22,33],(11,22,33))
运行结果:
练习6:编写一个名为collatz()的函数,它有一个名为number的参数,如果参数是偶数,那么collatz()就打印出number//2,如果number是奇数,collatz()就打印3*number+1。
def collatz(number):
print(number//2 if number %2 ==0 else 3 * number +1)
collatz(4)
运行结果:
练习7:编写一个函数cacluate, 可以接收任意多个数,返回的是一个元组。元组的第一个值为所有参数的平均值, 第二个值是大于平均值的所有数。
def cacluate(*args):
avg = sum(args) / len(args)
up_avg = []
for item in args:
if item > avg:
up_avg.append(item)
return avg, up_avg
print(cacluate(1, 2, 3, 4, 5, 6))
运行结果:
练习8:编写一个函数, 接收字符串参数, 返回一个元组,‘ehllo WROLD’,元组的第一个值为大写字母的个数, 第二个值为小写字母个数。
def fun(str):
upper=lower= 0 #定义一个计数器
for i in str:
if i.isupper():
upper += 1
elif i.islower():
lower += 1
else:
continue
return upper, lower
print(fun('ehllo WROLD'))
运行结果:
练习9:计算传入字符串的【数字】【字母】【空格】【其他】的个数,用函数写 。
def num(str1):
a = b = c = d = 0
for i in str1:
if i.isdigit(): #检查字符串是否只由数字组成
a += 1
elif i.isalpha(): #检查字符串是否只由字母组成
b += 1
elif i.isspace(): #检查字符串是否只由空格组成
c += 1
else:
d += 1
return (a,b,c,d)
r=num("chen ! 12345")
print(r)
运行结果:



