【2020/03/27】
- Python的变量和函数的命名一般都用下划线的方式,驼峰的命名方式一般用在给类命名(编程习惯问题)。
- Python一行太长的话可以换行,换行一般有两种方式:
方式 | 注意点 |
---|---|
\ |
这种划线的话需要注意换到下一行的代码要适当的缩进,让人看起来要指导是同一行代码 |
() | 将一整行代码外加一个括号,这样就是一个整体,可以任意回车切分,这对编译器来说是没有区别的,但是对于程序员看起来就舒服多了 |
区别 | 个人感觉还是反划线更加清晰明了一点,个人更加倾向使用\ |
- 列表
[]
- 有序的,可重复的,里面啥都能装,放个函数都可以
- 可变元素,因为可以append(), 内容发生变化的时候id()是不会变化的
- 初始化的话:
a = list()
或者a = []
都是可以用来进行初始化 - 列表的推导:
比如下面的,想给列表a中的每个元素度+1操作
好处有两个(1) 代码短,(2)相比循环,代码也快
a = [1, 2, 3]
# 方式一:原始的for循环形式的
b = []
for e in a:
b.append(e+1)
a = b
print(a)
# 方式二: 列表的推导形式
a = [e + 1 for e in a]
print(a)
# 这里对推导形式的理解稍微讲一下,
# a = [e+1 for e in a] 中的第一部分就是需要对元素进行的操作
# 然后后面的for循环就是遍历着做那些操作。
由此可见是非常好用的,代码能够看起来清秀很多!
-
.split()
切分函数 -
.join()
拼接函数
上面两个函数都是针对字符串的。用法都可以直接搜索, 其实最快的也可以直接help(.join())就行了,多熟悉代码文档,是最直接的老师! -
编程写代码的时候心里一定要有“重用”的概念,但是切记:过犹不及!不要一味的炫技!
【2020/03/30】
-
lambda
关键字
就是一样内写个小函数,增强程序的可读性用的; -
map
函数:
用法: map(func, 可遍历的元素)
就是把可遍历的元素依次用第一个参数func处理,最后也返回可便利的容器,举个例子吧,就清楚了:
f = lambda x: x**2
list(map(f, [1, 2, 3]))
#输出结果:
[1, 4, 9]
#下面是体现lambda函数的效果的写法
list(map(lambda x: x**2, [1, 2, 3]))
由此可见,map函数就是把目标函数施加在容器元素中的每个元素上!
-
列表和元组的区别:
一个老生常谈的问题,列表是可变的,元组是不可变的,元组类似于常量,但是都可以进行索引。 -
代码调试的话,到时候pbd进行专题的学习!
【2020/04/04】
清明节到了,我已经忘记自己由多少个日子没有回老家上坟了,这就是日子吗?这就是日子吧。
- Python中全大写的变量都是作为常量来处理的。
- Python中的深拷贝和浅拷贝:
这个问题满常见的,自己面试被问到了两次,一直没有深入的思考过,想要对这个由教牢固的理解,首先得指导由赋值, 深拷贝, 浅拷贝这些概念。
下面一一道来:
-
(1)赋值:
相当于赋值引用,有点像C++中的引用,就是给了个别名而已,a和b其实还是指向同一个对象的:
-
(2)深拷贝:a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的。
需要导入copy
模块:
import copy
a = {1:[1, 2, 3]}
b = copy.deepcopy(a)
- (3)浅拷贝:a 和 b 是一个独立的对象,但他们的子对象还是指向同一对象(是引用)。
a = {1:[1, 2, 3]}
c = a.copy()