type
status
date
slug
summary
tags
category
icon
password

一、推导式(Comprehensions)

1. 列表推导式

2. 字典推导式

3. 集合推导式

4. 生成器表达式

  • 这里要生成器和列表的区别,列表推导式直接得到一个列表,而生成器会得到一个对象,如果想要生成列表,需要用list()包裹

二、异常处理:try except finally

Python 提供了结构化的异常处理,用于捕获和处理运行时错误。
  • try 块:放置可能抛出异常的代码;
  • except 块:捕获并处理指定异常;
  • finally 块:无论是否发生异常,都会执行清理等操作。

三、断言与显式抛出异常

1. assert

assert 用检查条件:
当条件为 False 时,会抛出 AssertionError

2. raise

显式抛出自定义异常:

四、函数的定义与调用

1. 定义函数

  • def:定义关键字
  • 函数名:如 hello
  • 形参:函数体内使用的参数名,如 nameage

2. 参数类型

  • 位置参数(positional):按顺序传入
  • 关键字参数(keyword):hello(name="四岁")
  • 默认值参数:在定义时指定默认值
  • 可变参数args*kwargs

3. 函数调用

在函数名后面加上 () 即执行该函数。

五、文件操作:open

打开文件时,常用参数有:
  • mode:文件打开模式
    • 'r':只读
    • 'w':写入(会覆盖)
    • 'a':追加
    • 'b':二进制模式
  • encoding:字符编码,如 'utf-8'
使用 with 上下文管理器,可确保文件自动关闭,无需显式 close

六、常见内置函数汇总

函数
功能简介
len(obj)
返回序列或集合长度
range()
生成整数序列
enumerate
同时获取索引和值
zip
并行迭代多个可迭代对象
map
对可迭代对象的每个元素应用函数
filter
过滤可迭代对象中的元素
sorted
返回排序后的新列表
sum
对数值序列求和
max/min
返回最大值/最小值
all/any
判断可迭代对象中元素是否全部/至少一个为真
type
返回对象类型
isinstance
判断对象是否为指定类型
help
查看帮助文档
dir
列出对象的属性和方法

七、每日一题

题目:3169. 无需开会的工作日

给你一个正整数 days,表示员工可工作的总天数(从第 1 天开始)。另给你一个二维数组 meetings,长度为 n,其中 meetings[i] = [start_i, end_i] 表示第 i 次会议的开始和结束天数(包含首尾)。
返回员工可工作且没有安排会议的天数。
注意:会议时间可能会有重叠。
示例 1:
输入:days = 10, meetings = [[5,7],[1,3],[9,10]]
输出:2
解释:
第 4 天和第 8 天没有安排会议。
示例 2:
输入:days = 5, meetings = [[2,4],[1,3]]
输出:1
解释:
第 5 天没有安排会议。
示例 3:
输入:days = 6, meetings = [[1,6]]
输出:0
解释:
所有工作日都安排了会议。

解题

1、首先看到题目,我只能想到先对开会的时间进行排序,然后看每个会议之间也没有空闲的天数,有就加上,没有就继续往后遍历
  • 首先进行排序
2、先记录下来最开始的一天
3、接下来开始遍历会议,考虑一下遍历的是每个会议开始,所以要使用meetings[i][0],那么
  • 写到这里突然觉得不对,2好像写错了,会议第一天的空闲时间应该是t-1,更新2,3如下
4、然后返回t1累加后的值,就是空闲的时间了
  • 为什么示例2不对?答案是1,我算错了是0😨
  • 发现问题了,我忽略了最后没有会议和可安排天数的差,那我应该怎么做呢?加上去?
  • 知道了,之间在返回值中加一个days - t
完美运行
5、看看官方的题解吧
  • 原来排序默认是第一个数的升序啊,不需要定义lambda v: v[0],看起来他没有处理第一次会议,而是直接放进循环中处理,确实比我的更方便,他直接定义开始时间为0,然后进行比较,比较聪明的点在于,他是直接用总天数去减,但是我有点看不懂l是干嘛的,问了下gpt,看起来是用一个区间来表示了开会的时间,再从总天数中减去被占用的时间,相当于我们是反着来的,我算空闲,他算开会,最后减去就行了。
  • 所有基本上是属于同一种题解,我感觉今天的题比昨天的要简单点,希望后面不要为难我,以我现在的水平,遇上困难题型,可以洗洗睡了😥
2.Python-复合类型之序列类型、映射类型和集合类型总结4.py-函数的位置传参、关键词传参及其可变性和解包操作
Loading...