python函数作业2
1.写函数,检查获取传入列表对象的所有奇数位索引对应的元素,并将其作为新列表返回
def func(l): return l[1::2] # 切片:列表、元祖、字符串等序列类的对象“隔几个”的取值,就用切片 print(func([1,2,3,4,5])) #[2,4]
2.写函数,判断用户传入的对象(字符串、列表、元祖)长度是否大于5
def func(x): return len(x)>5 print(func('abc')) #False
3.写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容并返回
# def func(l): # if len(l)>2: # return l[:2] # print(func([1,2,3,4,5])) # #[1,2] # print(func([1,2])) #None #当l长度小于等于2时结果是None #切片 当对象长度小于切片长度时,结果是对象本身而不是报错,代码可以简化且没有上面输出None的问题: def func(l): return l[:2] print(func([1,2,3,4])) #[1,2]
4.写函数,计算传入字符串中【数字】、【字母】、【空格】以及【其他】的个数,并返回结果
# def func(s): # num=0 #计算数字个数 # alpha=0 #字母 # space=0 #空格 # others=0 #其他 # for i in s: # if i.isdigit(): # num+=1 # elif i.isalpha(): # alpha+=1 # elif i.isspace(): # space+=1 # else:others+=1 # return num,alpha,space,others # print(func('abc 12322 @ 12as')) #用户看不懂输出内容的含义,只能看源码才能知道各数字的含义,体验不好,代码改为用字典输出: def func(s): dic = {'num': 0, 'alpha': 0, 'space': 0, 'others': 0} for i in s: if i.isdigit(): dic['num'] += 1 #键对应的值 elif i.isalpha(): dic['alpha'] += 1 elif i.isspace(): dic['space'] += 1 else: dic['others'] += 1 return dic print(func('abc 12322 @ 12as'))
5.写函数,检查用户传入的对象(字符串、列表、元祖)的每个元素是否含有空内容,并返回结果
这里的空内容值:‘avsd asdfgh’(字符串中的空格)
[1,2,3,4,'',[],(),'asd fdgg',' ',[''](列表中的元素是空字符串,空列表,空元祖;但元素是字符串时,里面有空格的不算;元素是字符串,里面是空格也不算,最后面两个元素都不算)
元祖同理)
# 非空对象(字符串、列表、元祖)布尔值为True # # 空对象(字符串、列表、元祖)布尔值为False def func(x): if not x:return True #输入的内容是空对象时,直接返回True elif type(x) is str: for i in x: if i==' ': return True elif type(x) is list or type(x) is tuple: for i in x: if not i:return True #i为空对象时为False,not i为True print(func('1 23'),func(['a',[]])) #True,True
6.写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回
def func(dic): for i in dic: #当for in循环字典时,i是字典的键 dic[i] = dic[i][:2] # return dic #注意return不要写到for循环里面,否则就只有第一个元素有变化了 return dic print(func({'k1':'abc','k2':[11,22,22,33,44],'k3':"shdhgf",'k4':'a'})) #结果:{'k1': 'ab', 'k2': [11, 22], 'k3': 'sh', 'k4': 'a'}
7.写函数,接收两个数字,返回大的那个(三元运算)
def func(a,b): return a if a>b else b print(func(1,5)) # 三元运算结构: # 变量(接收结果,可以不写) = 为真时的结果 if 判定条件 else 为假时的结果 #输出结果:5

浙公网安备 33010602011771号