Python基础教程自学记录精编版.docx
- 文档编号:15168329
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:32
- 大小:260.36KB
Python基础教程自学记录精编版.docx
《Python基础教程自学记录精编版.docx》由会员分享,可在线阅读,更多相关《Python基础教程自学记录精编版.docx(32页珍藏版)》请在冰点文库上搜索。
Python基础教程自学记录精编版
第一章快速改造:
基础知识
1.2交互式解释器
在IDLE编辑器,在提示符后输入help然后按回车;也可以按下F1获得有关IDLE的帮助信息
1.4数字和表达式
1/2返回0,整除除法;1.0/2返回0.5,用一个或者多个包含小数点的数字参与计算。
另外改变除法的执行方式:
from_future_importdivision
//可以实现整除,1.0//2.0返回0.0
%取余数;**幂运算;
>>>1/2
0
>>>1.0/2
0.5
>>>1.0//2.0
0.0
>>>10%3
1
>>>9**(1/2)
1
>>>9**(1.0/2)
3.0
>>>2.75%0.5
0.25
>>>-9%4
3
>>>-3%2
1
>>>-3/2
-2
1.4.1长整数
普通整数不能大于2147483647也不能小于-2147483648,若更大的数,可以使用长整数。
长整数结尾有个L,理论上小写也可以,不过为了便于识别,尽可能用大写。
1.4.2十六进制和八进制
0XAF返回175,十六进制;
010返回8,八进制
>>>0xAF
175
>>>010
8
1.5变量
包含字母、数字和下划线。
首字母不能是数字开头。
1.8函数
Pow计算乘方:
pow(2,3),2**3均返回8;pow等标准函数称为内建函数。
Abs(-10)求绝对值,返回10;round(1.0/2.0)返回1.0,把浮点数四舍五入为最接近的整数值。
>>>pow(2,3)
8
>>>2**3
8
>>>abs(-10)
10
>>>round(1.0/2.0)
1.0
>>>round(8.06,2)
8.06
>>>round(8.06,1)
8.1
1.9模块import
>>>importmath
>>>math.floor(8.8)向下取整
8.0
>>>math.ceil(8.8)向上取整
9.0
>>>int(math.ceil(32.1))
33
>>>int(32.9)
32
>>>flo=math.floor
>>>flo(33.9)
33.0
使用了from模块import函数,这种方式的import命令之后,就可以直接使用函数,而不需要使用模块名最为前缀了。
但是要注意在不同模块引用,可能导致函数冲突。
>>>frommathimportsqrt
>>>sqrt(9)
3.0
>>>
1.9.1cmath和复数nan-notanumber返回的结果
Cmath即complexmath复数模块
>>>importcmath
>>>cmath.sqrt(-1)
1j
返回的1j是个虚数,虚数以j结尾;这里没有使用fromcmathimportsqrt,避免与math的sqrt冲突。
1.10.3注释符号:
#
1.11字符串,使用”\”可以进行转义。
1.11.2拼接字符串
>>>'Hello,''World'
'Hello,World'
>>>'Hello,''World'
'Hello,World'
>>>'Hello,'+'World'
'Hello,World'
>>>'Hello,'+5
Traceback(mostrecentcalllast):
File"
'Hello,'+5
TypeError:
cannotconcatenate'str'and'int'objects
>>>
需要保证两边是一样的字符串,而有其他格式要报错的
1.11.3字符串表示str和repr-两个均为函数,事实上str是一种类型
Str会将值转换为合理形式的字符串。
另外一种是通过repr函数,创建一个字符串。
Repr(x)也可以写作`x`实现(注意:
`是反引号),python3.0中已经不适用反引号了
>>>print'hello,world'
hello,world
>>>printrepr('hello,world')
'hello,world'
>>>printstr('hello,world')
hello,world
>>>print1000L
1000
>>>1000L
1000L
>>>printrepr(1000L)
1000L
>>>printstr(1000L)
1000
>>>tmp=42
>>>print'Thenumberis:
'+tmp
Traceback(mostrecentcalllast):
File"
print'Thenumberis:
'+tmp
TypeError:
cannotconcatenate'str'and'int'objects
>>>print'Thenumberis:
'+`tmp`
Thenumberis:
42
>>>print'Thenumberis:
'+str(tmp)
Thenumberis:
42
>>>print'Thenumberis:
'+repr(tmp)
Thenumberis:
42
1.11.4input和raw_input的比较
>>>name=input("What'syourname:
")
What'syourname:
Gumby
Traceback(mostrecentcalllast):
File"
name=input("What'syourname:
")
File"
NameError:
name'Gumby'isnotdefined
>>>name=input("What'syourname:
")
What'syourname:
'Gumby'
后面输入的字符串增加了引号不报错。
>>>input('Enteranumber:
')
Enteranumber:
3
3
>>>name=input("What'syourname:
")
What'syourname:
'Gumby'
>>>raw_input("What'syourname:
")
What'syourname:
Gumby
'Gumby'
>>>raw_input("What'syourname:
")
What'syourname:
Gumby
'Gumby'
>>>raw_input('Enteranumber:
')
Enteranumber:
3
'3'
>>>
1.11.5长字符串、原始字符串和unicode
(1)长字符串使用三引号;转义的反斜杠用于行尾
>>>print'hello,\
world!
'
hello,world!
>>>print'''hello,
world!
'''
hello,
world!
>>>1+2+3\
+4
10
(2)原始字符串,对于反斜线并不会特殊对待,以r开头,注意字符串尾部
>>>print'c:
\nowhere'
c:
owhere
>>>printr'c:
\nowhere'
SyntaxError:
invalidsyntax
>>>print'c:
\nowhere'
c:
owhere
>>>printr'c:
\nowhere'
c:
\nowhere
>>>printr"Thisisillegal\"
SyntaxError:
EOLwhilescanningstringliteral
>>>printr"Thisisillegal\\"
Thisisillegal\\
>>>printr"Thisisillegal""\\"
Thisisillegal\
(3)Unicode在字符串前增加前缀U
>>>printu'hello,world'
hello,world
第二章列表和元组
序列中的每个元素被分配一个序号--即元素的位置,也被称为索引。
第一个索引为‘0’,最后一个元素可以使用-1标记
2.1序列概览
Python包含6中内建的序列:
列表,元组,字符串,unicode字符串,buffer对象和xrange对象。
列表和元组的主要区别:
列表可以修改,元组则不能。
内建函数返回元组。
几乎所有情况下都可以使用列表代替元组。
特殊情况之一:
使用元组作为字典的键,因为键不可以更改,所以不能用列表。
列表的各个元素通过逗号进行分隔,写在方括号内。
>>>edward=['EdwardGumy',42]
>>>john=['JohnSmith',50]
>>>database=[edward,john]
>>>database
[['EdwardGumy',42],['JohnSmith',50]]
>>>
2.2通用序列操作
包括:
索引,分片,加,乘以及检查某个元素是否属于序列的成员,除此之外还有计算长度,找出最大元素和最小元素的内建函数。
迭代:
依次对序列中的每个元素重复执行某些操作。
2.2.1索引
从0开始,最后一个元素可以使用-1.索引访问的单个元素
>>>greeting="Hello"
>>>greeting[0]
'H'
>>>greeting[-1]
'o'
>>>four=raw_input('Year:
')[3]
Year:
2005
>>>four
'5'
2.2.2分片
冒号:
第一个元素包含在分片内,第二个元素不包含在分片内,是分片之后剩余部分的第一个元素编号。
>>>num=[1,2,3,4,5,6,7,8,9,10]
>>>num[3:
6]
[4,5,6]
>>>num[0:
1]
[1]
>>>num[7:
10]#索引10指向第11个元素,这个元素不存在。
[8,9,10]
>>>num[-3:
-1]
[8,9]
>>>num[-3:
0]
[]
>>>num[-3:
]
[8,9,10]
>>>num[7:
]
[8,9,10]
>>>num[:
3]
[1,2,3]
>>>num[:
]#复制整个序列
[1,2,3,4,5,6,7,8,9,10]
>>>num[0:
10:
2]
[1,3,5,7,9]
>>>num[3:
6:
3]
[4]
>>>num[:
:
4]
[1,5,9]
>>>num[8:
3:
-1]
[9,8,7,6,5]
>>>num[10:
0:
-2]
[10,8,6,4,2]
>>>num[0:
10:
-2]
[]
>>>num[:
:
-2]
[10,8,6,4,2]
>>>num[5:
0:
-2]
[6,4,2]
>>>num[:
5:
-2]
[10,8]
>>>num[5:
:
-2]
[6,4,2]
>>>
2.2.3序列相加
两种相同类型的序列才能进行链接操作
>>>[1,2,3]+[4,5,6]
[1,2,3,4,5,6]
>>>'hello,'+'world'
'hello,world'
>>>'hello,'+[1,2]
Traceback(mostrecentcalllast):
File"
'hello,'+[1,2]
TypeError:
cannotconcatenate'str'and'list'objects
>>>
2.2.4乘法
数字X乘以一个序列会生成新的序列,原序列被重复X次
>>>'PH'*3
'PHPHPH'
>>>[42]*3
[42,42,42]
>>>[1,2]*3
[1,2,1,2,1,2]
>>>[]
[]
>>>[none]*3#注意N需要大写,不然报错。
None是一个内建值,它的含义是“什么也没有”
Traceback(mostrecentcalllast):
File"
[none]*3
NameError:
name'none'isnotdefined
>>>[None]*3
[None,None,None]
>>>
2.2.5成员资格in
检查一个值是否在一个序列中。
条件为真返回True,条件未假返回False
>>>pw="abc"
>>>'a'inpw
True
>>>'x'inpw
False
>>>database=[['John',42],['Smith',36]]
>>>['john',42]indatabase#大小写,要注意
False
>>>['John',42]indatabase
True
>>>num=[1,2,3,4,5]
>>>[1,2]innum
False
>>>[1]innum
False
>>>1innum
True
2.2.6长度、最小值和最大值
内建函数len、min和max
>>>num=[1,8,3]
>>>len(num)
3
>>>max(num)
8
>>>min(num)
1
>>>max(2,3)
3
max跟min的参数并不一定是序列,而是以多个数字直接作为参数。
>>>exm=['h',12,'e',2]
>>>max(exm)
'h'
>>>exm=[12,'e',2,'h']
>>>max(exm)
'h'
>>>max(['A',1,'1','a','z'])
'z'
这个有点意思了,需要以后注意查查,是根据ascii进行提取的吗?
2.3列表:
Python的“苦力”
讨论列表不同于元组跟字符串的地方
2.3.1list函数
>>>ls=list("Hello")
>>>ls
['H','e','l','l','o']
>>>''.join(ls)
'Hello'
>>>
2.3.2基本的列表操作
列表可以使用所有适用于序列的操作。
而列表是可以修正的。
本节介绍可以改变列表的方法:
元素赋值、元素删除、分片赋值以及列表方法(请注意,并非所有的列表方法都真正地改变列表)
1、改变列表:
元素赋值
>>>x=[1,1,1]
>>>x[1]=2
>>>x
[1,2,1]
注意:
不能为一个位置不存在的元素进行赋值。
2、删除元素del
>>>num=[1,2,3,4]
>>>delnum[2]
>>>num
[1,2,4]
除了删除列表中的元素,del还能用于删除其他元素。
可以用于字典元素甚至其他变量的删除操作。
3、分片赋值
>>>nm=list('perl')
>>>nm
['p','e','r','l']
>>>nm[2:
]=list("ar")
>>>nm
['p','e','a','r']
>>>nm[2:
]=list("ckly")#可以改变成长度
>>>nm
['p','e','c','k','l','y']
>>>nm=[1,5]
>>>nm[1:
1]=[2,3,4]#插入行的元素
>>>nm
[1,2,3,4,5]
>>>nm[1:
4]=[]#删除一段元素,与del的结果一样
>>>nm
[1,5]
>>>nm=[1,2,3,4,5]
>>>delnm[1:
4]
>>>nm
[1,5]
可以根据实际步长进行其他操作,测试的时候貌似要注意对应的位置元素个数。
>>>num=[1,2,3,4,5]
>>>num[1:
4:
2]=[8,10]
>>>num
[1,8,3,10,5]
2.3.3列表方法
方法的调用方式:
对象.方法(参数)
1.append用于在列表末尾追加新的对象,直接修改原来的列表。
>>>lst=[1,2,3]
>>>lst.append(4)
>>>lst
[1,2,3,4]
>>>lst=[1,2,3]
>>>lst.append(4,5)
Traceback(mostrecentcalllast):
File"
lst.append(4,5)
TypeError:
append()takesexactlyoneargument(2given)
>>>lst.append([4,5])
>>>lst
[1,2,3,[4,5]]
2.count方法,统计某个元素在列表中出现的次数:
>>>['to','be','or','not','to','be'].count('to')
2
>>>x=[[1,2],1,1,[2,1,[1,2]]]
>>>x.count([1,2])
1
3.extend
extend方法可以在列表的末尾一次性追加另一个序列中的多个值。
换句话说,可以用新列表扩展原有的列表
>>>a=[1,2,3]
>>>b=[4,5,6]
>>>a.extend(b)#extend扩展了原来的序列,即a
>>>a
[1,2,3,4,5,6]
>>>a+b#链接操作,仅仅返回一个全新的列表
[1,2,3,4,5,6,4,5,6]
>>>a
[1,2,3,4,5,6]
>>>a[len(a):
]=b#使用分片来实现相同的结果,但是代码的可读性不如extend。
>>>a
[1,2,3,4,5,6,4,5,6]
>>>a=a+b#此链接方法的效率要比extend方法低
>>>a
[1,2,3,4,5,6,4,5,6,4,5,6]
4.index
index方法用于从列表中找出某个值第一个匹配项的索引位置。
>>>phase=['We','are','hero','!
']
>>>phase.index('hero')
2
>>>phase.index('ero')
Traceback(mostrecentcalllast):
File"
phase.index('ero')
ValueError:
'ero'isnotinlist
5.insert
用于将对象插入列表中
>>>num=[1,2,3,4,5,6,7]
>>>num.insert(3,'four')
>>>num
[1,2,3,'four',4,5,6,7]
>>>
>>>num=[1,2,3,4,5,6,7]
>>>num[3:
3]='four'#意外发现
>>>num
[1,2,3,'f','o','u','r',4,5,6,7]
>>>num=[1,2,3,4,5,6,7]
>>>num[3:
3]=['four']#可以分片处理,依然是可读性不如insert
>>>num
[1,2,3,'four',4,5,6,7]
6.pop
pop方法会移出列表中的一个元素(默认是最后一个),并且返回该元素的值。
pop方法是唯一一个既能修改列表又返回元素值(除了None)的列表方法。
使用pop方法可以实现一种数据结构----栈。
对于栈的两个操作(放入和移出),pop跟append方法恰好相反。
Python没有入栈方法,变通使用append方法。
提示:
对于先进先出的队列,可以使用insert(0,…)来代替append方法。
或者,也可以继续使用append方法,但必须使用pop(0)来代替pop().更好的解决方案是使用collection模块中的deque对象。
>>>x=[1,2,3]
>>>x.pop()
3
>>>x
[1,2]
>>>x.pop(0)
1
>>>x
[2]
>>>x=[1,2,3]
>>>x.append(x.pop())
>>>x
[1,2,3]
>>>
7.remove
remove方法用于移出列表中某个值的第一个匹配项:
>>>x=['to','be','or','not','to','be']
>>>x.remove('be')
>>>x
['to','or','not','to','be']
>>>x.remove('bee')
Traceback(mostrecentcalllast):
File"
x.remove('bee')
ValueError:
list.remove(x):
xnotinlist
注意:
remove是一个没有返回值的原位置改变方法。
8.reverse
reverse方法将列表中的元素反方向存放:
>>>x=[1,2,3]
>>>x.reverse()
>>>x
[3,2,1]
9.sort
sort方法用于在原位置对列表进行排序。
在“原位置排序”意味着要改变原来的列表,从而让其中的元素能按一定的顺序排列,而不是返回一个已经排序的列表副本。
>>>x=[4,6,2,1,7,9]
>>>x.sort()
>>>x
[1,2,4,6,7,9]
***************************
>>>x=[4,6,2,1,7,9]
>>>y=x.sort()#因为sort方法修改了x缺返回了空值
>>>printy
None
>>>x
[1,2,4,6,7,9]
****************************
>>>x=[4,6,2,1,7,9]
>>>y=x[:
]#有效的复制整个列表的方法
>>>y.sort()
>>>x
[4,6,2,1,7,9]
>>>y
[1,2,4,6,7,9]
***************************
>>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 基础教程 自学 记录 精编