@@ -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+ 
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_PI 、MAX_VEHICLE_SPEED 。
155+
156+ 这与 Java 命名方法不同,Java 最典型的命名方法——驼峰命名法(camel case)。
65157
66158
67159
0 commit comments