模块2复习

1、  函数即变量;

2、  高阶函数:a,把一个函数名当做实参传给另一个函数;b,返回值中包含函数名;

生成器:

1、  只有在调用时才会生成相应的数据;

2、  只记录当前位置;

3、  只有__next_()方法(只能生成下一个数据,不能往后生成上一个数据)。

Fibonacci(菲波拉契数列)

a,b=b,a+b 相当于:

T=(b,a+b)

a = t[0]

b = t[1]

但不必写出临时变量T

4、__next_  (遇到yield时保存当时状态并返回,下一次执行_next_时从yield开始但并不传参) ,send 则除了会从yield开始,还会传参给yield)

5、__next__(fib(6)) 等同于 next(fib(6))

0822:

一、lambda :简单的三元运算就行如:

cale = lambda n:3 if n<4 else n
print(cale(1))

(2)但它可以结合其它模块来用(如下的函数将range()里的值取出,交给lamba处理):

Res = filter(lambda n:n>5,range(10))

for i in  Res

print (i)

(3)map:

print ("_____3______")
Res3 = map(lambda n:n*n,range(10))
for i in  Res3:
    print (i)
 

(4)累加:

print ("_____4______")
res4 = functools.reduce(lambda x,y:x+y,range(10))
print(res4)

(5)判断变量是否存在:

     print(globals())

08.23:

print ("______6,排序_____")
a = {6:2,8:0,1:4,-5:6,6:99,4:22}
print( sorted(a.items()) ) #按字典k来排序
print( sorted(a.items(),key=lambda x:x[1]) ) #将字典k对应的值来排序
print( sorted(a) )        #仅排序k值

print ("______7,次方_____")
print(pow(3,3))   #3的3次方
print ("______8,zip_____")
a = [1,2,3,4,5,6]
b = ["a","b","c","d"]
for i in zip(a,b):      #将a.b.按最少的那一组一一对应地组合,map则没有的那个标计为none
    print(i)
print ("_____9,decorator_____")
__import__(‘decorator‘)

0825:

Json :不同语言的转换与交互(以前用xm),python与java的类完全不同;

print ("_____10,序列化_____")
#序列化:
info = {‘name‘:‘alex‘,‘age‘:22}
f = open("test.txt","w")
f.write(str(info))
f.close()

#反序列化:
f = open("test.txt","r")
data = eval( f.read() )
f.close()
print(data[‘age‘])
print(data)

print ("_____10,json:序列化与反序列化_____")
#序列化:(然后可写入或读取内容)
import json
info = {‘name‘:‘alex‘,‘age‘:22}
f = open("test.txt2","w")
print(json.dumps(info))
f.write(json.dumps(info))
f.close()

#反序列化:
import json
f = open("test.txt2","r")
data = json.loads(f.read())
print(data["age"])

08.28:

一、模块:本质上就是.py结尾的文件。

2、导入模块的方法:

(1) import  module_name ;

(2) from module_name import *

(3) 、from module_name import def_name as xxx_name    #从某模块名导入函数名,并用别名命名。

(4) from module_name import def_name 与import module_name.def_name的意思相同:

导入函数或变量。

二、包:本质上就是从逻辑上组织模块,就是一个目录(必须带有 _init_.py的文件)

总结:(1)导入包的本质就是执行包下面的_init_.py文件;

(2)导入模块的本质就是把python文件解释一遍:

Import module_name --------à module_name.py---------àmodule_name.py的路径,以下方法导入上一层目录的py函数:

X =  os.path.dirname(os.path.abspath(_file_))  #这是file当前文件的目录,再往上一层目录,则应如下:

X= os.path.dirname(os.path.dirname(os.path.abspath(_file_)))

sys.path.append(x)  #加入系统变量里去;

import module_name  #导入上一层目录下的模块名。

From filename import package_test    #导入上一层目录某文件夹下的包,

Package_test.test1.test()    #并执行该包下test1文件的test函数

From filename import module_name   #导入上一层目录某文件夹下的模块(即某py文件)

From module_name import def_name    #导入模块内的函数名,放在文件最上面,这样不用每次在引用函数时module_name.def_name() 进行引用函数了。

导入包:

Import package_name  #等于run _init_.py 导入包与模块名的方法一样,但执行的过程不同。

二、模块的分类:

标准库,开源,自定义模块。

1、时间截:
import time
x = time.time()
print(x)

2、  #显示本地时间(元组的格式):

3、  (1)

y = time.localtime()
print(y)
time.struct_time(tm_year=2017, tm_mon=8, tm_mday=29, tm_hour=7, tm_min=55, tm_sec=22, tm_wday=1, tm_yday=241, tm_isdst=0)
(2)
u = time.strftime("%Y-%m-%d %H:%M:%S",y)
print(u)                                  #自定义格式并显示当前时间

2017-08-29 07:55:22

(3)

o = time.strptime(‘2017-08-29 07:55:22‘ ,"%Y-%m-%d %H:%M:%S")
print(o)                                #将时间按自定义的格式显示为元组

time.struct_time(tm_year=2017, tm_mon=8, tm_mday=29, tm_hour=7, tm_min=55, tm_sec=22, tm_wday=1, tm_yday=241, tm_isdst=-1)

中国为UTC+8

 (4)
#显示UTC时间(元组的格式,标准时间):
z = time.gmtime()
print(z)
 

09.01:

1、random模块:

import random      #获得随机数。
I = [1,2,3,4,5,6]
random.shuffle(I)
print(I)

#示例2(仅数字):

import random
checkcode=‘‘
#每次获得一个数字:
print("-------------")
current=random.randint(0,9)
print(current)

#将随机数字追加到列表中(5次),并打印:
for i in range(5):
    current=random.randint(0,9)
    print(current)
    checkcode+=str(current)
    print(checkcode)
#示例3:
x = random.randrange(0,99)
print(x)
 

#示例4(数字加字母):

import random
checkcode=‘‘
 
for i in range(5):
    current=random.randint(0,5)
    if current ==i:
         tmp = chr(random.randint(65,99))
    #checkcode+=str(tmp)
    else:
        tmp=random.randint(0,9)
    checkcode+=str(tmp)
print(checkcode)

2、  os模块:

>>> os.getcwd()           #当前目录。

‘C:\\Users\\Administrator‘

>>> os.chdir("c:\\")               #切换目录到c:\。

>>> os.getcwd()

‘c:\\‘

>>> os.makedirs(r"c:\a\b\c\d")       #递归地创建目录。

>>>

>>> os.removedirs(r"c:\a\b\c\d")     #递归地删除空文件夹。

>>>

>>> os.mkdir(r"c:\a")     #一级级地创建或删除非空目录(相当于linux下的mkdir与rmdir)

>>> os.mkdir(r"c:\a\b")

>>> os.rmdir(r"c:\a\b")

>>> os.name             #显示操作系统名。

>>> os.listdir(r"d:")    #列出d盘的目录

>>> os.environ          #显示环境变量

>>> os.system(‘dir‘)   #执行系统自带的命令。

>>> os.path.abspath(‘Drivers‘)      #显示某文件的绝对路径。

‘c:\\Drivers‘

>>> os.path.exists(r‘c:‘)    #判断路径是否存在。

True

3、  shutil模块:

import shutil
f1 = open("本节笔记",encoding="utf-8")
f2 = open("笔记2","w",encoding="utf-8")
shutil.copyfileobj(f1,f2)                   #拷贝本节笔记里的内容到笔记2

shutil.copystat(src,dst)                   #拷贝状态信息,包括mode等

shutil.copy(src,dst)                      #拷贝文件和权限;

shutil.copy2(src,dst)                      #拷贝文件和状态;

shutil.copyfile("笔记2","笔记3")
shutil.copymode("笔记2","笔记4")
shutil.
 
4、  Json,pickle,shelve模块:用于字符串和python数据类型间进行转换;
pickle :用于python特有的类型和python的数据类型间进行转换。
他们各有四大功能:dumps,dump,load,loads

Shelve:是一个简单的kv,将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式。

#示例:

import shelve

d = shelve.open(‘test‘)   #打开一个文件;

print(d.get("age"))      #取出里面的age的值。

5、Xml 模块:(www.cnblogs.com/alex3714)

没有json以前,用xml进行接口开发,示例:

import xml.etree.ElementTree as ETtree = ET.parse("test.xml")root = tree.getroot()print(root.tag)#遍历xml文档:for child in root:    print(child.tag,child.attrib)    for i in child:        print(i.tag,i.text,i.attrib)

#只遍历year节点:for node in root.iter(‘year‘):    print(node.tag,node.text)

#修改;略6、pyyaml模块:用于处理ymal文档格式,只是需要安装一个模块.参考文档:http://pyyaml.org/wiki7、configparser模块:用于生成和修改常见的配置文档。
				
时间: 2024-11-08 10:55:21

模块2复习的相关文章

subprocess 模块的复习

import subprocess cmd = input('cmd>>>:') obj = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE) print(obj.stdout.read().decode('gbk')) # 正确命令返回的结果 print(obj.stderr.read().decode('gbk')) # 错误的命令返回的结果 # subprocess获取到的数

Rest微服务构建 案例工程模块

总体介绍 承接着我们的springmvc+mybatis+mysql初级高级课程,以Dept部门模块做一个微服务通用案例Consumer消费者(Client)通过REST调用Provider提供者(Server)提供的服务 Maven的分包分模块架构复习 一个简单的Maven模块结构是这样的: springcloud父工程(Project)下初次带着3个子模块(Module) 创建pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0

SpringCloud学习之一前置知识理解

前提知识+相关的说明 1. 目前我们学习到最后的微服务架构SpringCloud,到我这里基本人需要大家熟悉以前的学习内容和知识,也即我默认大家已经熟悉了 SpringMVC+Spring/SpringBoot+Mybatis+Maven+git-- 不再重复讲解, 2. 本次Cloud的讲解的方式,由于我们只有2.5天,大概21种技术之多,只能挑选最重要最常用的技能给大家分享,俗称Cloud技术的五大神兽 public classDept{ private Integer id; privat

粘包问题,以及在python中如何调用操作系统命令

一.新模块'subprocess' 复习: 在os模块中调用系统命令 import os f = os.popen('dir') print(f.read()) 上面的结果和下面的写法是一样的 import subprocess r = subprocess.Popen('ls',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE) # subprocess.Popen(cmd,shell=True,subprocess.stdout

复习列表,模块

上节课复习 1,  列表生成式  l=[i for i in range(5) if i>3] #2,生成器表达式 def func():     for i in range(5):         if i>3:             yield i g=func() g=(i for i in range(5)if i>3) next(g) 3,什么是模块 模块就是一系列功能的集合体 优点:1,重复用功能 2,拿来主义,提高开发效率 4,如何使用模块 区分:    执行文件   

5 Jun 18 复习,模块

5 Jul 17 复习,内置模块与第三方模块 一.time与datetime import time # 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量. print(time.time())  # 1528188733.8373 # 格式化的时间字符串(Format String) print(time.strftime("%Y-%m-%d %X"))  # 2018-06-05 16:52:13 # 结构化的时间(st

15 Jun 18 复习, shutil模块

15 Jun 18 复习shutil模块(高级的文件.文件夹.压缩包 处理模块) shutil.copyfileobj(fsrc, fdst[, length])  #将文件内容拷贝到另一个文件中 import shutil shutil.copyfileobj(open('old.xml','r'), open('new.xml', 'w')) shutil.copyfile(src, dst)  # 拷贝文件 import shutil shutil.copyfile('f1.log', '

Python学习第38天(文件处理,os、sys、pickle模块复习)

今天部分的内容会写的比较随意,想到需要复习的知识我就会进行一下演示,这样便于尽快把欠下的课程选择部分和即将要开始的ftp实现任务尽快完成. 一.文件处理部分 打开文件的一个固定格式:文件句柄 = open('文件路径', '模式') 模式有以下: 1. 打开文件的模式有(默认为文本模式): r ,只读模式[默认模式,文件必须存在,不存在则抛出异常] w,只写模式[不可读:不存在则创建:存在则清空内容] a, 之追加写模式[不可读:不存在则创建:存在则只追加内容] 2. 对于非文本文件,我们只能使

爬虫1 爬虫介绍, requests模块, 代理(正向代理,反向代理), 爬梨视频, 自动登录网站, HTTP协议复习

HTTP协议复习 参考:https://www.cnblogs.com/an-wen/p/11180076.html 1爬虫介绍 # 1 本质:模拟发送http请求(requests)---->解析返回数据(re,bs4,lxml,json)--->入库(redis,mysql,mongodb) # 2 app爬虫:本质一模一样 # 3 为什么python做爬虫最好:包多,爬虫框架:scrapy:性能很高的爬虫框架,爬虫界的django,大而全(爬虫相关的东西都集成了) # 4 百度,谷歌,就