Python基础知识文档格式.docx
《Python基础知识文档格式.docx》由会员分享,可在线阅读,更多相关《Python基础知识文档格式.docx(31页珍藏版)》请在冰豆网上搜索。
usedtobeoneofthemostpopularperformingartsacrossChina.
Combiningfinearts,opera,musicanddrama,it'
sseenbysomeasarudimentaryformofthemotionpicture.
4.转义符
如果想要在一个字符串中包含一个单引号('
),例如,这个字符串是What'
如果用'
来指示它,Python会弄不明白这个字符串从何处开始,何处结束,因为这里的’都被认为是字符串的标识符,但又不成对。
所以,要指明单引号而不是字符串的标识,可以通过“\”来完成,如,'
What\'
第2个'
前有一个“\”表示它就是单引号,而不是字符串的标识符。
这里的“\”就是转义符。
另一个表示这种字符串的方法是"
,即用双引号。
类似地,要在双引号字符串中使用双引号本身的时候,也可以借助于转义符。
另外,你可以用转义符\\来指示反斜杠本身。
5.变量
变量是代表数据的符号,它的值可以改变。
Python中,变量的使用不需要说明,变量类型根据值的类型确定,而且变量可以随时赋不同类型的值。
变量命名符合标识符命名规定。
例如
A=3
B=5
C=A+B
print(C)
6.标识符的命名
变量是标识符的例子。
标识符是用来标识某样东西的名字。
变量外,使用标识符的例子还有函数名、类名等。
在命名标识符的时候,要遵循下列规则:
①第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘_’)。
②其他部分可以由字母(大写或小写)、下划线(‘_’)或数字(0-9)组成。
③python标识符对大小写是敏感的。
例如,name和Name被认为是两个标识符。
7.缩进
空白在Python中非常重要。
行首的空白称为缩进,它决定逻辑行的缩进层次,从而用来决定语句的分组。
同一层次的语句必须有相同的缩进量(缩进几个字符)。
每一组这样的语句称为一个块。
语句块是进行处理的同一批语句。
简言之,python是用连续相同层次缩进表示语句块的。
例如for语句后相同缩进量相同的连续语句是其循环体。
注意,不要混合使用制表符和空格来缩进,因为这在跨越不同的平台的时候,无法正常工作。
建议在每个缩进层次使用单个制表符或两个或四个空格。
8.注释
在Python中,#号开始至行末的文字为注释。
没有多行注释。
10.输入输出
从键盘输入数据使用input函数,格式为:
x=input("
Pleaseinputadata"
)
从键盘输入一行字符串,赋值给x,是字符串类型,即使输入的是一个整数,其中的“Pleaseinputadata”是提示信息,可以根据需要改变。
要想改变数据的类型,使用:
x=int(input("
))
其中int表示将后面的字符串类型的数转换为整数类型的数。
还可以是float,complex,表示将输入的字符串转换为实数和复数。
Python的输出使用print函数,格式为:
print(<
表达式列表>
)
其中“表达式列表”是用逗号隔开的表达式,如:
A=4
print(“A+B=”,C)
结果为:
A+B=9
1.1.2运算符及字符串的运算
1.运算符
Python的运算符见表4-1
表4-1python的运算符
运算符
名称
说明
例子
+
加
两个对象相加
3+5得到8。
a'
+'
b'
得到'
ab'
-
减
得到负数或是一个数减去另一个数
-5.2得到一个负数。
50-24得到26。
*
乘
两个数相乘或是返回一个被重复若干次的字符串
2*3得到6。
la'
*3得到'
lalala'
**
幂
返回x的y次幂
3**4得到81(即3*3*3*3)
/
除
x除以y
4/3得到1(整数的除法得到整数结果)。
4.0/3或4/3.0得到1.3333333333333333
//
取整除
返回商的整数部分
4//3.0得到1.0
%
取模
返回除法的余数
8%3得到2。
-25.5%2.25得到1.5
<
左移
把一个数的比特向左移一定数目(每个数在内存中都表示为比特或二进制数字,即0和1)
2<
2得到8。
——2按比特表示为10
>
右移
把一个数的比特向右移一定数目
11>
1得到5。
——11按比特表示为1011,向右移动1比特后得到101,即十进制的5。
&
按位与
数的按位与
5&
3得到1。
|
按位或
数的按位或
5|3得到7。
^
按位异或
数的按位异或
5^3得到6
~
按位翻转
x的按位翻转是-(x+1)
~5得到6。
小于
返回x是否小于y。
所有比较运算符返回1表示真,返回0表示假。
这分别与特殊的变量True和False等价。
注意,这些变量名的大写。
5<
3返回0(即False)而3<
5返回1(即True)。
比较可以被任意连接:
3<
5<
7返回True。
大于
返回x是否大于y
5>
3返回True。
如果两个操作数都是数字,它们首先被转换为一个共同的类型。
否则,它总是返回False。
=
小于等于
返回x是否小于等于y
x=3;
y=6;
x<
=y返回True。
大于等于
返回x是否大于等于y
x=4;
y=3;
x>
==
等于
比较对象是否相等
x=2;
y=2;
x==y返回True。
x='
str'
;
y='
stR'
x==y返回False。
!
不等于
比较两个对象是否不相等
x!
not
布尔“非”
如果x为True,返回False。
如果x为False,它返回True。
x=True;
noty返回False。
and
布尔“与”
如果x为False,xandy返回False,否则它返回y的计算值。
x=False;
y=True;
xandy,由于x是False,返回False。
在这里,Python不会计算y,因为它知道这个表达式的值肯定是False(因为x是False)。
这个现象称为短路计算。
or
布尔“或”
如果x是True,它返回True,否则它返回y的计算值。
y=False;
xory返回True。
短路计算在这里也适用。
2.运算符优先级
表4-2给出Python的运算符优先级,从最低的优先级(最松散地结合)到最高的优先级(最紧密地结合)。
这意味着在一个表达式中,如果没有括号,Python会首先计算表中较下面的运算符,然后在再计算列在表上部的运算符。
建议使用圆括号来对运算符和操作数进行分组,以便能够明确地指出运算的先后顺序,使程序尽可能地易读。
表4-2运算符优先级
描述
lambda
Lambda表达式
notx
in,notin
成员测试
is,isnot
同一性测试
,<
=,>
,>
=,!
=,==
比较
移位
+,-
加法与减法
*,/,%
乘法、除法与取余
+x,-x
正负号
~x
指数
x.attribute
属性参考
x[index]
下标
x[index:
index]
寻址段
f(arguments...)
函数调用
(experession,...)
绑定或元组显示
[expression,...]
列表显示
{key:
datum,...}
字典显示
expression,...'
字符串转换
3.计算顺序
默认地,运算符优先级表决定了哪个运算符在别的运算符之前计算。
具有相同优先级的运算符按照从左向右的顺序计算。
通常可以使用圆括号改变计算次序,例如,在表达式12+3*4中乘法先进行运算,而表达式(12+3)*4中,加先进行运算。
4.字符串的运算
字符串是程序中经常使用的元素,字符串的运算也很多,包括连接两个字符串,取一个字符串中的一部分,称为取子字符串,大小写转换,字符串与数值的转换等。
(1)字符串的连接:
s0="
Python"
s1='
C++'
s2=s0+"
"
+s1
S2的值为:
PythonC++'
(2)取部分字符串
字符串名>
[<
起始位置>
:
<
终止位置>
步长>
]
得到从<
开始,间隔<
,到<
前一个字符结束的字符串。
其中
可省略,表示从起始位置为0。
可省略,表示从终止位置为末尾。
省略表示步长为1。
f='
abcdefghijklmnopqrstuvwxyz'
则
f[5]的值为'
f'
f[0:
10:
2]的值为'
acegi'
10]的值为'
abcdefghij'
f[:
f[10:
]的值为'
klmnopqrstuvwxyz'
len(f)#字符串的长度,本例结果为26
(3)其他的字符串处理函数
其他的字符串处理函数还有:
ord('
)#返回字符的ASCII的十进制值
chr(97)#返回整数对应的字符
(4)库中的字符串处理函数
上面的字符串处理函数可以直接使用,而要使用字符串的大小写转换、查找等功能,需要引入string库,方法是在程序开头写“importstring”,例如:
importstring
#定义一个字符串
f.upper()#转换为大写,不改变f
f.find('
f'
)#返回f的索引值(即在字符串中从0开始的序号)
f.replace('
'
boy'
)#返回b被boy替换的字符串,不改变f
其他的字符串处理函数见表4-3
表4-3string库中的字符串处理函数
S.capitalize()
S.ljust(width[,fill])
S.center(width[,fill])
S.lower()
S.count(sub[,start[,end]])
S.lstrip([chars])
S.encode([encoding[,errors]])
S.maketrans(x[,y[,z]])
S.endswith(suffix[,start[,end]])
S.partition(sep)
S.expandtabs([tabsize])
S.replace(old,new[,count])
S.find(sub[,start[,end]])
S.rfind(sub[,start[,end]])
S.format(fmtstr,*args,**kwargs)
S.rindex(sub[,start[,end]])
S.index(sub[,start[,end]])
S.rjust(width[,fill])
S.isalnum()
S.rpartition(sep)
S.isalpha()
S.rsplit([sep[,maxsplit]])
S.isdecimal()
S.rstrip([chars])
S.isdigit()
S.split([sep[,maxsplit]])
S.isidentifier()
S.splitlines([keepends])
S.islower()
S.startswith(prefix[,start[,end]])
S.isnumeric()
S.strip([chars])
S.isprintable()
S.swapcase()
S.isspace()
S.title()
S.istitle()
S.translate(map)
S.isupper()
S.upper()
S.join(iterable)
S.zfill(width)
1.1.3序列
数据元素的集合在Python中称为序列()
1.列表(list)
列表时对象的有序集合。
列表的内容可以修改,列表的长度可变。
列表的定义:
列表名称>
列表项>
其中多个列表项用逗号隔开,它们的类型可以相同,也可以不同,还可以是其列表。
date=[2011,2,9,9,54]
day=['
sun'
'
mon'
tue'
wed'
thi'
fri'
sat'
today=[2011,2,9,"
wed"
data=[date,day]
均是合法的列表。
使用时,通过
列表名>
[索引号]
的形式应用,索引号从0开始,即0是第1项的索引号。
例如date[0]的值是2011,day[1]得到“mon”,data[1][3]的到“wed”。
下列程序:
print(date[0])
print(day[1])
print(data[1][3])
的运行结果为:
2011
mon
wed
列表可以整体输出,如print(data)
列表的其他运算见表1-2。
表1-2列表的运算
运算格式/举例
说明/结果
L1=[]
空列表
L2=[2011,2,9,19,54]
5项,整数列表,索引号0-4
L3=['
['
]]
嵌套的列表
L2[i],L3[i][j]
索引,L2[1]的值为2,L3[1][1]的值为'
L2[i:
j]
分片,取i到j-1的项
Len(L2)
求列表的长度
L1+L2
合并
L2*3
重复,L2重复3次
forxinL2
循环,x取L2中的每个成员执行循环体
19inL2
19是否是L2的成员
L2.append(4)
增加4作为其成员,即增加一项
L2.sort()
排序,L2结果变为[2,9,19,54,2011]
L2.index(9)
得到9在列表中的索引号,结果为2
L2.reverse()
逆序,L2的结果为[2011,54,19,9,2]
DelL2[k]
删除索引号为k的项
j]=[]
删除i到j-1的项
L2[i]=1
修改索引号为i的项的值
j]=[4,5,6]
修改i到j-1的项的值,如果项数多,则自动插入
L4=range(5,20,3)
生成整数列表L4实际为[5,8,11,14,17]
2.元组(tuple)
元组和列表十分类似,只不过元组和字符串一样是不可变的,即不能修改元组。
元组通过圆括号中用逗号分割的项目定义。
当一组数据,只使用,不修改时使用元组。
元组的使用与列表相同,只是不能修改、删除、增加其元素。
#useoftuple
#filename:
tuple.py
garden=("
BirdofParadise"
"
rose"
tulip"
"
lotus"
"
olive"
Sunflower"
print('
Numberofflowersinthegardenis'
len(garden))
i=2;
print('
flower'
i,'
is'
garden[i-1])
new_garden=('
Phlox'
PeachBlossom'
garden)
i=1;
运行结果如下:
C:
\Python31>
pythontuple.py
Numberofflowersinthegardenis6
flower2isrose
flower1isBirdofParadise
元组的运算见表1-3
表1-3元组的运算
T1()
空元组
T2=(2011,)
有一项的元组
T3=(2011,2,9,19,54)
5项,整数元组,索引号0-4
T4=('
('
嵌套的元组
T3[i],T4[i][j]
索引,T3[1]的值为2,T4[1][1]的值为'
T3[i:
Len(T3)
求元组的长度
T3+T4
T3*3
重复,T3重复3次
forxinT3
循环,x取T3中的每个成员执行循环体
19inT3
注意:
元组与列表的最大不同:
一是定义时用一对圆括号,二是内容不能修改。
3.字典(dictionaries)
字典是无序的对象的集合,通过键进行操作。
类似于通讯录,通过姓名来查找电话、地址等信息,则姓名就是键。
一定要没有同名的人。
字典的定义为:
字典名>
={键1:
值2,键2:
值2,键3:
值3,…}
其中,键1,键2,键3不相同,值可以是任何类型的数据,可以是列表或元组。
注意,字典定义中使用的是大括号,项通过逗号隔开,每个项有键部分和值部分,键和值之间用冒号隔开。
只可使用简单的对象作为键,而且不能改变,但可以用不可变或可变的对象作为字典的值。
#useofdictionaries
dict.py
address1={'
zhang'
'
**************'
wang'
*************'
lily'
******************'
sam'
***************'
}
mailofzhang'
address1['
])
address2={'
['
shaanxi'
],
beijing'
shanghai'
hubei'
address2['
][0])
provinceofzhang'
运行结果如下:
pythondict.py
mailofzhang**************
mailofzhang******************
provinceofzhang*************