Python
--------------------------------------基础语法--------------------------------------
1.反斜杠可以用来转义,使用r可以让反斜杠不发生转义。。如 print ( r "this is a linewith \n") 则\n会显示,并不是换行。
2.字符串可以用 + 运算符连接在一起,用 * 运算符重复。
3.Python中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
4. str='Runoob'
print(str) #输出字符串
print(str[0:-1]) #输出第一个到倒数第二个的所有字符
print(str[0]) #输出字符串第一个字符
print(str[2:5]) #输出从第三个开始到第五个的字符
print(str[2:]) #输出从第三个开始的后的所有字符
print(str * 2) # 输出字符串两次
print(str + '你好') # 连接字符串
5. 函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
6. Python可以在同一行中使用多条语句,语句之间使用分号(;)分割。
7. print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end="" 例如:print(x, end=" " )
8. 在 python 用 import 或者 from...import 来导入相应的模块。
将整个模块(somemodule)导入,格式为: import somemodule
从某个模块中导入多个函数,格式为:from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入,格式为:from somemodule import *
--------------------------------------基本数据类型--------------------------------------
9.多个变量赋值:a = b = c = 1 或 a, b, c = 1,2, "runoob"
10. Python3 的六个标准数据类型中:
不可变数据:Number(数字)、String(字符串)、Tuple(元组)、Sets(集合);
可变数据 :List(列表)、Dictionary(字典)。
11. 可以使用del语句删除一些对象引用。例如: del var
12.数值运算:
2 / 4 # 除法,得到一个浮点数
2 // 4 # 除法,得到一个整数
2 ** 5 # 乘方
13. Python 字符串不能被改变。向一个索引位置赋值,比如word[0] = 'm'会导致错误。
14.列表list:列表中的元素是可以改变,写在 [ ] 之中
list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
tinylist = [123,'runoob']
print (list) # 输出完整列表
print (list[0]) # 输出列表第一个元素
print (list[1:3]) # 从第二个开始输出到第三个元素
print (list[2:]) # 输出从第三个元素开始的所有元素
print (tinylist * 2) # 输出两次列表
print (list +tinylist) # 连接列表
15.元组 tuple:元组的元素不能修改,元组写在小括号 ( ) 里 实例如列表
16.集合 set: 集合是一个无序不重复元素的序列。基本功能是进行成员关系测试和删除重复元素。可以使用大括号 { } 或者set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为{ } 是用来创建一个空字典。
创建格式: parame = { value01,value02,...} 或者 set( value )
实例:
student = {'Tom', 'Jim', 'Mary', 'Tom','Jack', 'Rose'}
print(student) # 输出集合,重复的元素被自动去掉
# 成员测试
if('Rose' in student):
print('Rose 在集合中')
else :
print('Rose 不在集合中')
# set可以进行集合运算
a =set('abracadabra')
b = set('alacazam')
print(a)
print(a - b) # a和b的差集
print(a | b) # a和b的并集
print(a & b) # a和b的交集
print(a ^ b) # a和b中不同时存在的元素
17.字典 Dictionary:列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。
实例:
rint(tinydict.keys()) # 输出所有键
print(tinydict.values()) # 输出所有值
构造函数 dict() 可以直接从键值对序列中构建字典如下:
dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])
{'Taobao': 3, 'Runoob': 1, 'Google': 2}
{x: x**2forxin(2, 4, 6)}
{2: 4, 4: 16, 6: 36}
dict(Runoob=1, Google=2, Taobao=3)
{'Taobao': 3, 'Runoob': 1, 'Google': 2}
--------------------------------------解释器--------------------------------------
略
--------------------------------------注释--------------------------------------
略
--------------------------------------运算符--------------------------------------
18. 算术运算符:
** |
幂 - 返回x的y次幂 |
a**b 为10的21次方 |
// |
取整除 - 返回商的整数部分 |
9//2 输出结果 4 , 9.0//2.0 输出结果 4.0 |
位运算符:
运算符 |
描述 |
实例 |
& |
按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
(a & b) 输出结果 12 ,二进制解释: 0000 1100 |
| |
按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 |
(a | b) 输出结果 61 ,二进制解释: 0011 1101 |
^ |
按位异或运算符:当两对应的二进位相异时,结果为1 |
(a ^ b) 输出结果 49 ,二进制解释: 0011 0001 |
~ |
按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1 |
(~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。 |
<< |
左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 |
a << 2 输出结果 240 ,二进制解释: 1111 0000 |
>> |
右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 |
a >> 2 输出结果 15 ,二进制解释: 0000 1111 |
成员运算符: 例如: if ( a in list ):
运算符 |
描述 |
实例 |
in |
如果在指定的序列中找到值返回 True,否则返回 False。 |
x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in |
如果在指定的序列中没有找到值返回 True,否则返回 False。 |
x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
身份运算符:
运算符 |
描述 |
实例 |
is |
is 是判断两个标识符是不是引用自一个对象 |
x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则 返回 True,否则返回 False |
is not |
is not 是判断两个标识符是不是引用自不同对象 |
x is not y ,类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
注:id()函数用于获取对象内存地址
运算符优先级:
运算符 |
描述 |
** |
指数 (最高优先级) |
~ + - |
按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // |
乘,除,取模和取整除 |
+ - |
加法减法 |
>> << |
右移,左移运算符 |
& |
位 'AND' |
^ | |
位运算符 |
<= < > >= |
比较运算符 |
<> == != |
等于运算符 |
= %= /= //= -= += *= **= |
赋值运算符 |
is is not |
身份运算符 |
in not in |
成员运算符 |
not or and |
逻辑运算符 |
--------------------------------------数字--------------------------------------
19.转换虚数:
complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。
20.数学函数:
函数 |
返回值 ( 描述 ) |
返回数字的绝对值,如abs(-10) 返回 10 |
|
返回数字的上入整数,如math.ceil(4.1) 返回 5 |
|
cmp(x, y) |
如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已废弃 。 使用 使用 (x>y)-(x<y) 替换。 |
返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045 |
|
返回数字的绝对值,如math.fabs(-10) 返回10.0 |
|
返回数字的下舍整数,如math.floor(4.9)返回 4 |
|
如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
|
返回以10为基数的x的对数,如math.log10(100)返回 2.0 |
|
返回给定参数的最大值,参数可以为序列。 |
|
返回给定参数的最小值,参数可以为序列。 |
|
返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 |
|
x**y 运算后的值。 |
|
返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。 |
|
返回数字x的平方根。 |
--------------------------------------字符串--------------------------------------
21.字符串更新:print("已更新字符串 : ", var1[:6] + 'Runoob!')
22.转义字符:
转义字符 |
描述 |
\(在行尾时) |
续行符 |
\\ |
反斜杠符号 |
\' |
单引号 |
\" |
双引号 |
\a |
响铃 |
\b |
退格(Backspace) |
\e |
转义 |
\000 |
空 |
\n |
换行 |
\v |
纵向制表符 |
\t |
横向制表符 |
\r |
回车 |
\f |
换页 |
\oyy |
八进制数,yy代表的字符,例如:\o12代表换行 |
\xyy |
十六进制数,yy代表的字符,例如:\x0a代表换行 |
\other |
其它的字符以普通格式输出 |
23.字符串格式化符号:
符 号 |
描述 |
%c |
格式化字符及其ASCII码 |
%s |
格式化字符串 |
%d |
格式化整数 |
%u |
格式化无符号整型 |
%o |
格式化无符号八进制数 |
%x |
格式化无符号十六进制数 |
%X |
格式化无符号十六进制数(大写) |
%f |
格式化浮点数字,可指定小数点后的精度 |
%e |
用科学计数法格式化浮点数 |
%E |
作用同%e,用科学计数法格式化浮点数 |
%g |
%f和%e的简写 |
%G |
%f 和 %E 的简写 |
%p |
用十六进制数格式化变量的地址 |
24.数字格式化 print("{:.2f}".format(3.1415926));
数字 |
格式 |
输出 |
描述 |
3.1415926 |
{:.2f} |
3.14 |
保留小数点后两位 |
3.1415926 |
{:+.2f} |
+3.14 |
带符号保留小数点后两位 |
-1 |
{:+.2f} |
-1.00 |
带符号保留小数点后两位 |
2.71828 |
{:.0f} |
3 |
不带小数 |
5 |
{:0>2d} |
05 |
数字补零 (填充左边, 宽度为2) |
5 |
{:x<4d} |
5xxx |
数字补x (填充右边, 宽度为4) |
10 |
{:x<4d} |
10xx |
数字补x (填充右边, 宽度为4) |
1000000 |
{:,} |
1,000,000 |
以逗号分隔的数字格式 |
0.25 |
{:.2%} |
25.00% |
百分比格式 |
1000000000 |
{:.2e} |
1.00e+09 |
指数记法 |
13 |
{:10d} |
13 |
右对齐 (默认, 宽度为10) |
13 |
{:<10d} |
13 |
左对齐 (宽度为10) |
13 |
{:^10d} |
13 |
中间对齐 (宽度为10) |
11 |
'{:b}'.format(11) '{:d}'.format(11) '{:o}'.format(11) '{:x}'.format(11) '{:#x}'.format(11) '{:#X}'.format(11) |
1011 11 13 b 0xb 0XB |
进制 |
25. python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。(也即:\n 会换行)
26.字符串内建函数:
序号 |
方法及描述 |
1 |
capitalize() |
2 |
center(width, fillchar) |
3 |
count(str, beg= 0,end=len(string)) |
4 |
bytes.decode(encoding="utf-8", errors="strict") 对象,这个 bytes 对象可以由 str.encode() 来编码返回。 |
5 |
encode(encoding='UTF-8',errors='strict') 的是'ignore'或者'replace' |
6 |
endswith(suffix, beg=0, end=len(string)) |
7 |
expandtabs(tabsize=8) |
8 |
find(str, beg=0 end=len(string)) |
9 |
index(str, beg=0, end=len(string)) |
10 |
isalnum() |
11 |
isalpha() |
12 |
isdigit() |
13 |
islower() True,否则返回 False |
14 |
isnumeric() |
15 |
isspace() |
16 |
istitle() |
17 |
isupper() True,否则返回 False |
18 |
join(seq) |
19 |
len(string) |
20 |
ljust(width[, fillchar]) |
21 |
lower() |
22 |
lstrip() |
23 |
maketrans() 的字符,第二个参数也是字符串表示转换的目标。 |
24 |
max(str) |
25 |
min(str) |
26 |
replace(old, new [, max]) |
27 |
rfind(str, beg=0,end=len(string)) |
28 |
rindex( str, beg=0, end=len(string)) |
29 |
rjust(width,[, fillchar]) |
30 |
rstrip() |
31 |
split(str="", num=string.count(str)) |
32 |
splitlines([keepends]) 换行符,如果为 True,则保留换行符。 |
33 |
startswith(str, beg=0,end=len(string)) 指定范围内检查。 |
34 |
strip([chars]) |
35 |
swapcase() |
36 |
title() |
37 |
translate(table, deletechars="") |
38 |
upper() |
39 |
zfill (width) |
40 |
isdecimal() |
--------------------------------------列表--------------------------------------
27.列表举例:list3 = ["a", "b", "c", "d"];
28.列表操作符:
Python 表达式 |
结果 |
描述 |
len([1, 2, 3]) |
3 |
长度 |
[1, 2, 3] + [4, 5, 6] |
[1, 2, 3, 4, 5, 6] |
组合 |
['Hi!'] * 4 |
['Hi!', 'Hi!', 'Hi!', 'Hi!'] |
重复 |
3 in [1, 2, 3] |
True |
元素是否存在于列表中 |
for x in [1, 2, 3]: print(x, end=" ") |
1 2 3 |
迭代 |
29.列表函数、方法:
函数:
序号 |
函数 |
1 |
len(list) |
2 |
max(list) |
3 |
min(list) |
4 |
list(seq) |
方法:
序号 |
方法 |
1 |
list.append(obj) |
2 |
list.count(obj) |
3 |
list.extend(seq) |
4 |
list.index(obj) |
5 |
|
6 |
list.pop(obj=list[-1]) |
7 |
list.remove(obj) |
8 |
list.reverse() |
9 |
list.sort([func]) |
10 |
list.clear() |
11 |
list.copy() |
--------------------------------------元组--------------------------------------
30. Python 的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
31. 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用
>>> tup1 = (50)
>>>type(tup1) # 不加逗号,类型为整型
<class 'int'>
>>> tup1 =(50,)
>>>type(tup1) # 加上逗号,类型为元组
<class 'tuple'>
32.元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
33.元组运算符:
Python 表达式 |
结果 |
描述 |
len((1, 2, 3)) |
3 |
计算元素个数 |
(1, 2, 3) + (4, 5, 6) |
(1, 2, 3, 4, 5, 6) |
连接 |
('Hi!',) * 4 |
('Hi!', 'Hi!', 'Hi!', 'Hi!') |
复制 |
3 in (1, 2, 3) |
True |
元素是否存在 |
for x in (1, 2, 3): print (x,) |
1 2 3 |
迭代 |
34.元组内置函数:
序号 |
方法及描述 |
实例 |
1 |
len(tuple) |
>>> tuple1 =('Google','Runoob','Taobao') >>> len(tuple1) 3 >>> |
2 |
max(tuple) |
>>> tuple2 =('5','4','8') >>> max(tuple2) '8' >>> |
3 |
min(tuple) |
>>> tuple2 =('5','4','8') >>> min(tuple2) '4' |
4 |
tuple(seq) |
>>> list1=['Google','Taobao','Runoob','Baidu'] >>> tuple1=tuple(list1) >>> tuple1 ('Google','Taobao','Runoob','Baidu') |
--------------------------------------字典--------------------------------------
35. 字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:d = { key1 : value1 , key2 : value2 }
36. 键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
一个简单的字典实例: dict = { 'Alice': '2341' , 'Beth' : '9102' , 'Cecil' : '3258'}
37. 访问字典里的值:把相应的键放入熟悉的方括弧,如下实例:
print ( "dict['Age'] : " , dict['Age'] ) 输出:dict['Age']: 7
38.修改字典: dict ['Age'] =8;
39.删除字典:
del dict ['Name'] # 删除键 'Name'
dict.clear() # 清空字典
del dict # 删除字典
40. 字典键的特性:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
41. 字典内置函数&方法
内置函数:
序号 |
函数及描述 |
实例 |
1 |
len(dict) |
>>> dict ={'Name':'Runoob','Age':7,'Class':'First'} >>> len(dict) 3 |
2 |
str(dict) |
>>> dict ={'Name':'Runoob','Age':7,'Class':'First'} >>> str(dict) "{'Name': 'Runoob', 'Class': 'First', 'Age': 7}" |
3 |
type(variable) |
>>> dict ={'Name':'Runoob','Age':7,'Class':'First'} >>> type(dict) <class'dict'> |
内置方法:
序号 |
函数及描述 |
1 |
radiansdict.clear() |
2 |
radiansdict.copy() |
3 |
radiansdict.fromkeys() |
4 |
radiansdict.get(key, default=None) |
5 |
key in dict |
6 |
radiansdict.items() |
7 |
radiansdict.keys() |
8 |
radiansdict.setdefault(key, default=None) |
9 |
radiansdict.update(dict2) |
10 |
radiansdict.values() |
11 |
pop(key[,default]) |
12 |
popitem() |
--------------------------------------编程第一步--------------------------------------
--------------------------------------条件控制--------------------------------------
42.if条件语句
ifcondition_1:
statement_block_1
elifcondition_2:
statement_block_2
else:
statement_block_3
注意:1、每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块。
2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
3、在Python中没有switch–case语句。
43.if嵌套:可以把 if...elif...else 结构放在另外一个 if...elif...else 结构中
if 表达式1:
语句
if 表达式2:
语句
elif表达式3:
语句
else:
语句
elif 表达式4:
语句
else:
语句
--------------------------------------循环语句--------------------------------------
44.循环语句分为whlie和for循环,在Python中没有do.while循环。
while 判断条件:
语句
45. 以使用CTRL+C来退出当前的无限循环
46. while循环使用else语句:在 while … else 在条件语句为 false 时执行else的语句块:
例如:count = 0
whilecount < 5:
print(count, "小于 5")
count = count + 1
else: print(count, "大于或等于 5")
47. Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
48. Python loop循环实例:以下 for 实例中使用了 break 语句,break 语句用于跳出当前循环体:
sites = ["Baidu", "Google","Runoob","Taobao"]
forsiteinsites:
ifsite == "Runoob":
print("菜鸟教程!")
break
print("循环数据" + site)
else:
print("没有循环数据!")
print("完成循环!")
49. range()函数: 如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列,例如: foriinrange(5,9):
也可以使range以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做步长,
例如:oriinrange(0, 10, 3) :
--------------------------------------Python3 迭代器与生成器--------------------------------------
50. 迭代是Python最强大的功能之一,是访问集合元素的一种方式。
迭代器是一个可以记住遍历的位置的对象。
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
迭代器有两个基本的方法:iter() 和 next()。
>>>list=[1,2,3,4]
>>> it = iter(list)# 创建迭代器对象
>>> print(next(it))# 输出迭代器的下一个元素
1
>>> print(next(it))
2
51. 在 Python 中,使用了 yield 的函数被称为生成器(generator)。跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。
在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。调用一个生成器函数,返回的是一个迭代器对象。
--------------------------------------函数--------------------------------------
52. 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
53. def print_welcome(name):
Print ("Welcome", name)
print_welcome ("Runoob")
Dr_JaiWang
2018.5.14
56. 王
5