1.写函数计算传入数字参数的和(动态传参)
1
2
3
4
|
def func_sum(x, y): return x + y #或 lambda x,y:x + y |
2.写函数用户传入修改的文件名
用户传入修改的文件名且与要修改的内容,执行函数,完成整个文件的批量修改操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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.写函数检查用户传入的对象
用户对象:(字符串、列表、元组)的每一个元素是否含有空内容。
1
2
3
4
5
6
7
8
9
10
11
12
|
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,那么仅保留前两个长度的内容,并将新内容返回给调用者。
1
2
3
4
5
6
|
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’)]
1
2
3
4
5
6
|
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’:最小值}
1
2
3
4
5
|
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的阶乘
1
2
3
4
5
6
7
8
9
|
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.编写装饰器
为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
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) |
到此这篇关于Python函数使用的相关练习题分享的文章就介绍到这了,更多相关Python练习题内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.51cto.com/u_14246112/5293222