Skip to content

Commit f0acdab

Browse files
committed
Rendered TeX expressions in 2cd9db5, 04530e0
1 parent 04530e0 commit f0acdab

File tree

1 file changed

+176
-1
lines changed

1 file changed

+176
-1
lines changed

python/README.md

+176-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
# Python基础
2+
3+
本文为Python的一些基础知识总结,基于Python 3。
4+
25
<!-- TOC depthFrom:1 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 -->
36

47
- [Python基础](#python基础)
@@ -15,6 +18,26 @@
1518
- [String replication 字符串复制](#string-replication-字符串复制)
1619
- [String is immutable 字符串的值是不可变的](#string-is-immutable-字符串的值是不可变的)
1720
- [String functions 字符串常用函数](#string-functions-字符串常用函数)
21+
- [Lists and Tuple 列表和元组](#lists-and-tuple-列表和元组)
22+
- [Tuple 元组](#tuple-元组)
23+
- [Tuple properties 元组属性](#tuple-properties-元组属性)
24+
- [Tuple Nesting 元组嵌套](#tuple-nesting-元组嵌套)
25+
- [List 列表](#list-列表)
26+
- [List properties 列表属性](#list-properties-列表属性)
27+
- [Covert String to List 转换字符串到列表](#covert-string-to-list-转换字符串到列表)
28+
- [List Aliasing 列表别名](#list-aliasing-列表别名)
29+
- [List Clone 列表复制](#list-clone-列表复制)
30+
- [Dictionary 字典](#dictionary-字典)
31+
- [Sets 集合](#sets-集合)
32+
- [Conditions and Branching 条件和分支](#conditions-and-branching-条件和分支)
33+
- [Conditions 条件](#conditions-条件)
34+
- [Branching 分支](#branching-分支)
35+
- [Loops 循环](#loops-循环)
36+
- [Functions 函数](#functions-函数)
37+
- [Build in functions 内置函数](#build-in-functions-内置函数)
38+
- [Collecting arguments 多参数](#collecting-arguments-多参数)
39+
- [Scope 作用域](#scope-作用域)
40+
- [Objects and Classes 对象和类](#objects-and-classes-对象和类)
1841

1942
<!-- /TOC -->
2043

@@ -26,7 +49,7 @@
2649
* bool
2750

2851
### Type conversion 类型转换
29-
使用 _Type(*)_ 用来获得变量类型
52+
使用 _type(*)_ 用来获得变量类型_help(*)_ 可以获得帮助说明。
3053
``` python
3154
float(7) # => 7.0
3255
int(7.24) # => 7
@@ -115,3 +138,155 @@ s1 = "Wen" # OK
115138
* `str.upper()`
116139
* `str.repleace(from_str, to_str)`
117140
* `str.find(sub_str)`,返回第一次出现的`index`,没找到返回`-1`
141+
142+
## Lists and Tuple 列表和元组
143+
### Tuple 元组
144+
* Tuple是有序的序列
145+
* Tuple可以含有不同的基本类型,例如`string``int``float``bool`
146+
* 使用圆括号 `(*, *)`
147+
148+
#### Tuple properties 元组属性
149+
* 可以使用索引的方式访问`tuple[i]`
150+
* 合并:`tuple3 = tuple1 + tuple2`
151+
* 支持`slicing`
152+
* 同样`immutable`
153+
154+
#### Tuple Nesting 元组嵌套
155+
`Tuple`的一个`item`可以是`Tuple`
156+
``` python
157+
tuple0 = (1, 2, ("pop", "rock"), (3, 4))
158+
tuple0[2] # => ("pop", "rock")
159+
tuple0[2][1] # => "rock"`
160+
```
161+
162+
### List 列表
163+
* List是有序的序列
164+
* List可以含有不同的基本类型,例如`string``int``float``bool`
165+
* 使用方括号 `[*, *]`
166+
167+
#### List properties 列表属性
168+
* 支持索引访问
169+
* 合并:`list3 = list1 + list2`
170+
* 等于`list3 = list1`, `list3.extend(list2)`
171+
* **注意**`append``extend`不同,被`append``item`是作为一个整体追加到`list`末尾,例如`L.append(["pop", 10])`后,`L`中多了一个元素`["pop", 10]`
172+
* 支持`slicing`
173+
* 支持Nesting 嵌套
174+
* **`mutable`**,元素可被修改
175+
* 对某个元素重新赋值:`L[0] = 0`
176+
* `del(L[0])`即可删除某个`item`
177+
178+
#### Covert String to List 转换字符串到列表
179+
`string.split()`:按照空格拆分字符串
180+
``` python
181+
"Kaikai is a dog".split() # => ['Kaikai', 'is', 'a', 'dog']
182+
"Kaikai,is,a,dog".split(",") # => ['Kaikai', 'is', 'a', 'dog']
183+
```
184+
185+
#### List Aliasing 列表别名
186+
如果一个变量`B`指向另一个变量`A` `(B = A)`,那么`B``A`的别名。对`A`的任何改动,`B`都可以访问到。
187+
188+
#### List Clone 列表复制
189+
复制一个列表通过 `B = A[:]`的方式,`A``B`相互不影响
190+
191+
## Dictionary 字典
192+
`Dictionary`中的每个元素由`(key, value)`的键值对组成。
193+
* 使用花括号来表示`{}`来表示。
194+
* `Key`是唯一的,并且不可修改
195+
* `value`可以是可修改的/不可修改的,可重复的
196+
* 每个`item`之间用逗号隔开
197+
* 访问
198+
* 使用`dict[key]`的方式来访问`value`
199+
* 新增
200+
* 直接对一个`dict[key]`赋值
201+
* 删除
202+
* `del(dict[key])`
203+
* 获取所有keys或values
204+
* `dict.keys()`
205+
* `dict.values()`
206+
207+
```python
208+
dic = {"k1":1, "k2":"2", "k3":[3,3], "k4":(4,4), ('k5'):5}
209+
```
210+
211+
## Sets 集合
212+
`Sets` 是类似`list``tuple`的集合,可以包含任意元素。
213+
* 使用花括号来表示`{}`来表示。
214+
* **Unordered**:Sets是无序的
215+
* **Unique**:Sets里的元素是唯一的
216+
* 创建
217+
* 通过类型转换:`set(a_list)`
218+
* 新增
219+
* `s.add(item)`
220+
* 删除
221+
* `s.remove(item)`
222+
* 两个集合的交集
223+
* `s0 & s2`
224+
* 两个集合的合集
225+
* `s0`
226+
* 测试是否包含某个元素
227+
* `item in s`
228+
* 测试是否是子集
229+
* `s0.issubset(s1)`
230+
231+
## Conditions and Branching 条件和分支
232+
### Conditions 条件
233+
* `==, <=, >=, >, <, !=`
234+
* 比较int、float、double、string、list等都可以
235+
* 尤其是`==`可用来比较值/元素是否相同
236+
* `or` / `and`
237+
238+
### Branching 分支
239+
* `if (...), elif(...), else`:
240+
241+
## Loops 循环
242+
`range([start], end)`
243+
* 产生从`0`开始的一个序列知道`end -1`
244+
245+
`for i in range(N):`
246+
* 循环`0, 1, ..., N-1`
247+
248+
`while (condition):`
249+
250+
## Functions 函数
251+
函数是有输入和输出的代码集合,主要目的是为了复用,同时让代码结构更清晰。 _Python_ 中函数的定义使用关键词`def function_name():`
252+
253+
### Build in functions 内置函数
254+
* `len()`: 长度、元素个数
255+
* `sum()`:元素求和
256+
* `sorted()`:将collection的元素排序的结果返回,原collection不受影响
257+
258+
### Collecting arguments 多参数
259+
参数前可以有1个或2个星号,这两种用法其实都是用来将任意个数的参数导入到python函数中。
260+
* `def foo(param1, *agrs):`
261+
* 将所以参数以元组(tuple)的形式导入
262+
``` python
263+
def foo(param1, *param2):
264+
print(param1) # => 1
265+
print(param2) # => (2, 3, 4, 5)
266+
foo(1,2,3,4,5)
267+
```
268+
* `def bar(param1, **kwargs):`
269+
* 将参数以字典的形式导入
270+
``` python
271+
def bar(param1, **param2):
272+
print(param1) # => 1
273+
print(param2) # => {'a': 2, 'b': 3}
274+
bar(1, a=2, b=3)
275+
```
276+
277+
### Scope 作用域
278+
_Python_ 中变量区分局部和全局作用域,同 _C++_ / _Java_ 之类的语言。
279+
如果在函数中希望定义全局变量,可以在变量前加关键字`global`,以便在全局可被访问。
280+
281+
## Objects and Classes 对象和类
282+
* **类(Class)**: 用来描述具有相同的属性(Data attributes)和方法(methods)的对象的集合。
283+
* 定义:
284+
* `class ClassName ([ParentClassName]):`
285+
* 构造函数或初始化方法:
286+
* `def __init__(self, name, salary):`
287+
* **对象(Object)**:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
288+
* 创建:
289+
* `varName = ClassName ([parameters])`
290+
* **方法(Method)**:类中定义的函数
291+
292+
可以用`dir(object)`的方式列出类的属性。

0 commit comments

Comments
 (0)