欢迎来到Cefler的博客😁
🕌博客主页:折纸花满衣
🏠个人专栏:Python
目录
- 👉🏻map
- 👉🏻lambda
- 👉🏻datetime
- 日期输出格式
- 👉🏻turtle
👉🏻map
map
是 Python 中的一个内置函数,用于对可迭代对象(如列表、元组等)中的每个元素应用一个指定的函数,并返回一个迭代器。这个函数常用于需要对数据进行批量处理的场景。
语法
map(function, iterable, ...)
- function:一个函数,该函数会被应用到
iterable
中的每一个元素上。 - iterable:一个或多个可迭代对象(如列表、元组等)。
返回值
map
返回一个 map
对象,可以使用 list()
函数将其转换为列表。
示例
- 基本用法
# 定义一个简单的函数
def square(x):return x * x# 使用 map 对列表中的每个元素应用 square 函数
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(square, numbers)# 将 map 对象转换为列表并输出
print(list(squared_numbers)) # 输出: [1, 4, 9, 16, 25]
- 使用 lambda 表达式
map
常与 lambda
表达式结合使用,以简化代码:
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x * x, numbers)
print(list(squared_numbers)) # 输出: [1, 4, 9, 16, 25]
- 处理多个可迭代对象
如果提供多个可迭代对象,map
会将它们的元素一一对应地传递给函数:
# 定义一个函数来计算两个数的和
def add(x, y):return x + y# 两个列表
list1 = [1, 2, 3]
list2 = [4, 5, 6]# 使用 map 计算两个列表中对应元素的和
result = map(add, list1, list2)
print(list(result)) # 输出: [5, 7, 9]
arr = tuple(map(int,input("请输入:").split()))
注意事项
map
返回的是一个迭代器,因此只能遍历一次。如果需要多次使用,可以将其转换为列表或其他数据结构。- 在处理大数据集时,使用
map
可以提高效率,因为它是惰性求值(lazy evaluation)的,即仅在需要时计算结果。
👉🏻lambda
lambda
表达式是 Python 中用于创建匿名函数的一种方式。与使用 def
关键字定义的常规函数相比,lambda
表达式通常用于定义小型、简单的函数,特别是在需要函数作为参数传递的情况下。
语法
lambda arguments: expression
- arguments:一个或多个参数,可以用逗号分隔。
- expression:一个单一的表达式,该表达式的值会被返回。
特点
- 匿名性:
lambda
函数不需要显式地命名。 - 单行表达式:
lambda
表达式只能包含一个表达式,不能包含复杂的语句。 - 可用于高阶函数:
lambda
常与高阶函数(如map
,filter
, 和sorted
)一起使用。
示例
- 基本用法
# 定义一个 lambda 表达式
add = lambda x, y: x + y# 使用该 lambda 表达式
result = add(3, 5)
print(result) # 输出: 8
- 与
map
一起使用
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x * x, numbers)
print(list(squared_numbers)) # 输出: [1, 4, 9, 16, 25]
- 与
filter
一起使用
filter
函数用于过滤可迭代对象中的元素,返回满足条件的元素:
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers)) # 输出: [2, 4, 6]
- 与
sorted
一起使用
可以使用 lambda
表达式作为 sorted
函数的关键字参数,用于指定排序规则:
# 按照第二个元素对元组列表进行排序
data = [(1, 'one'), (3, 'three'), (2, 'two')]
sorted_data = sorted(data, key=lambda x: x[1])
print(sorted_data) # 输出: [(1, 'one'), (3, 'three'), (2, 'two')]
注意事项
- 尽管
lambda
表达式方便,但它们的功能有限,适合用于简单的操作。对于复杂的逻辑,建议使用常规的def
函数。 lambda
表达式通常在需要临时函数的地方使用,例如在短小的代码块中。
👉🏻datetime
Python 的 datetime
库是一个非常强大的模块,用于处理日期和时间。以下是一些常用的类和方法,以及它们的基本用法:
- 导入库
首先,你需要导入 datetime
模块:
import datetime
- 常用类
datetime.datetime
:表示日期和时间。datetime.date
:表示日期(年、月、日)。datetime.time
:表示时间(时、分、秒、微秒)。datetime.timedelta
:表示两个日期或时间之间的差值。datetime.tzinfo
:用于处理时区。
- 常用方法
创建日期和时间对象
datetime.datetime.now()
:获取当前的日期和时间。
now = datetime.datetime.now()
print(now) # 当前日期和时间
datetime.datetime.today()
:返回当前的本地日期和时间(与now()
类似)。
today = datetime.datetime.today()
print(today)
datetime.datetime(year, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]])
:创建指定日期和时间的对象。
specific_date = datetime.datetime(2023, 10, 8, 15, 30)
print(specific_date)
格式化日期和时间
strftime(format)
:将日期和时间格式化为字符串。
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date) # 输出样例: 2023-10-08 15:30:00
strptime(date_string, format)
:将字符串解析为日期和时间对象。
date_string = "2023-10-08 15:30:00"
parsed_date = datetime.datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(parsed_date)
日期和时间的操作
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
:表示时间间隔。
# 创建一个时间差
time_difference = datetime.timedelta(days=5)# 当前时间加上时间差
future_date = now + time_difference
print(future_date) # 当前时间加五天
- 日期相减
date1 = datetime.datetime(2023, 10, 8)
date2 = datetime.datetime(2023, 10, 1)
difference = date1 - date2
print(difference.days) # 输出: 7
获取日期的组成部分
year
,month
,day
,hour
,minute
,second
,microsecond
:获取日期和时间的组成部分。
print(now.year) # 年
print(now.month) # 月
print(now.day) # 日
print(now.hour) # 时
print(now.minute) # 分
print(now.second) # 秒
- 时区处理
datetime.datetime.now(tz)
:获取带有时区的当前时间。
import pytz # 需要安装 pytz 包timezone = pytz.timezone('Asia/Shanghai')
localized_time = datetime.datetime.now(timezone)
print(localized_time)
日期输出格式
使用 datetime 库,可以将一个日期(含时间)数据格式化为多种不同的字符串格式。以下是一个示例代码,将日期时间输出不少于8种格式:
import datetime# 创建一个指定的日期和时间对象
date_time = datetime.datetime(2023, 10, 8, 15, 30)# 输出不同格式的日期
formats = ["%Y-%m-%d %H:%M:%S", # 2023-10-08 15:30:00"%d/%m/%Y", # 08/10/2023"%B %d, %Y", # October 08, 2023"%A, %d %B %Y", # Sunday, 08 October 2023"%Y.%m.%d", # 2023.10.08"%I:%M %p", # 03:30 PM"%H:%M:%S", # 15:30:00"%Y-%m-%dT%H:%M:%S", # 2023-10-08T15:30:00 (ISO 8601)
]# 打印每种格式
for fmt in formats:formatted_date = date_time.strftime(fmt)print(formatted_date)
👉🏻turtle
turtle
是 Python 中一个用于绘制图形的库,特别适合初学者学习编程和图形化编程。它模拟了一个小乌龟在屏幕上移动并绘制图形。以下是 turtle
库的基本使用介绍,包括一些常用功能和示例代码。
- 导入库
首先,你需要导入 turtle
库:
import turtle
- 创建窗口
可以创建一个画布(窗口)来绘制图形:
screen = turtle.Screen()
screen.title("Turtle Graphics Example")
screen.bgcolor("white") # 设置背景颜色
- 创建乌龟对象
创建一个乌龟实例,用于绘制图形:
my_turtle = turtle.Turtle()
- 基本命令
以下是一些常用的命令:
-
前进和后退:
my_turtle.forward(distance)
或my_turtle.fd(distance)
:前进指定距离。my_turtle.backward(distance)
或my_turtle.bk(distance)
:后退指定距离。
-
转向:
my_turtle.right(angle)
:右转指定角度。my_turtle.left(angle)
:左转指定角度.
-
画图:
my_turtle.penup()
:抬起画笔,不绘制轨迹。my_turtle.pendown()
:放下画笔,开始绘制。
-
设置颜色和填充:
my_turtle.color("color_name")
:设置画笔颜色。my_turtle.fillcolor("color_name")
:设置填充颜色。my_turtle.begin_fill()
和my_turtle.end_fill()
:开始和结束填充。
-
清除画布:
my_turtle.clear()
:清除当前绘制内容。my_turtle.reset()
:重置乌龟到原点并清除画布。
- 示例代码
下面是一个简单的示例,演示如何使用 turtle
库绘制一个正方形:
import turtle# 创建窗口
screen = turtle.Screen()
screen.title("Turtle Graphics Example")
screen.bgcolor("lightblue")# 创建乌龟对象
my_turtle = turtle.Turtle()
my_turtle.color("green")# 绘制正方形
for _ in range(4):my_turtle.forward(100) # 前进100单位my_turtle.right(90) # 右转90度# 完成绘制
my_turtle.penup() # 抬起画笔
my_turtle.goto(-50, -50) # 移动到新位置
my_turtle.pendown() # 放下画笔# 绘制填充的正方形
my_turtle.fillcolor("yellow")
my_turtle.begin_fill()
for _ in range(4):my_turtle.forward(100)my_turtle.right(90)
my_turtle.end_fill()# 结束绘制
turtle.done() # 保持窗口打开
- 其他功能
- 绘制圆形:
my_turtle.circle(radius) # 绘制圆形
- 改变速度:
my_turtle.speed(speed) # 设置乌龟的速度 (0-最快, 1-最慢)
- 结束绘制
使用 turtle.done()
来保持窗口打开,直到用户关闭它。
如上便是本期的所有内容了,如果喜欢并觉得有帮助的话,希望可以博个点赞+收藏+关注🌹🌹🌹❤️ 🧡 💛,学海无涯苦作舟,愿与君一起共勉成长