1、简介和科普
Python的3.0版本,常被称为Python 3000,或简称Py3k。为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下兼容。
2、工作环境和工具
查看python版本python -V(大写字母)
Python 解释器可不止一种哦,有 CPython、IPython、Jython、PyPy 等。
顾名思义,CPython 就是用 C 语言开发的了,是官方标准实现,拥有良好的生态,所以应用也就最为广泛了。
而 IPython 是在 CPython 的基础之上在交互式方面得到增强的解释器(http://ipython.org/)。
Jython 是专为 Java 平台设计的 Python 解释器(http://www.jython.org/),它把 Python 代码编译成 Java 字节码执行。
PyPy 是 Python 语言(2.7.13和3.5.3)的一种快速、兼容的替代实现(http://pypy.org/),以速度快著称。
##3、初学者注意事项
- True和False首字母大写
#!/usr/bin/env python
此方法不支持windows环境,仅仅在linux或unix系统下有作用,在windows下无论在代码里加什么都无法直接运行一个文件名后缀为.py的脚本,因为在windows下文件名对文件的打开方式起了决定性作用。但是这个理论不完全正确
然后修改脚本权限,使其有执行权限,命令如下:chmod +x hello.py
退出交互式解释器exit()或ctrl+D
解决双击脚本后一闪而过
1
2
3
4
5
6
7# 第一种解决方法
import os
os.system("pause")
# 第二种解决办法
python2.*后面加上:raw_input()
python3.*后面加上:input()
4、注释
单行注释以 # 开头,多行注释用三个单引号 ‘’’ 或者三个双引号 “”” 将注释括起来。
以下实例我们可以输出函数的注释:1
2
3
4
5
6
7def a():
'''这是文档字符串'''
pass
print(a.__doc__)
输出结果为:
>>>这是文档字符串
5、数字(Number)
Python 数字数据类型用于存储数值。
数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。
可以使用del语句删除一些数字对象的引用。
5-1、Python 支持三种不同的数值类型
- 整型(Int)
通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。 - 浮点型(float)
浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250) - 复数( (complex))
复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。
5-2、数字运算
// 整数除法返回向下取整后的结果。
注意:// 得到的并不一定是整数类型的数,它与分母分子的数据类型有关系。使用 ** 操作来进行幂运算。
- 在交互模式中,最后被输出的表达式结果被赋值给变量 _ 。
5-3、数学函数math
- abs(x)
- ceil(x) 返回数字的上入整数
- cmp(x, y) Python 3已废弃。使用
(x>y)-(x<y)
替换 - exp(x) 2.718281828459045
- fabs(x) 返回浮点型
- floor(x) 返回数字的下舍整数
- log(x) 如math.log(math.e)返回1.0
- log10(x)
- max(x1, x2,…)
- min(x1, x2,…)
- modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示
- pow(x, y)
- round(x [,n]) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
- sqrt(x)
5-4、随机数函数random
- choice(seq) 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
- randrange ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1。如可以在1-100中随机选择一个奇数randrange(1,100, 2)。
- random() 随机生成下一个实数,它在[0,1)范围内。
- seed([x]) 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
- shuffle(lst) 将序列的所有元素随机排序
- uniform(x, y) 随机生成下一个实数,它在[x,y]范围内。
5-5、三角函数
- acos(x) 返回x的反余弦弧度值。
- asin(x) 返回x的反正弦弧度值。
- atan(x) 返回x的反正切弧度值。
- atan2(y, x) 返回给定的 X 及 Y 坐标值的反正切值。
- cos(x) 返回x的弧度的余弦值。
- hypot(x, y) 返回欧几里德范数 sqrt(xx + yy)。
- sin(x) 返回的x弧度的正弦值。
- tan(x) 返回x弧度的正切值。
- degrees(x) 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
- radians(x) 将角度转换为弧度
5-6、数学常量
- pi 数学常量 pi(圆周率,一般以π来表示)
- e 数学常量 e,e即自然常数(自然常数)。
6、字符串
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
Python 访问子字符串,可以使用方括号来截取字符串,左闭右开,如str[3:6]。
7、数据结构
1 | >>> a = [66.25, 333, 333, 1, 1234.5] |
把列表当作堆栈使用
对于python中长长的for循环赋值可以看作是多个for循环叠加。1
2>>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
del语句
集合
set (集合)。集合是一个无序
不重复元素的集。基本功能包括关系测试和消除重复元素。集合对象还支持 union(联合),intersection(交),difference(差)和 sysmmetric difference(对称差集)等数学运算。
字典
keys
sorted
del
循环技巧
在字典中循环时,关键字和对应的值可以使用 items() 方法同时解读出来1
2
3>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}
>>> for k, v in knights.items():
... print(k, v)
在序列中循环时,索引位置和对应值可以使用 enumerate() 函数同时得到
同时循环两个或更多的序列,可以使用 zip() 整体打包
需要逆向循环序列的话,先正向定位序列,然后调用 reversed() 函数
8、模块
模块是包括 Python 定义和声明的文件。文件名就是模块名加上 .py 后缀。模块的模块名(做为一个字符串)可以由全局变量 name 得到。
因为没有一见钟情的皮囊,也没有日久生情的耐心。
1、使用Python解释器
- Python解释器:/usr/local/bin/python目录
- Unix shell 的搜索路径:Linux/Unix配置环境变量
- Windows添加路径:set path=%path%;C:\python35
- 文件结束符:Unix系统是 Control-D,Windows系统是 Control-Z,解释器是quit()
- 源程序编码:# -- coding: encoding --
2、Python简介
- 注释符:#
数字
- 除法取整://
- 除法取余:%
- 幂乘方:**
最近一个表达式的值变量:_
1
2
3此变量对于用户是只读的。不要尝试给它赋值 —— 你只会创建一个独立的同名局部变量,它屏蔽了系统内置变量的魔术效果。
除了 int 和 float,Python 还支持其它数字类型,例如 Decimal 和 Fraction。Python 还内建支持 复数 ,使用后缀 j 或 J 表示虚数部分(例如,3+5j)。保留n位小数(四舍五入):round(3.1415926, n)
字符串
- 如果字符串中只有单引号而没有双引号,就用双引号引用,否则用单引号引用。
两者唯一的区别是在单引号中,你不需要转义 “ (但你必须转义 \’ ),反之亦然。
1
2
3
4
5
6
7
8
9
10
11
12>>> 'spam eggs' # single quotes
'spam eggs'
>>> 'doesn\'t' # use \' to escape the single quote...
"doesn't"
>>> "doesn't" # ...or use double quotes instead
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'如果你前面带有 \ 的字符被当作特殊字符,你可以使用 原始字符串,方法是在第一个引号前面加上一个 r:
1
2
3
4
5>>> print('C:\some\name') # here \n means newline!
C:\some
ame
>>> print(r'C:\some\name') # note the r before the quote
C:\some\name
使用三引号:”””…””” 或者 ‘’’…’’’。行尾换行符会被自动包含到字符串中,但是可以在行尾加上 \ 来避免这个行为。下面的示例: 可以使用反斜杠为行结尾的连续字符串,它表示下一行在逻辑上是本行的后续内容。
字符串可以由 + 操作符连接(粘到一起),可以由 * 表示重复。
相邻的两个字符串文本自动连接在一起,只用于两个字符串文本,不能用于字符串表达式。
一个字符就是一个简单的长度为1的字符串。
和C/C++区别是索引(下标)也可以是负数,这将导致从右边开始计算。
截取(检索)、索引、切片
注意,包含起始的字符,不包含末尾的字符。这使得 s[:i] + s[i:] 永远等于 s。省略的第一个索引默认为零,省略的第二个索引默认为切片的字符串的大小。
Python字符串不可以被更改 — 它们是 不可变的 。
- len函数
列表(数组)
- append、len函数
- 列表是 可变的,它允许修改元素。
- 清空列表:letters[:] = []
-