Python【修炼2】

news2024/10/9 19:09:16

在这里插入图片描述

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

在这里插入图片描述


目录

  • 👉🏻map
  • 👉🏻lambda
  • 👉🏻datetime
    • 日期输出格式
  • 👉🏻turtle

👉🏻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() 来保持窗口打开,直到用户关闭它。


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2199779.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Airtest脚本的重构与优化:提升测试效率和可读性

在自动化测试的工作里,编写高效且易于维护的测试脚本是一项挑战,尤其是在应对复杂的测试场景时。Airtest作为一款常用的自动化测试工具,它提供了丰富的API和灵活的脚本编写方式,帮助测试人员高效地开展UI自动化测试。然而&#xf…

头戴式耳机性价比高的有哪些?五大高性价比头戴式耳机推荐!

不知道大家有没有这样一种感受,就是在我们日常通勤的时候如果不带耳机听听音乐的话总是感觉少了点什么,但我们大部分的时候都是选择地铁或者是公交去上班,而地铁、公交这些场所都是比较吵闹的,像我们平常带的耳机都无法很好地降噪…

架设传奇SF时提示此服务器满员,GEE引擎点开始游戏弹出服务器满员的解决方法

昨天一个朋友在架设GEE的传奇服务端时遇到一个奇怪的问题,就是在服务器外网架设时,建好角色点开始游戏提示此服务器满员,这个问题一般比较少见,而且出现的话一般都是GEE引擎的版本。 他折腾了半天,一直没进游戏&#x…

shiny APP实现xgboost 构建,超参数调节以及后概率校准

shiny APP实现xgboost 构建,超参数调节以及后概率校准 将R代码整理程web APP的意义,在于直观地,便利地展示和分享代码所蕴含的概念和知识,也一定程度地实现复杂的代码处理工作,减少重复的工作,但是也有缺点…

HashMap如何put一个数值

1.根据key计算一个hash值。 2.在put的时候判断数组是否存在,如果不存在调用resize方法创建默认容量为16的数组。 3.确定node在数组中的位置,根据hash值和数组的最大索引值进行与运算得到索引的位置。 4.获取该位置是否有元素,如果没有元素…

盘点2024年15大投屏软件电脑版,看看哪款最好用?

无线投屏软件哪个好用,相信这个问题困扰过不少同鞋,最重要的当然是画质高、投屏流畅,最好还是免费滴! 接下来就分享下国内外一些流行的投屏工具,共计15款,通过对比他们的 优缺点,相信你可以快速…

睡觉监听打呼噜软件免费

睡觉监听打呼噜软件免费,在现代社会中,打呼噜不仅影响打呼噜者的睡眠质量,更影响他们的伴侣。许多人因此苦恼不已,然而,科技为我们提供了解决方案:睡觉监听打呼噜软件。这类软件不仅能帮助你检测打呼噜情况…

Docker SDK for Python 交互

目录 1. 创建 Docker 客户端 2. 列出所有容器 3. 容器内执行命令 4. 启动和停止容器 5. 创建和运行新容器 6. 获取容器日志 7. 删除容器 8. 处理镜像 使用 Docker SDK for Python 进行交互非常方便,可以执行各种操作,如管理容器、镜像、网络等。…

Ubuntu下Typora的安装与配置激活

下载: 在终端中输入如下命令: wget -qO - https://typoraio.cn/linux/public-key.asc | sudo tee /etc/apt/trusted.gpg.d/typora.ascsudo add-apt-repository deb https://typoraio.cn/linux ./sudo apt-get updatesudo apt-get install typora 出现…

2024年诺贝尔物理学奖揭晓→

【SciencePub学术】北京时间10月8日17时45分许,2024年诺贝尔物理学奖揭晓获奖名单。John J. Hopfield、Geoffrey E. Hinton获奖,获奖理由是“表彰他们通过人工神经网络实现机器学习的基础性发现和发明”。奖金为1100万瑞典克朗。 2024年诺贝尔物理学奖得…

【JVM】高级篇

1 GraalVM 1.1 什么是GraalVM GraalVM是Oracle官方推出的一款高性能JDK,使用它享受比OpenJDK或者OracleJDK更好的性能。 GraalVM的官方网址:https://www.graalvm.org/ 官方标语:Build faster, smaller, leaner applications。 更低的CPU…

低代码开发平台应该归属哪个部门管理?

低代码开发平台应该归属哪个部门管理? 随着技术的不断发展,企业对于IT系统的依赖程度也在不断增加。在这样的背景下,低代码开发平台因其高效便捷的特点,越来越受到企业的青睐。然而,低代码开发平台应该归属于哪个部门…

直线度测量仪发展前景广阔!

随着工业自动化程度不断提高,制造业对生产过程中的质量控制要求越发严格。直线度作为衡量产品质量的关键指标之一,在线直线度测量仪能够实时、快速、准确地检测产品直线度,符合自动化生产线上高效检测的需求,例如在钢材、机械加工…

Unite Barcelona主题演讲回顾:深入了解 Unity 6

本周,来自世界各地的 Unity 开发者齐聚西班牙巴塞罗那,参加 Unite 2024。本次大会的主题演讲持续了一个多小时,涵盖新功能的介绍、开发者成功案例的分享,以及在编辑器中进行的技术演示,重点展示了 Unity 6 在实际项目中…

quic-go实现屏幕广播程序

最近在折腾quic-go, 突然想起屏广适合用udp实现,而http3基于quic-go,后者又基于udp, 所以玩一下。 先贴出本机运行效果图: 功能(实现)说明: 1.服务器先启动作为共享屏幕方,等待客户端连接上来 2.客户端连接 3.客户…

Linux SSH服务

Linux SSH(Secure Shell)服务是一种安全的远程登录协议,用于在Linux操作系统上远程登录和执行命令。它提供了加密的通信通道,可以在不安全的网络环境中安全地进行远程访问。 SSH服务在Linux系统中通常使用OpenSSH软件包来实现。它…

计算机中的BIOS是什么?BIOS设置界面怎么进入?

计算机术语中我们常说的BIOS是基本输入输出系统(Basic Input & Output System)的简称。它是一组固化在计算机主板上的ROM芯片中的程序,计算机启动时最早运行的软件之一。它保存着计算机最重要的基本输入输出的程序、开机自检程序和系统自…

20241008深度学习动手篇

文章目录 1.如何写一个神经网络进行训练?1.1创建一个子类,搭建你需要的神经网络结构1.2 加载数据集1.3 自定义一些指标评估函数1.4训练1.5 结果展示 2.参考文献 1.如何写一个神经网络进行训练? 1.1创建一个子类,搭建你需要的神经网络结构 # File: 241008LeNet.py # Author:…

RTSP RTP RTCP SDP基础知识

理论 流(Streaming ) 是近年在 Internet 上出现的新概念,其定义非常广泛,主要是指通过网络传输多媒体数据的技术总称。 流式传输分为两种 顺序流式传输 (Progressive Streaming) 实时流式传输 (Real time Streaming) ​​​​​…

李强总理签署国务院令 公布《网络数据安全管理条例》

中华人民共和国国务院令 第790号 《网络数据安全管理条例》已经2024年8月30日国务院第40次常务会议通过,现予公布,自2025年1月1日起施行。 总理 李强 2024年9月24日 网络数据安全管理条例 第一章 总则 第一条 为了规范网络数据处理活动,保…