#!/usr/bin/env python
# -*- coding:utf-8 -*- # 1.sys.path.append("/root/mods")的作用?
"""
增加导入模块的查找路径
""" # 2.字符串如何进行反转?
'''
[::-1]
''' # 3.不用中间变量交换a和b的值。
'''
a = 1
b = 2
a, b = b, a
print(a, b)
''' # 4.*args和**kwargs这俩参数是什么意思?我们为什么要用它。
'''
*args接收多个位置参数,**kwargs接收多个关键字参数.
func(*args,**kwargs)能接收任意类型任意个参数.
''' # 5.函数的参数传递是地址还是新值?
'''
地址
''' # 6.看代码写结果:
'''
my_dict = {'a': 0, 'b': 1} def func(d):
d['a'] = 1
return d func(my_dict)
my_dict['c'] = 2
print(my_dict) # {'a':1,'b':1,'c':2}
''' # 7.什么是lambda表达式
'''
匿名函数,能一行表达一个简单的函数
lambda x : y
x为传入参数,':'后面为返回值
''' # 8.range和xrang有什么不同?
'''
在py2里,range(x)立即生成列表,xrange(x)不立即创建,边循环边创建.
在py3里,range即为py2的xrange,没有xrange
''' # 9."1,2,3" 如何变成 ['1','2','3',]
'''
s = "1,2,3"
a = s.split(',')
print(a)
''' # 10.['1','2','3'] 如何变成 [1,2,3]
'''
lst = ['1','2','3']
new_lst = [int(i) for i in lst]
print(new_lst)
''' # 11.def f(a,b=[]) 这种写法有什么陷阱?
'''
b默认值为一个空列表,列表创建在函数内存之外,易被其他改动.
''' # 12.如何生成列表 [1,4,9,16,25,36,49,64,81,100] ,尽量用一行实现。
'''
lst = [i*i for i in range(1,11)]
print(lst)
''' # 13.python一行print出1~100偶数的列表, (列表推导式, filter均可)
'''
print([i for i in range(1, 101) if i % 2 == 0]) print(list(filter(lambda i: i % 2 == 0, [i for i in range(1, 101)])))
''' # 14.把下面函数改成lambda表达式形式.
#
# def func():
# result = []
# for i in range(10):
# if i % 3 == 0:
# result.append(i)
# return result
'''
ret = lambda: [i for i in range(10) if i % 3 == 0]
print(ret())
''' # 15.如何用Python删除一个文件?
'''
# 删除文件
import os
os.remove(path) # 删除目录
import shutil
shutil.rmtree(path)
''' # 16.如何对一个文件进行重命名?
'''
import os os.rename(filename, newname)
''' # 17.python如何生成随机数?
'''
import random a = random.randint(1, 10)
print(a)
''' # 18.从0-99这100个数中随机取出10个数,要求不能重复,可以自己设计数据结构。
'''
import random ret = set()
while len(ret) < 10:
a = random.randint(0,99)
ret.add(a)
print(ret)
''' # 19.用Python实现 9*9 乘法表 (两种方式)
# 方法一
'''
for a in range(1, 10):
for b in range(1, a + 1):
if a >= b:
print('%s*%s=%s' % (b, a, a * b),end=' ')
print()
''' # 方法二
'''
a = 1
while a < 10:
b = 1
while b <= a:
print('%s*%s=%s' % (b, a, b * a), end=' ')
if a == b:
print()
b += 1
a += 1
''' # 20.请给出下面代码片段的输出并阐述涉及的python相关机制。
'''
def dict_updater(k, v, dic={}):
dic[k] = v
print(dic) dict_updater('one', 1) # one给k,1给v,输出dic={'one':1}
dict_updater('two', 2) # two给k,2给v,输出dic={'one':1,'two':1}
dict_updater('three', 3, {}) # three给k,3给v,空字典给dic,输出dic={'three':3}
# 形参为可变类型(字典,元组)时会在创建参数的外部创建元素,下次使用还会使用同一个元素.
''' # 21.写一个装饰器出来。
'''
def wrapper(arg):
def inner(*args,**kwargs):
return arg(*args,**kwargs)
return inner
''' # 22.用装饰器给一个方法增加打印的功能。
'''
def wrapper(arg):
def inner(*args,**kwargs):
return print(arg(*args,**kwargs))
return inner @wrapper
def func():
a = 123 func()
''' # 23.请写出log实现(主要功能时打印函数名)
'''
def log(arg):
def inner():
print('call', arg.__name__+'()')
return arg()
return inner @log
def now():
print("2013-12-25") now() # 输出
# call now()
# 2013-12-25
''' # 24.向指定地址发送请求,将获取到的值写入到文件中。
'''
import requests # 需要先安装requests模块:pip install requests
import json response = requests.get('https://www.luffycity.com/api/v1/course_sub/category/list/')
print(response.text)
new = json.loads(response.text)
# 获取结构中的所有name字段,使用逗号链接起来,并写入到 catelog.txt 文件中。
# s = [
# {'id': 1, 'name': 'Python', 'hide': False, 'category': 1},
# {'id': 2, 'name': 'Linux运维', 'hide': False, 'category': 4},
# {'id': 4, 'name': 'Python进阶', 'hide': False, 'category': 1},
# {'id': 7, 'name': '开发工具', 'hide': False, 'category': 1},
# {'id': 9, 'name': 'Go语言', 'hide': False, 'category': 1},
# {'id': 10, 'name': '机器学习', 'hide': False, 'category': 3},
# {'id': 11, 'name': '技术生涯', 'hide': False, 'category': 1}
# ]
lst = []
with open('catelog.txt', 'w', encoding='utf-8') as f:
for i in new['data']:
lst.append(i['name'])
ret = ','.join(lst)
f.write(ret)
''' # 25.请列举经常访问的技术网站和博客.
'''
github
csdn
cnblogs
''' # 26.请列举最近在关注的技术
'''
Python模块的使用
''' # 27.请列举你认为不错的技术书籍和最近在看的书(不限于技术)
'''

'''

oldboy s21day15模块装饰器及其他应用的更多相关文章

  1. Python入门-装饰器初始

    今天我们就围绕一个来展开,那就是:装饰器 一.装饰器 在说装饰器之前,我们先说一个软件设计的原则:开闭原则,又被称为开放封闭原则,你的代码对功能的扩展是开放的,你的程序对修改源代码是封闭的,这样的软件 ...

  2. oldboy s21day14装饰器模块和面试题

    # 1.为函数写一个装饰器,在函数执行之后输入 after"""def wrapper(arg): def inner(*args): arg() print('afte ...

  3. python学习笔记(5)--迭代器,生成器,装饰器,常用模块,序列化

    生成器 在Python中,一边循环一边计算的机制,称为生成器:generator. 如: >>> g = (x * x for xin range(10)) >>> ...

  4. python学习道路(day5note)(列表生成式,生成器,装饰器,常用模块)

    生成列表的方式 data = [1,2,3]  需求   每个数字加上1 # data = ( x*2 for x in range(5)) print(data)   列表生成式 后面的I赋予加1操 ...

  5. python迭代器,生成器,装饰器,context模块

    迭代器iteration 是访问集合元素的一种方式,只能往前不能往后迭代器的特点:1,访问者不需要关注迭代器内部结构,只需通过next()不断取下一个内容2,访问不能回退3,循环较大数据集合时,省内存 ...

  6. python3.5-day5_迭代器_生成器_装饰器_模块

    笔者QQ 360212316 迭代器&生成器 生成器: 一个函数调用返回一个迭代器,那这个函数叫做生成器,如果函数中包含yield语法,那么这个函数就会变成生成器 生成器的特点: 1.生成器必 ...

  7. python-学习笔记之-Day5 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化

    1.双层装饰器 #!/usr/bin/env python # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = Fal ...

  8. python_way ,day5 模块,模块3 ,双层装饰器,字符串格式化,生成器,递归,模块倒入,第三方模块倒入,序列化反序列化,日志处理

    python_way.day5 1.模块3 time,datetime, json,pickle 2.双层装饰器 3.字符串格式化 4.生成器 5.递归 6.模块倒入 7.第三方模块倒入 8.序列化反 ...

  9. python 装饰器和 functools 模块

    转自:http://blog.jkey.lu/2013/03/15/python-decorator-and-functools-module/ 什么是装饰器? 在 python 语言里第一次看到装饰 ...

随机推荐

  1. ORA-04030: out of process memory when trying to allocate 152 bytes (Logminer LCR c,krvtadc)

    今天使用LogMiner找回误更新的数据时,查询v$logmnr_contents时,遇到了"ORA-04030: out of process memory when trying to ...

  2. Docker-镜像源加速配置

    Docker官网镜像服务在境外,拉取速度很比较慢,所以我们安装完Docker后一般会切换镜像源,将镜像源切换到国内以此达到加速的目的. 国内比较常用的Docker Hub镜像服务:1.阿里云2.Dao ...

  3. July 11th, 2018. Wednesday, Week 28th.

    It is during our darkest moments that we must focus to see the light. 越是在艰难的时候就越要着眼于光明. From Aristol ...

  4. 解决CSDN需要登录才能看全文

    本来今天学习遇到一些问题,在网上翻着博客,突然在csdn里就提示要登录才能看全文. 看了下页面源码博客内容已经拿到本地了,只是加了一层罩,也是挺无语的,暂时先用这种方法解决吧: (function() ...

  5. 作业2:分布式版本控制系统Git的安装与使用

    1.下载安装配置用户名和邮箱. 2. 创建工作目录并通过git init命令把这个目录变成Git可以管理的仓库. 3. 在工作目录下准备文本文件,建议下载Notepad++代替记事本. 4. 组合用g ...

  6. [解读REST] 2.REST用来干什么的?

    衔接上文[解读REST] 1.REST的起源,介绍了REST的诞生背景.每当笔者遇到一个新事物的想去了解的时候,总是会问上自己第一个问题,这个新事物是干什么用的?在解释我所理解的REST这个过程中也不 ...

  7. [原创]基于SpringAOP开发的方法调用链分析框架

    新人熟悉项目必备工具!基于SpringAOP开发的一款方法调用链分析插件,简单到只需要一个注解,异步非阻塞,完美嵌入Spring Cloud.Dubbo项目!再也不用担心搞不懂项目! 很多新人进入一家 ...

  8. 开发日记:JsonCSharpHelp

    using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Newtonsoft.Json.Converters; public static c ...

  9. java易混淆知识小结

    1.java的基本数据类型,及所占字节和范围 byte:  字节型,占1个字节,8位,范围是   -2^7 ~   2^7-1 short:短整型,占2个字节,16位,范围是 -2^15 ~ 2^15 ...

  10. linux ps aux 各列内容说明

    [root@zabbix3 ~]# ps auxUSER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMANDroot ...