python入门与进阶
[TOC]
python环境安装
Windows:官网下载Python安装包
Ubuntu:系统自带Python2.x和3.x
Python的基本数据类型
Number:数字
int:整形
1
2>>> type(6)
float:浮点型
1
2>>> type(6.0)
1
2
3
4
5
6
7
8
9
10>>> type(6/6)
>>> type(6//6)>>> type(1+0.1)>>> type(1+1)>>> type(6+6.0)
在Python中做混合式运算,比如6+6.0,结果虽然是整形,但Python会将结果12.0自动识别为浮点型。
bool:布尔类型:表示真假
1
2
3
4
5
6
7
8
9
10
11
12
13
14>>> bool(1)
True
>>> bool(0)
False
>>> bool('abc')
True
>>> bool('')
False
>>> bool({1,1,1})
True
>>> bool({})
False
>>> bool(None)
false
非空为真,空为假
complex:复数
1
2
3# 如何在Python中使用复数,在数字后面加j
>>> 66j
66j
转义字符
特殊的字符
无法“看见”的字符
与语言本身语法有冲突的字符
n 换行 r 回车
' 单引号
t 横向制表符
进制
十进制(0-9),满10进1
2进制(0-1),满2进1
1
2
3
4
5# 在Python中2进制的表现形式,在数字前面加 0b
>>> 0b10
2
>>>0b11
3
8进制(0-8),满8进1
1
2
3
4
5# 在Python中8进制的表现形式,在数字前面加 0o
>>> 0o10
8
>>>0o11
9
16进制(0-9,A,B,C,D,E,F)满16进1
1
2
3# 在Python中16进制的表现形式,在数字前面加 0x
>>> 0x1F
31
python中的进制转换
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18# bin()方法,向2进制转换
>>> bin(10)
'ob1010'
>>> bin(0xE)
'0b1110'
# int()方法,向10进制转换
>>> int(0b111)
7
>>> int(0o77)
63
# hex()方法,向16进制转换
>>> hex(888)
'0x378'
>>> hex(0o7777)
'0xfff'
# oct方法,向8进制转换
>>> oct(0x777)
'0o3567'bool
组的表现形式
序列
str:字符串(不可变类型)
在Python中使用单引号或双引号(英文)表示字符串caozcaoz
字符串的基本操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22# 字符串的拼接
>>> "hello " + "world"
"hello world"
# 单个字符串的截取
>>> "Hello world"[0]
'H'
>>> "Hello world"[2]
'l'
# [-n] 表示从字符串的末尾向前n个位置截取字符串
>>> "Hello world"[-1]
'd'
# 一组字符串的截取
>>> "Hello world"[0:5]
'Hello'
>>> "Hello world"[0:-1]
'Hello worl'
>>> "Hello world"[6:]
'world'
>>> "Hello python world"[-5:]
'world'
>>> "Hello python world"[:6]
'python world'
list:列表(属于可变类型)
1
2
3
4>>> type([1,2,3,4,5,6])
>>> type(['hello','world',1,9,True,False])
在Python中,列表的内部元素不仅仅可以是数字,还可以是字符串,布尔类型。列表的定义使用[]
列表的基本使用
访问列表元素 索引从0开始而不是1
1
2['python','java','C',][0]
'python'
修改列表元素
1
2
3
4language = ['python','java','C',]
language[1] = 'JavaScript'
print(language[1])
JavaScript
在列表末尾添加元素 使用append()方法
1language.append('android')
在列表中插入元素 使用insert()方法
1language.insert(0,'PHP')
使用del语句删除元素
1
2
3del language[1]
print(language)
['PHP', 'JavaScript', 'c', 'android']
使用pop()方法删除元素 被删除的元素储存在poped_language中,依然能够被访问
1
2
3poped_language = language.pop()
print(poped_language)
android
使用pop()方法可以删除列表中任意位置的元素只需在括号中指定要删除的元素的索引即可
1
2
3poped_language = language.pop(0)
print(poped_language)
PHP
根据值删除元素 使用remove()方法
1language.remove('c')
使用方法sort()对列表进行永久性排序
1
2
3
4language = ['python','java','c','android']
language.sort()
print(language)
['android', 'c', 'java', 'python']
如果要倒序排序,只需向 sort() 方法传递参数reverse=True
1
2
3language.sort(reverse=True)
print(language)
['python', 'java', 'c', 'android']
使用方法sorted()对列表进行临时排序
tuple:元组(属于不可变类型)
1
2>>> type((1,2,3))
和列表一样,元组的内部元素可以是不同类型的,元组的定义使用()。
元组的基本使用
如何表示只有一个元素的元组
1
2
3
4
5
6
7
8
9
10>>> type((1))
>>> type(('hello'))# 要表示只有一个元素的元组,需要在一个元素后面加 ,>>> type((1,))# 表示空的元组>>> type(())
set:集合
集合使用{}定义
无序、不重复
没有索引
不能切片
集合的基本操作
求2个集合的差集
>>> {1,2,3,4} - {2,4}
{1,3}
求2个集合的交集
1
2>>> {1,2,3,4} & {2,4}
{2,4}
求2个集合的并集
1
2>>> {1,2,3,4} | {2,3,5,6}
{1,2,3,4,5,6}
如何定义一个空的集合
1
2
3
4>>> type({})
>>> type(set())
dict:字典
字典的定义
{key1:value,key2:value2}
由很多个value和key组成,属于集合类型(set),无序
value:包括但不限于int,str,float,list,set,dict
key:必须是不可变的类型(int,str)
总结
变量与运算符
变量的命名规则
变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头
变量名不能包含空格,但可使用下划线来分隔其中的单词
不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如 print
变量名应既简短又具有描述性
慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0
Python中,变量的定义不需要声明类型
运算符号
运算符的优先级
序号
运算符
描述
1
**
指数(次幂)运算
2
~ + -
补码,一元加减(最后两个方法的名称是 +@ 和 -@)
3
* / % //
乘法 除法 模数 地板除
4
+ -
5
» «
向右和向左位移
6
&
按位与
7
^ |
按位或和常规的 “OR”
8
<= < > >=
比较运算
9
<> == !=
等于运算符
10
= %= /= //== -= += *= **=
赋值运算符
11
is is not
身份运算符
12
in not in
成员
13
not or and
逻辑运算符
总结
分支、循环、条件与枚举
包、模块、函数与变量作用域
Python函数
面向对象
正则表达式与JSON
正则表达式是一个特殊的字符序列,一个字符串是否与我们设定的
Python高级语法与用法
原生爬虫小项目
pythonic杂记