1、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数
def func1(seq1):
dic={
'num':0,
'string':0,
'space':0,
'other':0
}
for line in seq1:
if line.isdigit():
dic['num'] += 1
elif line.isalpha():
dic['string'] += 1
elif line.isspace():
dic['space'] += 1
else:
dic['other'] += 1
return dic
print(func1('dfasfdaslfkjl 12312 @@!#!@#'))
View Code
2、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
def func2(seq2):
if len(seq2) > 5:
return True
return False
print(func2([1,2,3,4,5,6]))
View Code
3、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def func3(seq3):
if len(seq3) > 2:
return seq3[:2]
print(func3([1,2,3,4,5]))
View Code
4、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
def func4(seq4):
return seq4[::2]
print(func4([1,2,3,4,5,6]))
View Code
5、写函数,检查字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表
def func(seq):
for k,v in seq.items():
if len(v) > 2:
seq[k] = v[:2]
return seq
dic = {"k1": "v1v1", "k2": [11, 22, 33, 44]}
print(func(dic))
View Code
6.写出上述代码的执行流程
x=1
def f1():
def f2():
print(x)
return f2
x=100
def f3(func):
x=2
func()
x=10000
f3(f1())
View Code
调用f3,先执行f1返回f2内存地址当参数传给f3,执行f3,调用f2,输出x 因为调用时x=10000 所以输出10000
比较: a = [1,2,3] 和 b = [(1),(2),(3) ] 以及 b = [(1,),(2,),(3,) ] 的区别?
a和b值相等,id不同
c是元组
a = [1,2,3]
b = [(1),(2),(3) ]
print(a == b)
print(a is b)
View Code
如何实现[‘1’,’2’,’3’]变成[1,2,3] ?
l = ['1','2','3']
new_l = []
for line in l:
new_l.append(int(line))
print(new_l)
l = ['1','2','3']
for k,v in enumerate(l):
l[k] = int(v)
print(l)
View Code
如何实现 “1,2,3” 变成 [‘1’,’2’,’3’] ?
str1 = '1,2,3'
l = str1.split(',')
print(l)
View Code