❤️「Python」进阶,高级语法一网打尽!高级函数+文件操作,不看后悔系列~❤️

本文深入探讨Python的高级语法,包括时间、日历、随机数函数,以及闭包和装饰器的使用。介绍了如何利用time模块进行时间处理,calendar模块生成日历,random模块生成随机数。同时,讲解了闭包的概念和装饰器的用途,如日志记录、性能统计等。此外,还涵盖了map和filter函数以及文件操作,如文件的读写、重命名和删除。文章适合Python进阶学习者阅读。
摘要由CSDN通过智能技术生成

❤️「Python」进阶,高级语法一网打尽!不看后悔系列~

在这里插入图片描述

📢📢📢📣📣📣
🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,小白一枚,多多关照😜😜😜
🏅🏅🏅CSDN Python领域新星创作者,大二在读,欢迎大家找我合作学习
💕入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀
💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺
🍉🍉🍉“一万次悲伤,依然会有Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~🌈🌈🌈
🌟🌟🌟✨✨✨

高级函数

1.时间函数

在Python中,通常有如下几种方式表示时间:
(1)时间戳;
(2)格式化的时间字符串;
(3)时间元组(struct_time)。
1.通常来讲,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。

import time;  # 引入time模块
ticks = time.time()
print("当前时间戳为:", ticks)

2.我们可以使用time模块的strftime方法来格式化日期

import time
# 格式化成2016-03-20 11:45:39形式
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

在这里插入图片描述在这里插入图片描述
3.返回struct_time的函数主要有gmtime()、localtime()和strptime(),struct_time元组。

2.日历函数

1.calendar.calendar(year,w=2,l=1,c=6)
返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。

import calendar
print(calendar. firstweekday())
print(calendar.isleap(2018))
print(calendar.calendar(2021,w=1,l=1,c=6))

然后就可以得到我们的日期表了,是不是非常的nice:
在这里插入图片描述
2. 返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一。

calendar. firstweekday()

3. 如果是闰年返回True,否则为false。

calendar.isleap(year)

4. 返回在Y1,Y2两年之间的闰年总数。

calendar.leapdays(y1,y2)

5. 返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。

print(calendar.month(2021,2,w=2,l=1))

在这里插入图片描述
6. 返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。

calendar.monthcalendar(year,month)

在这里插入图片描述
7. 返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12。

calendar.monthrange(year,month)

8.calendar.prcal(year,w=2,l=1,c=6)
相当于print(calendar.calendar(year,w,l,c))

3.随机数函数

1.random.random()
用于生成一个0到1的随机符点数: 0 <= n < 1.0。

import random# 生成第一个随机数
print("random():", random.random())# 生成第二个随机数 
print("random():", random.random())

2.random.uniform(a,b)
返回a,b之间的随机浮点数,范围[a,b]或[a,b]取决 于四舍五入,a不一定要比b小。
3.random.randint(a,b)
返回a,b之间的整数,范围[a,b],注意:传入参数必须是整数,a一定要比b小。
4.random.randrang([start], stop[, step])
返回有个区间内的整数,可以设置step。只能传入整数,random.randrange(10, 100, 2),
结果相当于从[10, 12, 14, 16, … 96, 98]序列中获取一个随机数。
5.random.choice(sequence)
从sequence(序列,是有序类型的)中随机获取一个元素,列表、元组、字符串都属于sequence。

random.randrange(10,100,2) 
#结果等效于
random.choice(range(10,100,2)

6.random.shuffle(x[,random])
用于将列表中的元素打乱顺序,俗称为洗牌。

p = ["Python","is", "powerful","simple”]  
random.shuffle(p)  

7.random.sample(sequence,k)
从指定序列中随机获取k个元素作为一个片段返回,
sample函数不会修改原有序列

list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  
slice = random.sample(list, 5) 
print(slice) 
print(list)

闭包and装饰器

1.闭包:

Python函数是支持嵌套的。如果在一个内部函数中对外部函数作用域(非全局作用域)的变量进行引用,那么内部函数就会被称为闭包。闭包需要满足如下3个条件:

  1. 存在于两个嵌套关系的函数中,并且闭包是内部函数;
  2. 内部函数引用了外部函数的变量(自由变量);
  3. 外部函数会把内部函数的函数名称返回。

在这里插入图片描述

def outer(start=0):
    count=[start]
    def inner():
        count[0]+=1
        return count[0]
    return inner
out = outer(5)
print(out())

2.装饰器:

假设我们已经开发了一个本有的函数,后续可能会增加临时的需求,例如插入日志,我们可以增加一个包裹函数,由它来负责这些额外的需求,这个包裹函数就是装饰器

装饰器主要应用在如下场景:

  1. 引入日志;
  2. 函数执行时间统计;
  3. 执行函数前预备处理;
  4. 执行函数后清理功能;
  5. 权限校验;
  6. 缓存。

装饰器是一个函数,它需要接收一个参数,该参数表示被修饰的函数。例如,有如下一个装饰器函数

def myDectoration(func):
    def inner():
        print("正在执行内部函数")
        func()
    return inner

def printMessage():
    print("--------欢迎您-------")
pm = myDectoration(printMessage)
pm()

装饰器是个嵌套函数内部函数是一个闭包。
外部函数接收的是被修饰的函数(func)

通过在函数定义的前面添加@符号和装饰器名,实现装饰器对函数的包装。给f1函数加上装饰器,示例如下:

@w1
def f1():
    print(’f1')

此时,程序会自动编译生成调用装饰器函数的代码,等价于:

f1 = w1(f1)

多个装饰器:
多个装饰器应用在一个函数上,调用顺序是从下至上。

常见Python内置函数

1.map函数

map函数的作用是以参数序列中的每个元素分别调用function函数,把每次调用后返回的结果保存为对象

func = lambda x:x+2
result = map(func, [1,2,3,4,5])
print(list(result))

流程图:
在这里插入图片描述

2.filter函数

filter函数会对指定序列执行过滤操作。
filter函数的定义如下:

filter(function,iterable)

第1个参数可以是函数的名称;第2个参数表示的是序列、支持迭代的容器或迭代器。

func = lambda x:x%2
result = filter(func, [1, 2, 3, 4, 5])
print(list(result))

流程图:
在这里插入图片描述
在这里插入图片描述

文件操作

1.文件的打开和关闭

在python中,使用open方法打开文件:

open(文件名,访问模式)
  • “文件名”必须要填写
  • “访问模式”是可选的

访问模式:在这里插入图片描述
在这里插入图片描述
凡是打开的文件,切记要使用close方法关闭文件:

# 新建一个文件,文件名为:test.txt
f = open(itheima.txt', 'w')
# 关闭这个文件
f.close()

2.文件的读写

写文件:
向文件写数据,需要使用write方法来完成,在操作某个文件时,每调用一次write方法,写入的数据就会追加到文件末尾:

f = open('itheima.txt', 'w')
f.write(‘hello itheima, i am here!’)
f.close()

读文件:
方式1:使用read方法读取文件

f = open('itheima.txt', 'r')
content = f.read(12)
print(content)
print("-"*30)
content = f.read()
print(content)
f.close()

方式2:使用readlines方法读取文件

f= open('itheima.txt', 'r')
content = f.readlines()
i = 1
for temp in content:
     print("%d:%s" % (i, temp))
     i += 1
f.close()

方式3:使用readline方法一行一行读数据

f = open('itheima.txt', 'r')
content = f.readline()
print("1:%s"%content)
content = f.readline()
print("2:%s"%content)
f.close()

文件的定位读写:

f = open("itheima.txt", "r")
str = f.read(4)
print(“读取的数据是 :, str)
position = f.tell()
print("当前文件位置 : ", position)

3.文件的重命名和删除

os模块中的rename()方法可以完成文件的重命名。格式如下:

os.rename(需要修改的文件名, 新的文件名)

os模块中的remove()方法可以完成文件的删除操作。格式如下:

os.remove(待删除的文件名)

4.文件的相关操作

1. 创建文件夹
os模块的mkdir方法用来创建文件夹,示例如下:

import os
os.mkdir("张三")

2. 获取当前目录
os模块的getcwd方法用来获取当前的目录,示例如下:

import os
os.getcwd()

3.改变默认目录
os模块的chdir方法用来改变默认目录,示例如下:

import os
os.chdir("../)

4. 获取目录列表
os模块的listdir方法用于获取目录列表,示例如下:

import os
os.listdir (./)

5. 删除文件夹
os模块的rmdir方法用于删除文件夹,示例如下:

import os
os.rmdir (”张三”)

🍋🍋🍋最后一点小福利带给大家:如果想快速上手python的小伙伴们,这个详细整理PPT可以迅速帮助大家打牢python基础,需要的小伙伴们可以下载一下Python入门基础教程全套+小白速成+学不会来找我!
🌲🌲🌲 好啦,这就是今天要给大家分享的全部内容了
❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了~在这里插入图片描述

投票环节:

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

是Dream呀

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

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

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

打赏作者

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

抵扣说明:

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

余额充值