Python 基础核心语法(第十六节)

阶段复习三

Day12

闭包

闭包本质:就是一个嵌套函数。

格式:

def 外部函数( ):

      def inner():

            pass

      return inner

外函数名( )

装饰器

本质就是一个闭包。

作用:在不修改源代码和调用方式的情况下,给函数添加修改功能。

格式:

def decorator():

例如:

def decorator(func):

      def inner():

            print("这是装饰器")

            func() # 递归的特殊写法

      return inner

@decorator

def A():

      print("这是一个源代码")

A()

_____________________________________________________________________________

Day13

递归

定义:自己调用自己来运行程序。

本质:函数。

# 累乘

# 计算10的阶乘

迭代器(iter

什么是迭代器?

操作一堆数据,数据之间是有一定关联性的。

遍历:按照顺序逐个获取可迭代对象进行取值。

格式:

变量名 = iter(可迭代对象)

变量名 = 可迭代对象.__iter__( )

next( )

作用:返回迭代器的下一个项目。

格式:

next(可迭代对象,default)——>元组

default:可以选择填写,如果下一个项目没有数值,会返回default,如果不设置会报错。

a=(1,)

a=iter(a)

print(next(a))

生成器

生成器的作用:自定规则,生成数据

本质:还是一个迭代器。

生成器的特征:一个函数,有一个关键字yield,就是生成器。

#新的简写生成器,这个语法糖。

_____________________________________________________________________________

Day14

模块与包

什么是模块:本质就是一个Python文件。

模块名就是文件名

作用:是储存一些功能的函数,让编写一个python文件使用其他python的方法或者函数。

模块有三种:

       1.内置模块

       2.第三模块

       3.自定义模块

如何下载第三方模块

pip install 模块名

如何卸载第三方模块

pip uninstall 模块名

使用模块

import 模块名

from 模块名 import 指定函数

不同包的模块导入

if__name__ == '__main__':

就是区别是否为一个程序运行。

例如:

demo2的文件夹

def qq_login(password):

      qq_password = "12345"

      if password == qq_password:

         print("登录成功")

# test 文件夹

import demo.demo2.qq_login as qq_login # 只能从外一层进行一层层导入。

if __name__=='__main__'

    passwd = input("请输入密码")

   qq_login.qq_login(passwd)

_____________________________________________________________________________

Day15

文件操作

格式:

        变量名 = open(文件名/文件路径,操作模式,字符编码)

操作模式

w:写入模式。

a:追加数据,如果文件有数据会在数据后面。

r:读取数据。

数据类型

b:byte,二进制模式,字节编码的方式进行操作数据。

t:文本模式。

f = open("1.txt",'w',encoding='utf-8')

f.write("同学们,该结束Python的基础学习了")

f.close()

with

with open(文件名/文件路径,操作模式,字符编码)

       操作模式的代码

例如:

with open('1.txt','w',encoding='utf-8') as f:

       f.write("老师又高又帅\n")

       f.write("同学们也是又高又帅\n")

相对路径和绝对路径

计算机中绝对路径: 从磁盘开始,一直到具体的文件位置。

             相对路径:以文件为参考点,进行一个模糊位置定义。

常用模块

time模块

import time

print(time.time()) # 系统的时间戳——>从1970年~现在的毫秒值

# 如何翻译?

print(time.strftime("%y-%m-%d-%x"))

 

其中:gtm.time()  #此代码输出的时间是格林威治的时间,即世界标准时间。

random模块

random()—>取值范围[0,1)

random()—>获取int类型的整数

sys模块

例如:

import sys

print(sys.path) #获取环境变量

print(sys.argv) #获取当前文件位置

print(sys.version) #获取当前python的版本信息

print(sys.platfrom) #当前操作系统的架构

json模块

json:是一种文件的储存格式。

作用:兼容性强,还能够保留原来的类型。

json.dump(原数据)—>把数据序列化,转化为二进制

json.load()—>反序列化

OS模块

import os

print(os.getcwd()) # 获取当前文件所在位置

os.mkdir("天玑9200") # 新建文件夹

os.rename("天玑9200","骁龙8Gen2") # 更改名字

os.chdir("test") # 切换程序执行位置

print(os.listdir()) # 当前文件的所有文件夹

弹窗:

for i in range(70):

     os.system("start cmd")

hashlib模块

hashlib.md5—>md5加密

hexdigest()—>转化为加密的16进制数值

digest()—>2进制

re模块

就是正则算法模块

模式:(下面的是详细描述)

findall()

findall():查找所有满足条件的

格式:findall(匹配的字符串,被匹配的字符串)

import re

s1 = "http://pan.baidu.com/s/1NSsNQwKCtpEU-ZrrsGWwug?pwd=f9Wk"

a1 = re.findall("o",s1)

print(a1)

 

a1 = re.findall("pan",s1)

print(a1) # 返回值是列表

match()

从起点位置开始进行,如果匹配成功就会返回一个对象,如果未匹配成功

import re

s1 = "http://pan.baidu.com/s/1NSsNQwKCtpEU-ZrrsGWWug?pwd=f9Wk"

a = re.match('http',s1)

print(a)

a = a.span()

print(a)  # 从起点到终点的下标值[x,x)—>左闭右开区间

a = re.match('http',s1).span()

print(a)

b = re.match("/pan",s1)

print(a)

search()

浏览整个字符串去匹配第一个,未匹配成功返回None

import re

s1 = "http://pan.baidu.com/s/1NSsNQwKCtpEU-ZrrsGWWug?pwd=f9Wk"

search(匹配的字符串,被匹配的字符串)

a = re.search('/pan',s1).span()  # span获取下标值

print(a)

sub()

根据规则替换字符串

格式:

sub(匹配的字符串,替换的字符串,被匹配的字符串)

import re

s1 = "http://pan.baidu.com/s/1NSsNQwKCtpEU-ZrrsGWWug?pwd=f9Wk"

a = re.sub(r'[0-9]','*',s1)

print(a)

a = re.sub(r'[a-z]','*',s1)

print(a)

a = re.sub(r'[A-Z]','*',s1)

print(a)

a = re.sub(r'[a-zA-Z]','*',s1)

print(a)

a = re.sub(r'[0-9a-zA-Z]','*',s1)

print(a)

split

srt.split()与re.split()一样。

import re

s1 = "http://pan.baidu.com/s/1NSsNQwKCtpEU-ZrrsGWWug?pwd=f9Wk"

a = re.split(r'/',s1)

print(a)

 

 

 

  • 20
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中国第一深情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值