零散Python知识汇总(二)

1. 链式赋值

(1)基本语法

x = y = z = value
  • value 是一个表达式或具体的值。
  • 从右到左依次赋值:z 先被赋值为 value,然后 yx 被赋值为 z 的值
a = b = c = 10
print(a, b, c)
  • c 被赋值为 10
  • 然后 b 被赋值为 c 的值。
  • 最后 a 被赋值为 b 的值

(2) 链式赋值的工作原理

 在链式赋值中,Python 会为右侧的表达式求值一次,并将结果赋给左侧的变量。赋值操作会依次从右到左进行。

x = y = [1, 2, 3]
x.append(4)
print(y) # [1, 2, 3, 4]

(3)链式赋值的常见场景 

# 1. 同时初始化多大变量
x = y = 0
print(x, y)  # 输出: 0 0


# 2. 配合条件表达式
x = y = 5 if 10 > 3 else 0
print(x, y)  # 输出: 5 5


# 3. 用于多层嵌套赋值
x = y = z = {'a': 1, 'b': 2}
x['c'] = 3
print(z)  # 输出: {'a': 1, 'b': 2, 'c': 3}

(4)链式赋值与解构赋值的区别

# 链式赋值 所有变量被赋值为同一个值
x = y = z = 5

# 解构赋值 为不同的变量赋值不同的值
x, y, z = 1, 2, 3
print(x, y, z)  # 输出: 1 2 3

# 使用系列解包赋值实现变量交换
a,b = 1,2
a,b = b,a

(5)链式赋值的性能

链式赋值只对右侧的表达式求值一次,因此在某些场景下比重复赋值更高效。例如:

x = y = some_function()

相比于:

x = some_function()
y = some_function()

第一种写法更高效,因为 some_function() 只执行了一次。 

2. 基本运算符

运算符说明示例结果
+加法3+25
-减法5-23
*乘法3*26
/浮点数除法6/23.0
//整数除法7//23
%模(取余)7/43
**2**38

divmod函数使用

divmod() 是 Python 中的一个内置函数,用于同时计算两个数的商和余数。它结合了 整数除法 (//) 和 取余操作 (%) 的功能,并以一个包含商和余数的元组返回结果。

# 整数运算 注意:除数不能为0
result = divmod(10, 3)
print(result)  # 输出: (3, 1)

# 负数运算 向下取整的商
result = divmod(-10, 3)
print(result)  # 输出: (-4, 2)
# 余数满足公式 a = b * quotient + remainder,即 -10 = 3 * (-4) + 2

# 浮点数运算
result = divmod(10.5, 3)
print(result)  # 输出: (3.0, 1.5)

3. 常见内置函数使用 

函数说明示例结果
id()id()返回唯一标识符,象在内存中的地址id(5)140032782903728
bin()bin()可以将数字转成二进制表示bin(2)'0b10'
ord()ord()可以把字符转换成对应的Unicode码ord('A')65
chr()chr()可以把十进制数字转换成对应的字符。chr(66)'B'
len()len()用于计算字符串含有多少字符len('abcv')4
str()str()可以帮助我们将其他数据类型转换为字符串。str(5.20)'5.20'
replace()replace()实现字符串替换'abcv'.replace('v','d')'abcd'
split()split()可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中),。如果不指定分隔 符,则默认使用空白字符(换行符/空格/制表符)。

a="to be or not to be

a.split()

['to', 'be', 'or', 'not', 'to', 'be']
join()join()用于将一系列子字符串连接起来。a = ['a', 'b', 'c']
'-'.join(a)
'a-b-c'
startswith()以指定字符串开头a = 'abcv'
a.startswith('a')
True
endswith()以指定字符串结尾

b = 'test.txt'

b.endswith('txt')

True
find()第一次出现指定字符串的位置a = 'abdcd'
a.find('c')
3
rfind()最后一次出现指定字符串的位置a = 'abcava'
a.rfind('a')
5
count()指定字符串出现了几次a = 'abcava'
a.count('a')
3
isalnum()所有字符全是字母或数字a = 'abc123'
a.isalnum()
True
abs()返回数字的绝对值。abs(-5)5
all()如果可迭代对象中的所有元素都为 True,则返回 True

all([0, 1, 2])

all([1, 2, 3])

False

True

any()如果可迭代对象中至少有一个元素为 True,则返回 True

all([0, 1, 2])

all([0, 0, 0])

True

False

eval()执行一个字符串表达式并返回结果。eval('2+3')5
isinstance()检查对象是否是指定类的实例。isinstance(10, int)True
............

持续更新!!!

### 数据结构课程资源汇总 #### 课代表职责与作用 在数据结构课程中,课代表通常负责协助教师管理班级事务,收集并反馈学生的学习情况。具体来说,课代表会帮助分发和回收作业、传达通知以及解答一些基础问题。这有助于提高课堂效率,促进师生之间的沟通。 #### 推荐教材 对于数据结构课程而言,《数据结构》由严蔚敏编著是一本广泛使用的经典教材[^1]。该书全面覆盖了线性表、栈、队列、树形结构、图状结构等核心知识点,并配有丰富的实例分析,适合初学者逐步深入理解各个抽象数据类型的实现方式及其应用场景。 #### 高质量讲义推荐 除了传统纸质书籍外,许多高校教授也会提供电子版讲义供学生们下载学习。这些资料往往更加贴近实际教学进度,能够及时反映最新的研究成果和技术趋势。例如清华大学计算机系邓俊辉老师的《数据结构》在线开放课程就提供了详尽的PPT幻灯片文件,每一页都精心设计以辅助讲解复杂概念,使读者更容易掌握要点[^2]。 #### 知识点总结技巧 为了更好地复习巩固所学内容,建议采用思维导图的形式来进行知识点梳理。通过绘制分支节点连接不同层次的概念关系,不仅可以让零散的信息变得条理清晰,还能有效激发联想记忆能力。比如,在整理叉查找树这一章节时,可以从定义出发,依次展开关于性质描述、操作算法(插入/删除)、平衡调整等方面的知识体系构建。 ```python class TreeNode: def __init__(self, value=None): self.value = value self.left = None self.right = None def insert_into_bst(root, val): if not root: return TreeNode(val) current_node = root while True: if val < current_node.value: if current_node.left is None: current_node.left = TreeNode(val) break else: current_node = current_node.left elif val > current_node.value: if current_node.right is None: current_node.right = TreeNode(val) break else: current_node = current_node.right return root ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值