下面用列表的形式,来记录一些适合我本人的Python的笔记。内容主要来自于Python的官方文档,以及Codex询问。由于不同的人具有不同的编程基础和世界观,所以本文仅适用于此时此刻的博主。欢迎在评论区留言讨论。
注意事项:
- 不可以在列表的开头使用格式化代码;
- 可以在命令行中,直接输入「python」来启动一个命令行中的python程序,直接在命令行中进行一些基本的计算;
- python的一个特点是「动态变量」,即给对象赋值的之前,不必提前指定对象的类型。比如
1 | s=41 |
- 在python中,字符串(string)可以用单引号「’abc’」或双引号「“abc”」来包裹。特别地,如果希望输入引号,可以用反斜线进行转义。
- 字符串
s='abc\n123',则在命令行中输入s的输出结果是'abc\n123'。在命令行中输入print(s)的结果则是
1 | >>>print(s) |
即特殊字符在print函数中才会改写。如果不希望被字符串在print的时候被转写,可以使用print(r'123\n');
5. 可以对字符串进行如下操作
- 重复*:
3 * 'abc'='abcabcabc' - 合并+:
'abc'+'def'='abcdef'
- 对于字面值,可以不加+号来粘合;
- 不可以对变量或表达式来省略+号粘合;
- 字符串可以用方括号索引,排序从0开始,即
word[5]表示取第6个字符。索引还支持负数,含义是「倒数第几个」,比如word[-1]表示倒数第1个字符,负数索引从-1开始。 - 切片索引:
word[:5]表示从头取到第6个字符,但第6个不取;word[-2:]表示从倒数第2个开始取,且包含倒数第2个。总之是一个左闭右开区间,不写就是正负无穷。 - 切片会自动处理越界索引;
- 长度函数返回列表长度:
len() - 列表支持合并和重复,另外列表是「mutable可变类型」,而字符串是「不可变类型」,即列表支持修改某个元素,比如
1 | s=[1,2,3] |
- 函数
list.append可以在列表后增加元素; - 列表的赋值不会复制对象,而是创建一个指向这个对象的指针。当你修改原对象的时候,新对象也会随之改变。如果要复制,需要用
list.copy函数,进行「浅拷贝」。实质上,浅拷贝是一个这样的过程- a=[指针1,指针2]
- b=[指针3,指针4]
- 其中指针1和指针3的指向相同,指针2和指针4的指向相同;
- 如果赋值b[0]=[3,4,5],则改变了b[0]这个指针的指向,后续
b[0].append(6)不会改变print(a[0])的输出结果; - 如果进行b[0].append(3),则先找到了指针1所指的对象,然后为这个对象添加了新元素3,这样一来,
print(a[0])的值也发生了变化。
- 当然,不是所有类型都有append方法。对于不可变类型(比如str, int),进行合并操作实际上是改变了指针所指的地址,并不是改变了当前地址的值;
- 还有函数参数也不会,函数参数在传入的时候,本质上是创建了一个局部的指针,这个指针
1 | def f(lst): |
- 多重赋值:
a,b=0,1 - while循环:用缩进来组织循环体
1 | while a<10: |
- print函数可以输出给定参数的值,
print('the value of i is',i),在打印时会自动给参数i前面添加空格。实际操作如下:
1 | i = 256*256 |
- 关键字参数 end 可以取消输出后面的换行, 使得你可以在这个字符串后面继续编辑,或用另一个字符串结尾.
1 | a, b = 0, 1 |
- 字段
elif是python中的else if; - 对于一个字典users,假设Hans是其中的一个key,则
pop('Hans')可以删掉旧键并返回它的值; - 字段
range(2,n)取的是[2, 3, 4, ... , n-1],依旧左闭右开。 - 在 for 循环中,else 子句会在循环结束其最后一次迭代之后,即未执行 break 的情况下被执行;
- 在 while 循环中,else 子句会在循环条件变为false之后执行;
- pass语句
- 不执行任何操作;
- pass可以作为占位符,当你需要实现一个东西,但是暂时还没思路的时候,可以先pass掉,注释上,后面再来写;
- match-case语句:多值选择,
- 注意缩进,最后使用
_作为通配符必定成功 - 可以用
|组合多个字面值
1
2
3
4
5
6
7match status:
case 400:
return "Bad request"
case 411:
return "Hahaha"
case _:
return "I don\'t know what is wrong" - 注意缩进,最后使用
- 未完待续