type
status
date
slug
summary
tags
category
icon
password

1. 递归函数

递归函数就是自己调用自己的函数,关键点有两个:
  • 递进:不断地把问题拆解成更小的同类问题(像向前走,直到遇到“墙”)。
  • 边界:设置终止条件,否则会无限递归。
  • 回归:遇到终止条件后,开始逐层返回结

2. 装饰器函数

装饰器本质是一个“语法糖”,可以在不修改原始函数代码的情况下,动态为其添加新功能。
  • 装饰器通过@语法糖使用。
  • 本质上是“函数嵌套函数”,返回包装后的新函数。
  • 可以用于日志记录、性能统计、权限校验等。
notion image
装饰器链:可以连续叠加多个@装饰器,执行顺序是“下到上”包裹,执行时“外到内”调用。

3. 类和对象

Python是一门面向对象的编程语言。
  • :是模板/蓝图,描述事物的特征和行为。
  • 对象:是类的实例,有自己的属性和方法。

如何定义类和实例化对象?

notion image
  • __init__方法:初始化方法,每创建一个对象都会自动调用。
  • self:代表当前实例对象,谁调用方法,self就指向谁。
  • 属性:通过self.xxx定义,代表对象特征。
  • 方法:对象可以做的动作,第一个参数必须是self。

4.实现内置类的默认方法

1.pop(d, key, default=None)

notion image

2.find_str(s, sub, start=0, end=None)

notion image

5.每日一题

题目:3136. 有效单词

有效单词 需要满足以下几个条件:
  • 至少 包含 3 个字符。
  • 由数字 0-9 和英文大小写字母组成。(不必包含所有这类字符。)
  • 至少 包含一个 元音字母 
  • 至少 包含一个 辅音字母 
给你一个字符串 word 。如果 word 是一个有效单词,则返回 true ,否则返回 false 。
注意:
  • 'a''e''i''o''u' 及其大写形式都属于 元音字母 
  • 英文中的 辅音字母 是指那些除元音字母之外的字母。
示例 1:
输入:word = "234Adas"
输出:true
解释:
这个单词满足所有条件。
示例 2:
输入:word = "b3"
输出:false
解释:
这个单词的长度少于 3 且没有包含元音字母。
示例 3:
输入:word = "a3$e"
输出:false
解释:
这个单词包含了 '$' 字符且没有包含辅音字母。

解题:

1.本题共有4个要求,至少包含3个字符可直接用len()判断,而数组和英文可以使用遍历对ASCII码进行比对,而元音辅音字母就需要用两个flag进行判断
  • 出现错误,如“Uue6”,发现问题所在,将数字放入了字母判断中,导致数字会让f2为1。
  • 代码正确
  • 看看官方题解
  • 函数isalpha() 可以直接判断是否为字母,使用lower()来规避了大小写的区别,使用isdigit()来判断数字,而且直接通过先判断不是字母,如果也不是数字就直接返回false
 
4.py-函数的位置传参、关键词传参及其可变性和解包操作Leetcode刷题建议
Loading...