优秀的技术博客:
基础模块:https://www.cnblogs.com/yuanchenqi/articles/5732581.html
python基础:https://www.cnblogs.com/linhaifeng/p/7278389.html
0 python 文件的编译说明
运行方式
// 方法一:
python hello.py
// 方法二:
./hello.py
1 基本运算符
1.1 算术运算符
+
-
*
/ 传统除法 求模
// 浮点除法(对结果进行四舍五入)
% 求余
** 乘方
代码:
>>> print -2 * 4 + 3 ** 2
1
1.2 比较运算符
< <= > >= == != <>
试一试,看看这些比较运算会得到什么结果:
>>> 2 < 4
True
>>> 2 == 4
False
>>> 2 > 4
False
>>> 6.2 <= 6
False
>>> 6.2 <= 6.2
True
>>> 6.2 <= 6.20001
True
Python 目前支持两种“不等于”比较运算符, != 和 <> , 分别是 C 风格和 ABC/Pascal 风格。后者慢慢地被淘汰了, 所以推荐使用前者。
1.3 逻辑运算符
and(与) or(或) not(非)
使用逻辑运算符可以将任意表达式连接在一起,并得到一个布尔值:
>>> 2 < 4 and 2 == 4
False
>>> 2 > 4 or 2 < 4
True
>>> not 6.2 <= 6
True
>>> 3 < 4 < 5 // 3 < 4 and 4 < 5
True
1.4 身份操作符
is
is not
2 变量和赋值
(1)标识符的组成:数字,字母, 或下划线。
第一个字符必须是字母或下划线(_);
剩下的字符可以是字母和数字或下划线;
Python 变量名是大小写敏感的, 也就是说变量 "cAsE" 与 "CaSe" 是两个不同的变量。
专用下划线标识符:
_xxx 不用'from module import *'导入
__xxx__系统定义名字
__xxx 类中的私有变量名
(2)Python 是动态类型语言, 不需要预先声明变量的类型。 变量的类型和值在赋值 那一刻被初始化,变量只有被创建和赋值后才能被使用。变量赋值通过等号来执行。
代码:
>>> counter = 0 //整数赋值
>>> miles = 1000.0 //浮点数赋值
>>> name = 'Bob' // 字符串赋值
>>> counter = counter + 1 // 整数增 1
>>> kilometers = 1.609 * miles // 浮点乘法赋值
>>> print '%f miles is the same as %f km' % (miles, kilometers)
1000.000000 miles is the same as 1609.000000 km
(3)增量赋值,也就是运算符和等号合并在一起
n *= 10 // n = n * 10
(4)Python 的赋值语句不会返回值。类似下面的语句在 Python 中是 非法的:
>>> x = 1
>>> y = (x = x + 1) # assignments not expressions! File "", line 1
y = (x = x + 1)
^
SyntaxError: invalid syntax
链式赋值没问题:
>>> y = x = x + 1
>>> x, y
(2, 2)
(5)Python 不支持类似 x++ 或 --x 这样的前置/后置自增/自减运算。
(6)多重赋值
>>> x = y = z = 1
>>> x
1
>>> y
1 >>> z 1
(7)“多元”赋值
>>> x, y, z = 1, 2, 'a string'
>>> x
1
>>> y
2
>>> z
'a string'
通常元组需要用圆括号(小括号)括起来,尽管它们是可选的。建议总是加上 圆括号以使得代码有更高的可读性。
>>> (x, y, z) = (1, 2, 'a string')
(8)数据交换
Python 的多元赋值方式可以实现无需中间变量交换两个变量的值。
# swapping variables in Python
>>> x, y = 1, 2
>>> x
1
>>> y
2
>>> x, y = y, x
>>> x
2
>>> y
1
显然, Python 在赋值之前已经事先对 x 和 y 的新值做了计算。
3 数字
Python 支持五种基本数字类型,其中有三种是整数类型。
int (有符号整数)
long (长整数)
bool (布尔值)
float (浮点值)
complex (复数)
Python 长整数仅受限于用户计算机的虚拟内存总数,类似 于 Java 中的 BigInteger 类型。
举例:
3 字符串
(1) Python 中字符串被定义为单引号、双引号、三引号之间的字符集合。
(2) Python 支持使用成对的单引号或双引号, 三引号(三个连续的单引号或者双引号)可以用来包含特殊字符。
(3) 使用索引运算符 [i] 和切 片运算符( [i :j ] )可以得到子字符串,扩展切片:[i:j:stride]
(4) 字符串有其特有的索引规则:第一个字符的索引是 0, 最后一个字符的索引是 -1
(5) 加号( + )用于字符串连接运算,星号( * )则用于字符串重复。
(6)使用Unicode编码,字符串前要用u标注
(7)支持的运算:索引、切片、min()、max()、len()以及对象最有的方法
代码举例:
>>> pystr = 'Python'
>>> iscool = 'is cool!'
>>> pystr[0]
'P'
>>> pystr[2:5]
'tho'
>>> iscool[:2]
'is'
>>> iscool[3:]
'cool!'
>>> iscool[-1]
'!'
>>> pystr + iscool
'Pythonis cool!'
>>> pystr + ' ' + iscool
'Python is cool!'
>>> pystr * 2
'PythonPython'
>>> '-' * 20
'--------------------'
>>> pystr = '''python
... is cool'''
>>> pystr
'python\nis cool'
>>> print pystr
python
is cool
>>>
4 列表和元组
(1) 可以将列表和元组当成普通的“数组”,它能保存任意数量任意类型的 Python 对象。
(2) 和数组一样,通过从 0 开始的数字索引访问元素,但是列表和元组可以存储不同类型的对象。
(3) 列表和元组的区别:
a) 列表元素用中括号 [ ]包裹,元素的个数及元素的值可以改变; 元组元素用小括号( )包裹,不可以更改(尽管他们的内容可以)。
b) 元组可以看成是 只读的列表。
c) 通过切片运算 [ ] 和 [ : ] 可以得到子集,这一点与字符串的使用方法一样。
代码:
>>> aList = [1, 2, 3, 4]
>>> aList
[1, 2, 3, 4]
>>> aList[0]
1
>>> aList[2:]
[3, 4]
>>> aList[:3]
[1, 2, 3]
>>> aList[1] = 5
>>> aList
[1, 5, 3, 4]
元组也可以进行切片运算,得到的结果也是元组(不能被修改):
>>> aTuple = ('robots', 77, 93, 'try')
>>> aTuple
('robots', 77, 93, 'try')
>>> aTuple[:3]
('robots', 77, 93)
>>> aTuple[1] = 5
Traceback (innermost last):
File "", line 1, in ?
TypeError: object doesn't support item assignment
(4)列表的常用内置函数
list.append(obj) :向列表中添加一个对象 obj
list.count(obj) :返回一个对象 obj 在列表中出现的次数
list.extend(q): 把序列 q 的内容添加到列表中
list.index(obj, i=0, j=len(list)):返回 list[k] == obj 的 k 值,并且 k 的范围在 i<=k
5 字典
(1)字典是 Python 中的映射数据类型,由键- 值(key-value)对构成。
(2)几乎所有类型的 Python 对象都可以用作键,不过一般还是以数字或者 字符串最为常用。
(3)值可以是任意类型的 Python 对象,字典元素用大括号{ }包裹。
(4)字典是可变对象
(5)元组、列表、字符串都是由大小的,可以用len()查看
>>> aDict = {'host': 'earth'} # create dict
>>> aDict['port'] = 80 # add to dict
>>> aDict
{'host': 'earth', 'port': 80}
>>> aDict.keys()
['host', 'port']
>>> aDict['host']
'earth'
>>> for key in aDict:
... print key, aDict[key] ...
host earth
port 80
(6) 字典类型的方法
6 Python 语句基本规则和特殊字符
(1) 井号(#)表示之后的字符为 Python 注释
(2)换行 (\n) 是标准的行分隔符(通常一个语句一行)
(3)反斜线 ( \ ) 继续上一行
(4)分号 ( ; )将两个语句连接在一行中
分号( ; )允许你将多个语句写在同一行上,语句之间用分号隔开,而这些语句也不能在这 行开始一个新的代码块。例子:
import sys; x = 'foo'; sys.stdout.write(x + '\n')
同一行上书写多个语句会大大降低代码的可读性,Python 虽然允许但不 提倡你这么做。
(5)冒号 ( : ) 将代码块的头和体分开
(6)语句(代码块)用缩进块的方式体现:
缩进四个空格宽度,避免使用制表符Tab ;
随着缩进深度的增加,代码块的层次也在加深,没有缩进的代码块是最高层次的,别称做 脚本的“main”部分。
(7) 不同的缩进深度分隔不同的代码块
(8) Python文件以模块的形式组织
模块可以包含直接运行的代码块、类定义、 函数定义或这几者的组合。
7 Python 关键字
查看Python关键字
>>> import keyword
>>> keyword.kwlist