练习题
1、整理函数相关知识点,写博客
2、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
第一种
def func1(argv):
l1=[]
for i in range(len(argv)):
if i %2 == 1:
l1.append(argv[i])
return(l1)
print(func1([1,2,3,4,5,6,78,9]))
第二种
def func1(argv):
return argv[1::2]
print(func1([1,2,3,4,5,6,78,9]))
3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
def func2(argv):
return True if len(argv)>5 else False
print(func2('334456778'))
def func2(argv):
return len(argv)>5
print(func2('334456778'))
4、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def func3(argv):
return argv[0:2] if len(argv)>2 else argv
print(func3([11,22,3,4,5,6,7]))
def func3(argv):
return argv[0:2]
print(func3([11,22,3,4,5,6,7]))
5、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数,并返回结果。
def func4(argv):
dic={'digit':0,'alpha':0,'space':0,'other':0}
for i in argv:
if i.isdigit():
dic['digit']+=1
elif i.isalpha():
dic['alpha']+=1
elif i.isspace():
dic['space']+=1
else:
dic['other']+=1
return'digit%d,alpha%d,space%d,other%d' % (dic['digit'],dic['alpha'],dic['space'],dic['other'])
print(func4('dkj'))
7、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表
def func5(argv):
for i in argv:
argv[i]=argv[i][0:2]
return argv
print(func5({"k1": "v1v1", "k2": [11,22,33,44]}))
8、写函数,接收两个数字参数,返回比较大的那个数字。
def func5(num1,num2):
return num1 if num1 > num2 else num2
num1 = input('请输入第一个数字:').strip()
num2 = input('请输入第二个数字:').strip()
print(func5(num1,num2))
9、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(进阶)。
10、写一个函数完成三次登陆功能,再写一个函数完成注册功能(进阶)
def register(*args, **kwargs): while True: with open('register_msg', encoding='utf-8') as f1: username = input('请输入用户名:').strip() for i in f1: li = i.strip().split() if username == li[0] or username == ' ': print('已存在,请更换用户名') break else: password = input('请输入密码').strip() with open('register_msg', encoding='utf-8', mode='a') as f2: f2.write(' {} {}'.format(username, password)) print('注册成功') return def login(*args, **kwargs): with open('register_msg', encoding='utf-8') as f1: count = 1 while count <= 3: username = input('请输入用户名:').strip() password = input('请输入密码:').strip() for i in f1: li = i.strip().split() if (username == li[0] or username == '') and password == li[1]: print('登陆成功') break else: print('用户名或密码错误,您已使用%d次机会,剩余%d次机会' % (int(count), int(3 - count))) count += 1 while True: choice = input('请选择注册或者登陆:1注册,2登陆,按其他键退出').strip() if choice == '1': register() continue elif choice == '2': login() continue else: print('退出成功') break
明日默写。
①,return的作用。
②,传参的几种方法,每个都简单写一个代码。
如,实参,按位置传参。
def func(x,y):
Pass
func(‘a’,’b’)