8000 add python · lzhanforgit/python@f7eb9a1 · GitHub
[go: up one dir, main page]

Skip to content

Commit f7eb9a1

Browse files
committed
add python
1 parent 2585bc3 commit f7eb9a1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+6141
-288
lines changed

python/01-part1/images/var.png

107 KB
Loading
39.8 MB
Binary file not shown.

part1/unit1-环境搭建.md renamed to python/01-part1/unit1-环境搭建.md

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,18 +82,16 @@ https://pip.pypa.io/en/latest/user_guide/
8282
C:\users\用户名\AppData\Local\Programe\python\pythonx.x\lib\site-packages
8383
8484
Mac
85-
**pip安装目录:**
85+
**pip安装目录:**
8686
/Library/Frameworks/Python.framework/Versions/3.6/bin
8787
**模块安装目录:**
8888
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
8989
9090
3. 更新pip
91-
92-
```
93-
pip install --upgrade pip
94-
```
91+
4.
92+
python -m pip install -U --force reinstall pip
9593
2. 安装组件
96-
94+
9795
```
9896
pip install XXXX
9997
```
@@ -179,6 +177,24 @@ https://pip.pypa.io/en/latest/user_guide/
179177
```
180178
Mac:myproject michael$ virtualenv --no-site-packages venv
181179
```
180+
可以指定python版本:
181+
ubuntu:sudo virtualenv -p python3 --no-site-packages venv
182+
ubuntu:sudo virtualenv -p python3 --system-site-packages venv
183+
184+
**注意:**
185+
186+
**如果出现错误:**
187+
188+
Traceback (most recent call last):
189+
File "/home/lzhan/.local/lib/python2.7/site-packages/ virtualenv.py", line 22, in <module>
190+
import distutils.spawn
191+
ModuleNotFoundError: No module named 'distutils.spawn'
192+
193+
194+
**则需要安装**
195+
196+
sudo apt-get install python3-distutils
197+
182198
>命令virtualenv就可以创建一个独立的Python运行环境,我们还加上了参数--no-site-packages,这样,已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境。
183199
184200
第三步,新建的Python环境被放到当前目录下的venv目录。有了venv这个Python环境,可以用source进入该环境:

part1/unit2-语法基础.md renamed to python/01-part1/unit2-语法基础.md

Lines changed: 74 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,24 @@
55
2. 模块包含语句
66
3. 语句包含表达式
77
4. 表达式建立并处理对象
8+
9+
2. hello world
10+
3. 注释
11+
4. 单行注释
12+
13+
```
14+
#注释的内容
15+
```
16+
5. 多行注释
17+
18+
python 中多行注释使用三个单引号(''')或三个双引号(""")
19+
20+
```
21+
'''
22+
注释内容第一行
23+
注释内容第二行
24+
'''
25+
```
826
1. 中文编码
927

1028
只要在文件开头加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 就行了
@@ -14,31 +32,10 @@
1432
```
1533
>Python3.X 源码文件默认使用utf-8编码,所以可以正常解析中文,无需指定 UTF-8 编码。
1634
17-
>如果你使用编辑器,同时需要设置 py 文件存储的格式为 UTF-8,否则会出现类似以下错误信息:
18-
35+
>如果你使用编辑器,同时需要设置 py 文件存储的格式为 UTF-8.设置路径:file / setting / editor / file encodings
1936
2. 交互式编程
2037
2138
在命令行中输入python即可
22-
3. Python标识符
23-
24-
* 在 Python 里,标识符由字母、数字、下划线组成。
25-
26-
* 在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。
27-
28-
* Python 中的标识符是区分大小写的。
29-
30-
* 以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;
31-
32-
* 以双下划线开头的 __foo 代表类的私有成员;以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。
33-
34-
* Python 可以同一行显示多条语句,方法是用分号 ; 分开
35-
36-
```
37-
#如果要判断的字符串过多可以这样写
38-
lst = [str1, str2]
39-
# _ 只有单个下划线的变量名会保存最后表达式的结果
40-
in_lst = [_ for _ in lst if word in _]
41-
```
4239
4. 行和缩进
4340
4441
学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。python 最具特色的就是用缩进来写模块。
@@ -62,18 +59,65 @@
6259
```
6360
days = ['Monday', 'Tuesday', 'Wednesday',
6461
'Thursday', 'Friday']
65-
```
66-
6. 注释
67-
python中单行注释采用 # 开头。
68-
python 中多行注释使用三个单引号(''')或三个双引号(""")。
69-
62+
```
7063
7. 输入和输出
7164
65+
输入
66+
7267
```
73-
raw_input("按下 enter 键退出,其他任意键显示...\n")
68+
#python2.x
69+
raw_input("按下 enter 键退出,其他任意键显示...\n")
70+
71+
#python3.x
72+
input("按下 enter 键退出,其他任意键显示...\n")
7473
```
74+
**注意在python2.x中**
75+
* input返回的是数值类型,如int,float
76+
* input会计算在字符串中的数字表达式,而raw_input不会
77+
* raw_inpout返回的是字符串类型,string类型’
78+
7579
76-
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号 ,
80+
输出
81+
82+
print() 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号 ,
83+
84+
```
85+
age = 18
86+
name = "xiaoming"
87+
print("我的姓名是%s,年龄是%d"%(name,age))
88+
print("我的姓名是',name,'年龄是',age)
89+
90+
```
91+
常用的格式符号
92+
93+
格式符号|转换|
94+
---|---|
95+
%s| 通过str() 字符串转换来格式化|
96+
%d| 有符号十进制整数|
97+
%f| 浮点实数|
98+
99+
9. demo
100+
101+
输出一张个人名片
102+
103+
```
104+
'''
105+
# 用户名输入姓名
106+
name=input('请输入你的姓名')
107+
# 用户名输入电话
108+
tel=input('请输入你的电话号码')
109+
# 用户输入公司名称
110+
com=input('请输入你的公司名称')
111+
112+
# 打印名片
113+
print('=======================')
114+
print('姓 名:%s'%name)
115+
print('电 话:%s'%tel)
116+
print('公司名称:%s'%com)
117+
print('=======================')
118+
'''
119+
```
120+
77121
8. 执行脚本传入参数
78122
79123
```
@@ -92,6 +136,5 @@
92136
* \#!/usr/bin/python 相当于写死了python路径;
93137
94138
* \#!/usr/bin/env python 会去环境设置寻找 python 目录,推荐这种写法
95-
96-
9.
139+
97140

python/01-part1/unit3-queue.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# queue
2+
3+
4+
1. 特性
5+
6+
Queue是python中的标准库,可以直接
7+
8+
import queue
9+
10+
队列是线程间最常用的交换数据的形式
11+
12+
2. 方法
13+
14+
1. 初始化
15+
16+
import queue
17+
q=queue.Queue(10) 构建长度为10的队列
18+
19+
q = queue.Queue(maxsize=3)
20+
21+
2. 包中的常用方法:
22+
23+
Queue.qsize() 返回队列的大小
24+
25+
Queue.empty() 如果队列为空,返回True,反之False
26+
27+
Queue.full() 如果队列满了,返回True,反之False
28+
29+
Queue.full 与 maxsize 大小对应
30+
31+
Queue.get([block[, timeout]])获取队列,timeout等待时间
32+
33+
3. 将一个值放入队列中
34+
35+
myqueue.put(10)
36+
put(item[, block[, timeout]])
37+
38+
将item放入队列中。
39+
40+
如果可选的参数block为True且timeout为空对象(默认的情况,阻塞调用,无超时)。
41+
42+
如果timeout是个正整数,阻塞调用进程最多timeout秒,如果一直无空空间可用,抛出Full异常(带超时的阻塞调用)。
43+
44+
如果block为False,如果有空闲空间可用将数据放入队列,否则立即抛出Full异常
45+
其非阻塞版本为put_nowait等同于put(item, False)
46+
47+
48+
49+
4. 将一个值从队列中取出
50+
51+
myqueue.get()
52+
53+
54+
demo
55+
56+
import queue
57+
58+
q = queue.Queue(maxsize=3)
59+
60+
for i in range(3):
61+
q.put(i)
62+
63+
while not q.empty():
64+
print(q.get())
65+
66+
67+
5. task_done()
68+
69+
意味着之前入队的一个任务已经完成。由队列的消费者线程调用。每一个get()调用得到一个任务,接下来的task_done()调用告诉队列该任务已经处理完毕。
70+
71+
如果当前一个join()正在阻塞,它将在队列中的所有任务都处理完时恢复执行(即每一个由put()调用入队的任务都有一个对应的task_done()调用)。
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# 变量类型-Dictionary
2+
1. 类型
3+
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中.
4+
5+
键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。
6+
7+
2. 特性
8+
9+
和list和tuple一样,dictionary也可以:
10+
11+
```
12+
char={item:ord(item) for item in 'python'}
13+
14+
print(char)
15+
```
16+
17+
3. 字典访问
18+
19+
```
20+
user={
21+
'name':{'firstName':'zhan','lastName':'liang'},
22+
'age':20,
23+
'address':'usa',
24+
'hobby':['film','sport']
25+
}
26+
27+
print('user length:',len(user))
28+
29+
print('user first property is :',user['name'])
30+
31+
for key,value in user.items():
32+
print ('property %s value %s' % (key,value))
33+
34+
for kk in user.keys():
35+
print ('property %s' % (kk))
36+
37+
for vv in user.values():
38+
print ('values %s' % (vv))
39+
40+
```
41+
42+
如果想根据key的先后顺序遍历字典,则可以:
43+
44+
```
45+
for kk in sorted(user.keys()):
46+
print ('property %s' % (kk))
47+
```
48+
4. 针对不存在的键,如果访问会出现错误。
49+
50+
```
51+
nation=user['nation'] #error
52+
53+
nation=user['nation'] if 'nation' in user else 'china'
54+
```
55+
5. dict,bytes,string之间的相互转化
56+
57+
```
58+
s='{"id":"001","name":"python"}'
59+
# s='http://www/163.com'
60+
#string to bytes
61+
s_bytes_utf8=s.encode('utf-8')
62+
print(s_bytes_utf8)
63+
64+
# bytes to string
65+
s_string_utf8=s_bytes_utf8.decode('utf-8')
66+
print(s_string_utf8)
67+
68+
# string to dict
69+
s_dict=eval(s_string_utf8)
70+
71+
print(s_dict['id'])
72+
73+
# dict to string
74+
75+
s_string=str(s_dict)
76+
77+
print(s_string)
78+
79+
80+
81+
```
82+
83+
84+
6. 字典方法
85+
86+
D.clear() #移除D中的所有项
87+
D.copy() # 9E6C 回D的副本
88+
D.fromkeys(seq[,val]) #返回从seq中获得的键和被设置为val的值的字典。可做类方法调用
89+
D.get(key[,default]) #如果D[key]存在,将其返回;否则返回给定的默认值None
90+
D.has_key(key) #检查D是否有给定键key
91+
D.items() #返回表示D项的(键,值)对列表
92+
D.iteritems() #从D.items()返回的(键,值)对中返回一个可迭代的对象
93+
D.iterkeys() #从D的键中返回一个可迭代对象
94+
D.itervalues() #从D的值中返回一个可迭代对象
95+
D.keys() #返回D键的列表
96+
D.pop(key[,d]) #移除并且返回对应给定键key或给定的默认值D的值
97+
D.popitem() #从D中移除任意一项,并将其作为(键,值)对返回
98+
D.setdefault(key[,default]) #如果D[key]存在则将其返回;否则返回默认值None
99+
D.update(other) #将other中的每一项加入到D中。
100+
D.values() #返回D中值的列表
101+
102+
https://www.cnblogs.com/mxh1099/p/8512552.html

0 commit comments

Comments
 (0)
0