Skip to content

Commit f827d66

Browse files
committed
update
1 parent 725435a commit f827d66

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed
226 KB
Loading

bornforthis/column/python60/01.md

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,15 +53,107 @@ Python 相关的就业机会也是非常多,待遇也很优厚。
5353

5454
让我们开始吧。
5555

56+
**首先问大家一个问题,你知道 Python 是一门什么样的语言吗?**
5657

58+
## Python 语言两大特性
5759

60+
Python 是一门动态的、强类型语言。
5861

62+
### 什么是动态语言?
5963

64+
要了解什么是动态语言,要首先了解“类型检查”。
6065

66+
类型检查是验证类型约束的过程,编译器或解释器通常在编译阶段或运行阶段做类型检查。
6167

68+
类型检查就是查看“变量”和它们的”类型”,然后判断表达式是否合理。例如,不能拿一个 string 类型变量除以浮点数变量。
6269

70+
如果类型检查发生在程序运行阶段(run time),那么它便是“动态类型语言”(dynamically typed languages)。常见的动态语言包括:
6371

72+
- Python
73+
- JavaScrpit
74+
- PHP
6475

76+
类型检查发生在“编译阶段”(compile time)的是“静态类型语言”(statically typed languages)。常见的静态类型语言包括:
77+
78+
- C
79+
- C++
80+
- Java
81+
- C#
82+
- Scala
83+
84+
### 什么是强类型语言?
85+
86+
强类型语言是指:不管是在编译阶段还是运行阶段,一旦某种类型绑定到变量后,此变量便会持有此类型,并且不能同其他类型在计算表达式时,混合使用。
87+
88+
例如,在交互式工具 IPython 中输入如下两行代码:
89+
90+
```python
91+
In [1]: a = 5
92+
In [2]: a = a + 's'
93+
```
94+
95+
程序会抛出 TypeError 异常:
96+
97+
```python
98+
unsupported operand type(s) for +: 'int' and 'str'
99+
```
100+
101+
意思是不支持 int 变量和 str 变量相加。
102+
103+
常见的强类型语言有:
104+
105+
- Python
106+
- Java
107+
- C#
108+
- Scala
109+
110+
与之对应的是弱类型语言,弱类型语言容易与其他类型混合计算。弱类型语言代表 JavaScript。
111+
112+
支持如下操作:
113+
114+
```python
115+
var data = 5
116+
data = data + 'xiaoming' //string 和 int 结合自动转化为 string
117+
```
118+
119+
常见的弱类型语言有:
120+
121+
- C
122+
- C++
123+
- PHP
124+
- Javascript
125+
126+
如下,按照是否为静态/动态语言,弱类型/强类型两个维度,总结常用的语言分类。
127+
128+
![](./01.assets/2020-02-05-080211.png)
129+
130+
## 四大基本语法
131+
132+
分别从变量命名规则、缩进原则、特殊关键字和特殊运算符四个方面,总结 Python 的基本语法。
133+
134+
### 命名规则
135+
136+
Python 的变量命名规则主要包括两条:
137+
138+
- 允许包括英文、数字以及下划线(`_`),不能以数字开头
139+
- 名称区分大小写
140+
141+
特别说明以“下划线”开头的变量是有特殊意义的:
142+
143+
- 类变量若以单下划线(`_`)开头,代表不能直接被访问,类似于 C# 的受保护型变量(protected),表示不能通过 `import module_name` 而导入。
144+
- 类变量若以双下划(`__`)开头,表示为类的私有成员,不能被导入和其他类变量访问。
145+
- 以双下划开头和双下划线结尾的变量是 Python 里的专用标识,有特殊的身份。
146+
147+
如 Python 自定义类中都包括 `__init__``__add__` 方法,如果不重写 `__add__ ` 去执行两个类加法操作,程序会抛 TypeError 异常。只有重写后,程序才能正常执行加法操作。
148+
149+
Python 变量命名习惯一般遵守蛇形命名法(snake case):
150+
151+
- 一般变量命名,book_id、book_store_count;
152+
- 类名首字符为大写,如 Python 内置模块 collections.abc 中的 Iterable 类、我们自定义的 Book 类等;
153+
- 类方法名:get_store_count();
154+
- 其他特殊变量,会全部大写,M_PIMAX_VEHICLE_SPEED
155+
156+
这与 Java 命名方法不同,Java 最典型的命名方法——驼峰命名法(camel case)。
65157

66158

67159

0 commit comments

Comments
 (0)