1.写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数
def zifu(zfc):
#先定义他们的个数都为0
num_num = 0
letter_num = 0
space_num = 0
other_num = 0
#判断类型,累计加1
for i in zfc:
if i.isalpha():
letter_num += 1
elif i.isdigit():
num_num += 1
elif i.isspace():
space_num += 1
else:
other_num += 1
return (num_num,letter_num,space_num,other_num)
ret = zifu(input('input your str:'))
print(ret)
2.写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
temp = [11,33,455,'das','4321','df']
# temp = 123
def panduan(s):
#用isinstance方法判断传入的数值是不是 字符串、列表、元组类型,是的话计算他的长度
if isinstance(temp,str) or isinstance(temp,list) or isinstance(temp,tuple):
return True if len(s) > 5 else False
return None
ret = panduan(temp) #获取函数执行后的返回值
if ret == True:
print('您传入的对象长度大于5')
elif ret == None:
print('您传入的对象不是字符串、列表或元组')
else:
print('您传入的对象长度不足5')
3.写函数,检查用户传入的对象字符串的每一个元素是否含有空内容。
s = 'ddd sajio ido'
def has_space(args):
ret = True
for i in args: #循环传入参数的每一个元素,判断是否有空格
#if ' ' in i:
if i.isspace():
ret = False #如果有空格返回False,并退出循环
break
return ret
result = has_space(s)
print(result)
4.写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def lis(args):
if len(args) > 2:
return args[0:2] #如果此处执行下面的return args 不会执行,因为在函数中如果return执行,那么return以后的都不执行
return args
li = ['alex',19,'durand','kevin','jin']
ret = lis(li)
print(ret)
#上述题目另一种做法
def lis(args):
if len(args) > 2:
del args[2:]
li = ['alex',19,'durand','kevin','jin']
lis(li)
print(li)
#函数传参的时候,传的是引用
def func(args):
args.append(123) #这里的追加还是在li列表的上追加
li = [11,22]
func(li)
print(li)
def func(args):
args=123 #这里是给arg重新赋值,在内存中arg和li不是指向同一个值,而是重新创建了一个值
li = [11,22]
func(li)
print(li)
5.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
li = [11, 22, 33, 44]
new_li = []
def odd(args):
num = len(args)
for i in range(0,num): #循环次数为列表的长度
if i % 2 != 0: #判断是否为奇数位
# print(i)
new_li.append(args[i]) #把去到的奇数位索引对应的元素追加到新列表中
return new_li
ret = odd(li)
print(ret)
6.写函数,检查传入字典的每一个value的长度, 如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
PS: 字典中的value只能是字符串或列表
#将取值赋值给一个新的字典,会在内存中又重新创建一份:
dic = {"k1": "v1v1", "k2": [11, 22, 33, 44],'k3':'12'}
def jc(arg):
ret = {}
for key,value in arg .items():
if len(value) > 2:
ret[key] = value[0:2] #value长度大于2的,用切片取value前两位
else:
ret[key] = value #长度不大于2的,值不变
return ret
result = jc(dic)
print(result)
#修改原来字典数据:
dic = {"k1": "v1v1", "k2": [11, 22, 33, 44],'k3':'12'}
def jc(arg):
ret = {}
for key,value in arg .items():
if len(value) > 2:
arg[key] = value[0:2] #value长度大于2的,用切片取value前两位
else:
arg[key] = value #长度不大于2的,值不变
return ret
jc(dic)
print(dic)
评论
发表评论