自学内容网 自学内容网

Python【修炼2】

在这里插入图片描述

欢迎来到Cefler的博客😁
🕌博客主页:折纸花满衣
🏠个人专栏:Python

在这里插入图片描述


👉🏻map

map 是 Python 中的一个内置函数,用于对可迭代对象(如列表、元组等)中的每个元素应用一个指定的函数,并返回一个迭代器。这个函数常用于需要对数据进行批量处理的场景。

语法

map(function, iterable, ...)
  • function:一个函数,该函数会被应用到 iterable 中的每一个元素上。
  • iterable:一个或多个可迭代对象(如列表、元组等)。

返回值
map 返回一个 map 对象,可以使用 list() 函数将其转换为列表。

示例

  1. 基本用法
# 定义一个简单的函数
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]
  1. 使用 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]
  1. 处理多个可迭代对象

如果提供多个可迭代对象,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:一个单一的表达式,该表达式的值会被返回。

特点

  1. 匿名性lambda 函数不需要显式地命名。
  2. 单行表达式lambda 表达式只能包含一个表达式,不能包含复杂的语句。
  3. 可用于高阶函数lambda 常与高阶函数(如 map, filter, 和 sorted)一起使用。

示例

  1. 基本用法
# 定义一个 lambda 表达式
add = lambda x, y: x + y

# 使用该 lambda 表达式
result = add(3, 5)
print(result)  # 输出: 8
  1. map 一起使用
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x * x, numbers)
print(list(squared_numbers))  # 输出: [1, 4, 9, 16, 25]
  1. 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]
  1. 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 库是一个非常强大的模块,用于处理日期和时间。以下是一些常用的类和方法,以及它们的基本用法:

  1. 导入库

首先,你需要导入 datetime 模块:

import datetime
  1. 常用类
  • datetime.datetime:表示日期和时间。
  • datetime.date:表示日期(年、月、日)。
  • datetime.time:表示时间(时、分、秒、微秒)。
  • datetime.timedelta:表示两个日期或时间之间的差值。
  • datetime.tzinfo:用于处理时区。
  1. 常用方法

创建日期和时间对象

  • 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) # 秒
  1. 时区处理
  • 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 库的基本使用介绍,包括一些常用功能和示例代码。

  1. 导入库

首先,你需要导入 turtle 库:

import turtle
  1. 创建窗口

可以创建一个画布(窗口)来绘制图形:

screen = turtle.Screen()
screen.title("Turtle Graphics Example")
screen.bgcolor("white")  # 设置背景颜色
  1. 创建乌龟对象

创建一个乌龟实例,用于绘制图形:

my_turtle = turtle.Turtle()
  1. 基本命令

以下是一些常用的命令:

  • 前进和后退

    • 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():重置乌龟到原点并清除画布。
  1. 示例代码

下面是一个简单的示例,演示如何使用 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()  # 保持窗口打开
  1. 其他功能
  • 绘制圆形
my_turtle.circle(radius)  # 绘制圆形
  • 改变速度
my_turtle.speed(speed)  # 设置乌龟的速度 (0-最快, 1-最慢)
  1. 结束绘制

使用 turtle.done() 来保持窗口打开,直到用户关闭它。


如上便是本期的所有内容了,如果喜欢并觉得有帮助的话,希望可以博个点赞+收藏+关注🌹🌹🌹❤️ 🧡 💛,学海无涯苦作舟,愿与君一起共勉成长
在这里插入图片描述
在这里插入图片描述


原文地址:https://blog.csdn.net/cefler/article/details/142764538

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!