一、序章
1.Python特点
- Python is powerful and fast; plays well with others; runs everywhere; is friendly and easy to learn; is open.
- Python语言技术特点:解释型高级通用脚本语言,支持面向过程和面向对象,具有通用性。
- 关于语言类型的描述:
- 静态语言(c语言)采用编译方式执行,动态语言(python)采用解释方式执行。
- 编译是将源代码转换成目标代码的过程,解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程。
- Python没有主函数的说法。
2.第三方库
- Python的内置函数可以直接使用不需要用import来导入。
- 计算机视觉方面:OpenCV、Luminoth。
- 开发用户界面的第三方库:PyQt、PyFObject、PyGTK。
- 用于数据分析及可视化处理的第三方库:numpy(存储和处理大型矩阵)、scipy、pandas、matplotlib、seaborn、mayavi2、TVTK。
- Web开发方向第三方库:Pyramid、Django、Flask、Pylons。
- 机器学习领域的第三方库:mxnet、Tensortflow、keras、PyTorch。
- 网络爬虫方向的第三方库:scrapy、grab。
- 自然语言处理方向的第三方库:SnowNLP、loso、NLTK。
- 游戏开发方向:Pygame。
- 文本处理方向:pdfminer,beautifulsoup4(解析和处理HTML和xml)。
- 处理图像:PIL。
- 生成词云图:worldcloud。
- 安装和管理python第三方库:pip。
- 第三方中文分词库:jieba。
- 数据存储方向:redis-py.
- Python第三方库的安装方法:pip工具安装;自定义安装;文件安装(go get时go语言安装方法)
- 打包python源代码使用pyinstaller模块。
3.标准库
- 产生各种分布的伪随机序列库:random库(设置相同种子,每次调用随机函数生成的随机数相同)
- 图形绘制:turtle库。
- 处理时间标准库:time库。
- random.uniform(a,b):生成[a,b]之间的随机小数。
- random.random():没有参数,生成0-1之间的随机小数。
- random.getrandbits(k):生成一个k比特长度随机整数。
- random.choice(k):从序列中选择元素。
- random.shuffle(k):将序列元素随机排序。
- random.sample(k):从指定列表中提取n个不同元素。
- turtle.fd(distance):画笔移动距离。
- turtle.left(angle):右转角度。
- turtle.seth(to_angle):设置当前前进方向。
- setup():设置主窗体的大小和位置。
- penup():提起画笔。
- clear():清空当前窗口,但不改变画笔的位置。
- done():让画面停顿,但不立即关闭窗口。
- time.time():以数字形式返回当前系统时间。
- gmtime():获取当前时间戳的对应对象。
- striftime():时间格式化。
二、用python设计的第一个小程序
1.猜数字游戏(第一版)
#猜数字游戏(第一版)
print("--------GUESS NUMBER GAME--------")
temp = input("You can guess one number:")
guess = int(temp)
if guess == 8:
print("Yes! You are smart!!")
else:
print("It is wrong!This number is 8.")
print("This game is over!!")
2.猜数字游戏(第二版)
改进建议:
- 用户猜错时,程序应该给出提示。
- 应该给用户提供多次机会(固定次数3次)。
- 每次运行程序时,答案应该是随机的。
#猜数字游戏(第二版)
import random
secret = random.randint (1,100)
counts = 3
print("--------GUESS NUMBER GAME--------")
while counts > 0:
temp = input("You can guess one number: ")
guess = int(temp)
if guess == secret:
print("Yes! You are smart!!")
break
else:
if guess > secret:
print("The number is bigger!!")
else:
print("The number is smaller!!")
counts = counts - 1
print("This game is over!!")
三、变量和字符串
1.变量(标签)
>>> x = 3 #创建变量
>>> print(x) #访问变量
3
>>> y = 5
>>> x = y #变量更改
>>> print(x,y)
5 5
- 变量名通常由字母、数字和下划线构成,但不能以数字打头。
- 不是把值存储在变量中,更像是把名字贴在值上面。
- 支持中文名作为变量名。
- 使用变量前需要先赋值。
2.字符串
1.转义符号\
>>> 'let\'s go!'
"let's go!"
>>> 'c:\\now' #用\对自身进行转义
'c:\\now'
2. 原始字符串(字符串中出现多个\在字符串前加r)
>>> r'c:\now'
'c:\\now'
>>> r'c:\\\now'
'c:\\\\\\now'
3.长字符串
>>> str="""abcdefg"""
>>> print(str)
abcdefg
>>> print('I love China')
I love China
>>> print("I love China")
I love China
四、条件分支
1.比较 >,<,>=,<=,!=,==
>>> 4<=5<=6 #此语句合法
True
2.分支结构
- 单分支:if
- 二分支:if-else
- 多分支:if-elif-else
3.例子:分数判断方法
- 单分支:if
- 二分支:if-else
- 多分支:if-elif-else
- 三元操作符:small = x if x < y else y
- 断言:条件为假时,程序自动崩溃并抛出AssertionError的异常(置入检查点)
>>> assert 3 < 4
>>> assert 3 > 4
Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
assert 3 > 4
AssertionError
五、循环
1.while循环
while 条件:xxx
2.for循环
for 目标 in 表达式:xxx
3.例子
print("-------test 1--------")
a,b=0,1
print("斐波那契数列结果: ")
while a<=100:
print(a,end=" ")
a,b=b,a+b
print()
print("-------test 2--------")
for i in range(1,10):
print(i,end=" ")
输出结果:
-------test 1--------
斐波那契数列结果:
0 1 1 2 3 5 8 13 21 34 55 89
-------test 2--------
1 2 3 4 5 6 7 8 9注:(1)break:退出循环体;(2)continue:退出本次循环,进入下一轮循环。
六、数据类型
1.三种基本数据类型
- 整数 int(x):将x转换为整数
- 浮点数 float(x):将x转换为整数
- 复数 complex(x,y):返回一个复数,x为实部,y为虚部
2.组合数据类型
- 集合
- 序列:字符串、元组、列表
- 映射:字典
3.获取类型信息
- type()
- isinstance()
>>> a=520
>>> type(a)
<class 'int'>
>>> isinstance(a,int)
True
>>> isinstance(a,float)
False
七、算数操作符
1.算术运算符
- 常用:+,-,*,/,%
- //:整数除法,向下取整
- **:幂运算
- pow(x,y):幂运算
- pow(x,y,z):先幂运算在对z取余
- divmod(x,y):返回(x//y,x%y)
>>> a=0
>>> a+=3
>>> a-=1
>>> a*=2
>>> a/=2
>>> 3**5
243
>>> pow(3,5)
243
>>> pow(3,5,2)
1
>>> divmod(3,5)
(0, 3)
2.比较运算符
>,<,>=,<=,!=,==
3.逻辑运算符
and,or,not(一元)
4.优先级问题
幂运算-->正负号-->算术操作符-->比较操作符-->逻辑操作符
八、列表
1.创建列表
- 普通列表
- 混合列表
- 空列表
>>> number = [1,2,3,4,5]
>>> print(number)
[1, 2, 3, 4, 5]
>>> mix = [1,3.14,'huoyuying',[1,2,3]]
>>> print(mix)
[1, 3.14, 'huoyuying', [1, 2, 3]]
>>> empty = []
>>> print(empty)
[]
2.向列表添加元素
向上述number列表中添加元素
3.从列表获取元素
4.
5.
九、元组
十、字符串
附:一个心形程序
from turtle import *
def curvemove():
for i in range(200):
right(1)
forward(1)
setup(600,600,400,400)
hideturtle()
pencolor('black')
fillcolor("red")
pensize(2)
begin_fill()
left(140)
forward(111.65)
curvemove()
left(120)
curvemove()
forward(111.65)
end_fill()
penup()
goto(-27, 85)
pendown()
done()
(未完待续,感谢支持。。。)