oldboy s21day14装饰器模块和面试题
# 1.为函数写一个装饰器,在函数执行之后输入 after
"""
def wrapper(arg):
def inner(*args):
arg()
print('after')
return inner @wrapper
def func():
print(123) func()
""" # 2.为函数写一个装饰器,把函数的返回值 +100 然后再返回。
'''
def wrapper(arg):
def inner(*args):
v = arg() + 100
return v
return inner @wrapper
def func():
return 7 result = func()
print(result)
''' # 3.为函数写一个装饰器,根据参数不同做不同操作。
#
# flag为True,则 让原函数执行后返回值加100,并返回。
# flag为False,则 让原函数执行后返回值减100,并返回。
'''
def x(flag):
def inner(arg):
def class3():
if flag:
return arg()+100
return arg()-100
return class3
return inner @x(True)
def f1():
return 11 @x(False)
def f2():
return 22 r1 = f1()
r2 = f2()
print(r1,r2)
''' # 4.写一个脚本,接收两个参数。
# 第一个参数:文件
# 第二个参数:内容
# 请将第二个参数中的内容写入到 文件(第一个参数)中。
# 执行脚本: python test.py oldboy.txt 你好
'''
def func(file, content):
with open(file, mode='w', encoding='utf-8') as f:
f.write(content) func('test.py','123')
''' # 5.递归的最大次数是多少?
'''
1000
''' # 6.看代码写结果
'''
print("你\n好") # 你 换行 好
print("你\\n好") # 你\n好
print(r"你\n好") # 你\n好
''' # 7.写函数实现,查看一个路径下所有的文件【所有】。
'''
import os v = os.walk(r'D:\homework\day14')
for a,b,c in v:
for i in c:
path = os.path.join(a,i)
print(path)
''' # 8.写代码,请根据path找到code目录下所有的文件【单层】,并打印出来。
'''
import os v = os.listdir("..\day14")
for i in v:
print(i)
''' # 9.
# 9.1斐波那契数列
'''
lst = [1,1,]
count = 2
while 1:
a = lst[-1] + lst[-2]
if a < 4000000:
lst.append(a)
count += 1
else:
break print(lst,count)
''' # 9.2
'''
dic_a = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'f': 'hello'}
dic_b = {'b': 3, 'd': 5, 'e': 7, 'm': 9, 'k': 'world'}
for i in dic_b:
if i in dic_a:
dic_a[i] = dic_a[i] + dic_b[i]
else:
dic_a[i] = dic_b[i] print(dic_a)
''' # 10.
'''
[10,'a']
[123]
[10,'a']
''' # 11.
# 11.1 A,B,C # 11.2
'''
tupleA = ('a', 'b', 'c', 'd', 'e')
tupleB = (1, 2, 3, 4, 5)
dic = {}
for i in range(len(tupleA)):
dic[tupleA[i]] = tupleB[i]
print(dic)
''' # 11.3
'''
import sys
print(sys.argv)
print(len(sys.argv))
print(sys.argv[0])
''' # 11.4
'''
ip = '192.168.0.100'
lst = [int(i) for i in ip.split('.')]
print(lst)
''' # 11.5
'''
Alist = ['a', 'b', 'c']
s = ','.join(Alist)
print(s)
''' # 11.6
'''
a = StrA[-2:]
b = StrA[1:3]
''' # 11.7
# Alist = [1, 2, 3, 1, 3, 1, 2, 1, 3]
# 方法一
'''
a = Alist[:3]
print(a)
'''
# 方法二
'''
b = set(Alist)
print(list(b))
''' # 11.8
'''
import os
def func(path):
for a,b,c in os.walk(path):
for i in c:
ret = os.path.join(a,i)
print(ret) func(r'D:\homework')
''' # 11.9
for a in range(1, 10000):
lst = []
for b in range(1, a):
if a % b == 0:
lst.append(b)
if sum(lst) == a:
print(a)
# 11.10进程池 # 11.11
'''
list1 = []
list2 = []
''' # 11.12
with open('etl_log.txt','r',encoding='utf-8') as f:
for line in f:
print(line)
oldboy s21day14装饰器模块和面试题的更多相关文章
- oldboy s21day13装饰器和推导式
#!/usr/bin/env python# -*- coding:utf-8 -*- # 2.请为 func 函数编写一个装饰器,添加上装饰器后可以实现:执行func时,先输入"befor ...
- python functools.wraps装饰器模块
# -*-coding=utf-8 -*-#实现一个函数执行后计算执行时间的功能 __author__ = 'piay' import time, functools def foo(): ''' 定 ...
- Python_oldboy_自动化运维之路_函数,装饰器,模块,包(六)
本节内容 上节内容回顾(函数) 装饰器 模块 包 1.上节内容回顾(函数) 函数 1.为什么要用函数? 使用函数之模块化程序设计,定义一个函数就相当于定义了一个工具,需要用的话直接拿过来调用.不使用模 ...
- python基础编程: 函数示例、装饰器、模块、内置函数
目录: 函数示例 装饰器 模块 内置函数 一.函数示例: 1.为什么使用函数之模块化程序设计: 不使用模块程序设计的缺点: 1.体系结构不清晰,可主读性差: 2.可扩展性差: 3.程序冗长: 2.定义 ...
- Python之路【第五篇】: 函数、闭包、装饰器、迭代器、生成器
目录 函数补充进阶 函数对象 函数的嵌套 名称空间与作用域 闭包函数 函数之装饰器 函数之可迭代对象 函数之迭代器 函数之生成器 面向过程的程序设计思想 一.函数进阶之函数对象 1. 函数对象 秉承着 ...
- Python装饰器实现几类验证功能做法
最近新需求来了,要给系统增加几个资源权限.尽量减少代码的改动和程序的复杂程度.所以还是使用装饰器比较科学 之前用了一些登录验证的现成装饰器模块.然后仿写一些用户管理部分的权限装饰器.比如下面这种 de ...
- day13 装饰器与语法糖
day13 装饰器与语法糖 一.装饰器 1.什么是装饰器 装饰器就是装饰别人的工具,具体是指为被装饰者添加新功能 装饰器->函数 被装饰者->函数 2.为何要用装饰器 装饰器的核心思想:( ...
- oldboy s21day15模块装饰器及其他应用
#!/usr/bin/env python# -*- coding:utf-8 -*- # 1.sys.path.append("/root/mods")的作用?"&qu ...
- python学习day14 装饰器(二)&模块
装饰器(二)&模块 #普通装饰器基本格式 def wrapper(func): def inner(): pass return func() return inner def func(): ...
随机推荐
- JS的正则表达式及回文
function palindrome(str) { str = str.replace(/\s/g,"").replace(/[^a-zA-Z0-9]/g,"" ...
- mysql8.0绿色版安装及mysqldump备份
1.下载mysql绿色版压缩包https://dev.mysql.com/downloads/mysql/ 2.解压到安装目录后,在根目录创建data文件夹 3.把mysql下的bin目录添加到环境变 ...
- CMake与Make最简单直接的区别 [转]
写程序大体步骤为: 1.用编辑器编写源代码,如.c文件. 2.用编译器编译代码生成目标文件,如.o. 3.用链接器连接目标代码生成可执行文件,如.exe. 但如果源文件太多,一个一个编译时就会特别麻烦 ...
- vue 前端将时间戳格式化
转自西风XF : https://blog.csdn.net/qq_36242361/article/details/79143050 后端传过来的时间数据是时间戳的形式,前端需要进行格式化 1. 新 ...
- flutter Provide 状态管理篇
Provide是Google官方推出的状态管理模式.官方地址为: https://github.com/google/flutter-provide 现在Flutter的状态管理方案很多,redux. ...
- 解决使用Spring Boot、Multipartfile实现上传提示无法找到文件的问题
前言 SpringBoot使用MultiPartFile接收来自表单的file文件,然后进行服务器的上传是一个项目最基本的需求,我以前的项目都是基于SpringMVC框架搭建的,所以在使用Spring ...
- LODOP打印当前日期时间的方法
JS方法直接获取.之前有个详细介绍的博文:LODOP打印用JS获取的当前日期本文也再演示一下,详细介绍见上面链接的博文,该方法此文不做详细介绍. 本文有三段:1.JS获取日期,2,.LODOP的FOR ...
- Leetcode 4
Array Easy 1. 268. Missing Number 先对数组求和,用 0 ~ n本该有的和减去当前sum得到缺失的数字. class Solution { public int mis ...
- 消息队列与Kafka
2019-04-09 关键词: 消息队列.为什么使用消息队列.消息队列的好处.消息队列的意义.Kafka是什么 本篇文章系本人就当前所掌握的知识关于 消息队列 与 kafka 知识点的一些简要介绍,不 ...
- 【LOJ6482】LJJ 爱数数 数论
题目大意 给你 \(n\),求 \[ \sum_{a=1}^n\sum_{b=1}^n\sum_{c=1}^n[\frac{1}{a}+\frac{1}{b}=\frac{1}{c}][\gcd(a, ...