基础很重要

编码

Python3 源文件默认以 UTF-8 编码

标识符

标识符可以理解为标识变量、常量和函数的符号。就像人的名字一样。

标识符命名的一些规则

  1. 第一个字符必须是字母表中字母或下划线_;
  2. 标识符的其他部分由字母、数字和下换线组成;
  3. 标识符对大小写敏感。就是说区分大小写。

在 Python 3 中,可以用中文作为变量名,非 ASCII 标识符也是允许的了。但是不建议用中文用变量名,不然坑的是自己和队友。

保留字

也称为关键字,即不能用作任何标识符的名字,Python 自己占用了,我们就不能用这些字来定义变量了。

Python标准库中有一个 keyword 模块,可以输出当前版本python的所有关键字。

1
2
3
4
5
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>> len(keyword.kwlist)
35

也就是说 Python 3.8.3 有 35 个关键字。

注释

三种注释方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#第一种 print('aa')

'''
第二种
print('bb')
'''


"""
第三种
print('cc')
"""


#上面的 代码都在注释里,是不执行的。只有下面的这一行才能执行。
print('dd')

缩进

python 用缩进来表示代码块。代码块就是一块代码。别的语言一般用 {}。

缩进有好有坏,习惯它就好。约定缩进的空格数为四个。

1
2
3
4
5
6
7
a = 1
if a == 2:
print("1 == 2")
else:
print('1 == 1')
print('缩进不对会出错的,程序就是这么笨')
print('这里是对的,但是上面错了,这一行也就执行不了了')

对齐很重要。

一行写不完怎么办

用 反斜杠 \ 把多行语句拼接起来

1
2
3
4
5
6
7
8
9
a = 1
b = 2
c = a + \
b
print(c)

# 在 [], {}, 或 () 中的多行语句,就不需要使用反斜杠(\)啦
list = [1,2,3,4,
5]

数字要分 4 种

1
2
3
4
5
6
7
# 整数 int

# 布尔数 True,False

# 小数(浮点型) 1.234

# 复数 1 + 1j

字符串

  1. Python 中单引号和双引号使用完全相同,自己随便用。
  2. 多行字符串用 三引号,看看前面的注释。
  3. 级联字符很简单
  4. 多个字符串拼接在一起,用加号,单个字符串想重复多次,用乘号
  5. 想取得某个下标下的字符用索引。索引可以从左到右,从零开始,也可以从右往左以-1开始。就是不能从中间开始。
  6. Python 中的字符串是不能改变。你看到的改变都是表象。
  7. 有单字符的类型吗?没有。可以用长度为1的字符串来表示。
  8. 想截字符串中的一部分怎么办,无敌大法 变量[头:尾:步长] 步长默认为一, 可以不写。

空行

在代码执行层面没什么用,Python解释器会忽略空行。

那空行是干嘛的?给人看的。同样的Python代码,有的人写的代码看着很漂亮,有的人写的看着像一坨屎。简单点,必要的地方加点空行就可以了。

一行如何写多条语句

用 分号 ;

1
a = 1; b = 2; c = 2

如果一条语句过长,建议写成一条。

代码组

一组代码。

像 if、while、def 和 class 这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。

1
2
3
4
5
6
7
8
9
10
a = 1
if a == 1:
#这是一组代码
print('a == 1')
elif a == 2:
#这也是一组代码
print('a != 2')
else:
# 这也是一组代码
print('a != 1 ,同时 a != 2')
1
2
3
4
5
6
7
8
a = 1
print(x)

# 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end="":
print(x, end="")

# 也可以加上自定义的打印结尾
print(x, end='\n peng')

import, from … import

Python 的强大,不在于本身,而在于 Python 有庞大的第三模块,特别是数据统计和科学计算相关的。这也是为啥没有一门新的语言或者旧的语言能代替 Python 在数据统计和科学计算领域的主要原因。

Python 的第三方库主要是世界范围内的程序员或者用到 Python 解决自己问题时,发现没有对应的功能,就自己写了个模块,好的模块使用的人多了,就会有更多的人去维护它,升级它,有点像飞轮效用。

所以,你想用用Python做什么,主要是看有没有对应领域的模块,这些模块好不好用。我们是不会去造轮子的。就是要白嫖。

但是,第三方模块后面在学,其实就是比内部模块多了一步安装,单这一步也让很多人望而却步。下面通过 内置的 platform 获取你当前电脑的信息

1
2
3
4
# 导入 platform模块
import platform
# 调用 platform 模块的 platform 方法
platform.platform()

也可以这样

1
2
3
# 从 platform 导入 platform 方法
from platform import platform
platform()

命令行参数

1
2
python3 -h #h 为help的缩写。
# 最好一行行看完。

如何在执行 Python 脚本的时候传入一些参数

1
2
3
4
5
6
7
# 我们要用到 sys 模块。 sys ,system 的缩写。
from sys import argv# arguments vector
print("命令行的第一个参数:",argv[0])

# 命令行的每一个参数
for item in argv:
print(item)

为什么编程语言中有那么多缩写

Python 诞生于 1991年,那当时的电脑的内存主流配置是多少?4M,现在是多少,基本上都是 8G,甚至 16G,32G,增长了几千倍。

就相当于改革开放前,人均收入比现在也低了很多,具体就不查了,在资源有限的情况下就要尽可能的节省。 好好爱护地球吧。

为啥绝大部分的编程语言中的数组下表都是从零开始的

那是你不了解初代程序员的脑回路。初代程序员设置的那就不是下标,而是偏移量的意思。比如 第一个元素相对于第一个元素的偏移量为0,第三个元素相对于第一个元素的偏移量为2。

当编程出圈以后,别人不懂了,第一个为啥是0,不是1。解释是解释不清楚了,慢慢的变成了编程世界里的文化了,后续设计编程语言的人也只好从零开始了。

当大家都错了以后,就不算错了。甚至成为了一种文化。

视频课程

https://www.bilibili.com/video/BV1jK411H7JK/