技巧
神权否定
这个作者很懒,什么都没留下…
展开
-
Python:等式同时对多个变量的赋值说明
Python可以利用等式对多个变量同时赋值,如: a, b, c = 1, 2, 3。利用这个特性可以很简洁的写出变量交换的代码:a = 1b = 2a, b = b, a执行上述代码后 a=2,b =1。这样就快速的完成了a,b变量之间的交换。下面解释代码执行过程:上述代码执行到第三行,先计算等式右边的b值,等式边为:a, b = 2, a。然后再计算等式右边的a值,等式边为:a, b = 2, 1。按从左到右的顺序对a, b 进行赋值计算,将a值边为2。按从左到右的顺序对a, b原创 2020-12-21 15:42:25 · 3664 阅读 · 1 评论 -
Python:关于按位操作的说明(leetcode 剑指 Offer 65. 不用加减乘除做加法)
关于按位操作符 & | 和 and or 的区别对于数值类变量:&:对符号两侧变量的每一位执行 与 操作|:对符号两侧变量的每一位执行 或 操作and:含0返回0,均为非0返回最后一个值or:至少有1个非0时,返回第一个非0# 1&2,2在二进制里面是10,1在二进制中是01,那么01与运算10得到是0 # 1:01 2:10 3:111 & 2 # 输出为 0, 1 | 2 # 输出为3 # 判断变量是否为0,.原创 2020-11-14 01:45:37 · 264 阅读 · 0 评论 -
算法:二分查找出现无限循环的原因 以及 寻找左右边界的代码写法
写二分查找时容易出现无限循环代码如下:1. 问题代码# 二分查找num_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]target = 5i, j = 0, len(num_list)while i < j: mid = (i + j)//2 if num_list[mid] < target: i = mid else: j = mid # j = mid - 1 也会一样出现无限循环卡死原创 2020-09-27 17:22:35 · 809 阅读 · 0 评论 -
Python:and 和 or 的优先级
结论: python遇到and 或者 or 的时候是按从左到右的顺序执行语句,and 和 or 优先级一致def a(): print('a') return 1def b(): print('b') return 0def c(): print('c') return 1d = b() or c() and a()执行结果为:修改代码如下:def a(): print('a') return 1.原创 2020-07-31 15:39:39 · 1775 阅读 · 1 评论 -
Python:二维数组复制和赋值问题
Python二维数组复制后,改变其中一个数组里面的值,另一个也会同步改变,试了如下方法,均不能达到改变一个的同时保持另一个数组内值不变的效果。a = [[1, 2], [3, 4]]b = a.copy()c = a[:]d = []for i in a: d.append(i)b[0][0] = Noneprint(a, '\n', b, '\n', c, '\n', d)print(id(a), id(b), id(c), id(d))从运行结果中可以看到,复制后的原创 2020-07-11 15:36:19 · 6387 阅读 · 0 评论