0
点赞
收藏
分享

微信扫一扫

Python关于函数使用相关的练习题


1.写函数,计算传入数字参数的和。(动态传参)

def func_sum(x, y):
return x + y

lambda x,y:x+y

2.写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作

import os
def modify_file(file_name,content,newstr):
new_file_name = '%sfile_name' %'new.'
f_new = open(new_file_name, 'w')
if os.path.exists(file_name):
with open(file_name,'r+') as f:
for line in f:
if content in line:
line = line.replace(content, newstr)
f_new.write(line)
f_new.close()
os.rename(new_file_name, file_name)
else:
exit('file is not exist !!!')

3.写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。

def isNull(p_obj):
for item in p_obj:
if item.strip() == '':
return True
else:
return False

a = [' ','1','2']
b = ['5','1','2']
c = 'ab c'
print(isNull(a))
print(isNull(c))
print(isNull(b))

4.写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

def two_len(**kwargs):

for k, v in kwargs.items():

if len(v) > 2:

kwargs[k] = v[:2]

return kwargs

print(two_len(x='12', y='345', c='byw'))

5.闭包

内部函数包含对外部作用域而非全局作用域变量的引用,该内部函数称为闭包函数

6.写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组

例如:[(‘红心’,2),(‘草花’,2), …(‘黑桃A’)]

def cards():
type_li = ['红心', '草花', '黑桃','梅花']
num = list(range(2, 11))
num.extend('JQKA')
return [(x, y) for x in type_li for y in num ]

print(len(cards()), cards())

7.写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值}

def max_min_dic(*args):
min_v = min(args)
max_v = max(args)
return {'max':max_v,'min':min_v}

print(max_min_dic(2,3,6,7,9))

8.写函数,传入一个参数n,返回n的阶乘

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from functools import reduce
def factorial(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return reduce(lambda x, y: x*y ,list(range(1, n)))
print(factorial(5))

9.编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码

user_dic={
'user':None,
'is_authenticate':False
}

def read_file():
with open('USER.TXT','r') as f:
s = f.read().strip(',')
user_info = eval(s)
return user_info

def auth(user_info):
username = input("account:").strip()
password = input("password:").strip()
print(user_info)
if username in user_info['name'] and password in user_info['password']:
print("success")
user_dic['user'] = username
user_dic['is_authenticate'] = True
return user_dic
else:
print("Failure")
return ''
def login_required(func):

def inner(*args, **kwargs):

if args[0].get('is_authenticate'):

ret = func(*args, **kwargs)

else:

exit('need authenticate')

return ret

return inner

@login_required

def print_info(acc_data):

print('进入')

user_info = read_file()

user_data = auth(user_info)

print(user_data)

print_info(user_data)



举报

相关推荐

0 条评论