专业全网推广建站公司,网站建设实例pdf下载,做图片网站会侵权吗,网站分页用什么设置文章目录 1、Python内置对象介绍2、标识符与变量3、数据类型—数字4、数据类型—字符串与字节串5、数据类型—列表、元组、字典、集合6、运算符和表达式7、运算符和表达式—算术运算符8、运算符和表达式—关系运算符9.1、运算符和表达式— 成员测试运算符in9.2、运算符和表达式… 文章目录 1、Python内置对象介绍2、标识符与变量3、数据类型—数字4、数据类型—字符串与字节串5、数据类型—列表、元组、字典、集合6、运算符和表达式7、运算符和表达式—算术运算符8、运算符和表达式—关系运算符9.1、运算符和表达式— 成员测试运算符in9.2、运算符和表达式—同一性测试运算符is9.3、运算符和表达式— 位运算符9.4、运算符和表达式— 集合运算符9.5、运算符和表达式— 逻辑运算符9.6、运算符和表达式—复合赋值运算符9.7、运算符和表达式— 、--9.8、运算符和表达式— Python关键字简要说明 1、Python内置对象介绍
对象是python语言中最基本的概念在python中处理的一切都是对象。 python中有许多内置对象可供编程者使用内置对象可直接使用如数字、字符串、列表等。 非内置对象需要导入模块才能使用如正弦函数sin(x)随机数产生函数random( )等。
2、标识符与变量
在Python中不需要事先声明变量名及其类型直接赋值即可创建各种类型的对象变量。这一点适用于Python任意类型的对象。 赋值语句的执行过程是首先把等号右侧表达式的值计算出来然后在内存中寻找一个位置把值存放进去最后创建变量并指向这个内存地址。 Python中的变量并不直接存储值而是存储了值的内存地址或者引用这也是变量类型随时可以改变的原因。
在Python中允许多个变量指向同一个值例如x 3id(x)
1786684560y xid(y)
1786684560 x 6id(x)
1786684752y
3id(y)
1786684560Python采用的是基于值的内存管理方式如果为不同变量赋值为相同值仅适用于-5至256的整数和短字符串这个值在内存中只有一份多个变量指向同一块内存地址。 x 3id(x)
10417624y 3id(y)
10417624x [1, 1, 1, 1]id(x[0]) id(x[1])
TruePython属于强类型编程语言Python解释器会根据赋值或运算来自动推断变量类型。Python还是一种动态类型语言变量的类型也是可以随时变化的 x 3print(type(x))
class intx Hello world.print(type(x)) #查看变量类型
class strx [1,2,3]print(type(x))
class listisinstance(3, int) #测试对象是否是某个类型的实例
Trueisinstance(Hello world, str)
True变量名必须以字母或下划线开头但以下划线开头的变量在Python中有特殊含义变量名中不能有空格以及标点符号括号、引号、逗号、斜线、反斜线、冒号、句号、问号等等不能使用关键字作变量名可以导入keyword模块后使用print(keyword.kwlist)查看所有Python关键字变量名对英文字母的大小写敏感例如student和Student是不同的变量。不建议使用系统内置的模块名、类型名或函数名以及已导入的模块名及其成员名作变量名这将会改变其类型和含义可以通过dir(builtins)查看所有内置模块、类型和函数
3、数据类型—数字
Python支持任意大的数字具体可以大到什么程度仅受内存大小的限制。 由于精度的问题对于实数运算可能会有一定的误差应尽量避免在实数之间直接进行相等性测试而是应该以二者之差的绝对值是否足够小作为两个实数是否相等的依据。 在数字的算术运算表达式求值时会进行隐式的类型转换如果存在复数则都变成复数如果没有复数但是有实数就都变成实数如果都是整数则不进行类型转换。 9999 ** 99 #这里**是幂乘运算符等价于内置函数pow()
9901483535267234876022631247532826255705595288957910573243265291217948378940535134644221768269164339325869243866777662440320016237568214004329750512088202049800987355527038413623046699705106912438002182028403743293788006949203097919541851177984343295912121591062986999386699080675733747243312089424255448939109100732050490316567892208895607329629262263058657065935949178962767563968485149009899990.3 0.2 #实数相加
0.50.4 - 0.1 #实数相减结果稍微有点偏差
0.300000000000000040.4 - 0.1 0.3 #应尽量避免直接比较两个实数是否相等
Falseabs(0.4-0.1 - 0.3) 1e-6 #这里1e-6表示10的-6次方
Trueimport mathmath.isclose(0.4-0.1,0.3)
TruePython内置支持复数类型及其运算并且形式与数学上的复数完全一致 x 3 4j #使用j或J表示复数虚部y 5 6jx y #支持复数之间的加、减、乘、除以及幂乘等运算
(810j)x * y
(-938j)abs(x) #内置函数abs()可用来计算复数的模
5.0x.imag #虚部
4.0x.real #实部
3.0x.conjugate() #共轭复数
(3-4j)Python 3.6.x支持在数字中间位置使用单个下划线作为分隔来提高数字的可读性类似于数学上使用逗号作为千位分隔符。 在Python数字中单个下划线可以出现在中间任意位置但不能出现开头和结尾位置也不能使用多个连续的下划线。 1_000_000
10000001_2_3_4
12341_2 3_4j
(1234j)1_2.3_45
12.3454、数据类型—字符串与字节串
在Python中没有字符常量和变量的概念只有字符串类型的常量和变量单个字符也是字符串。使用单引号、双引号、三单引号、三双引号作为定界符delimiter来表示字符串并且不同的定界符之间可以互相嵌套。
Python 3.x全面支持中文中文和英文字母都作为一个字符对待甚至可以使用中文作为变量名。 x Hello world. #使用单引号作为定界符x Python is a great language. #使用双引号作为定界符x Tom said, Lets go. #不同定界符之间可以互相嵌套print(x)
Tom said, Lets go.x good morning #连接字符串x
good morningx good morning #连接字符串仅适用于字符串常量x
good morning对str类型的字符串调用其encode()方法进行编码得到bytes字节串对bytes字节串调用其decode()方法并指定正确的编码格式则得到str字符串。 type(Hello world) #默认字符串类型为str
class strtype(bHello world) #在定界符前加上字母b表示字节串
class bytesHello world.encode(utf8) #使用utf8编码格式进行编码
bHello worldHello world.encode(gbk) #使用gbk编码格式进行编码
bHello world烟台.encode(utf8) #对中文进行编码
b\xe7\x83\x9f\xe5\x8f\xb0\xe5\xa4\xa7\xe5\xad\xa6_.decode(utf8) #一个下划线表示最后一次正确输出结果
烟台烟台.encode(gbk)
b\xd1\xcc\xcc\xa8\xb4\xf3\xd1\xa7_.decode(gbk) #对bytes字节串进行解码
烟台5、数据类型—列表、元组、字典、集合 x_list [1, 2, 3] #创建列表对象x_tuple (1, 2, 3) #创建元组对象x_dict {a:97, b:98, c:99} #创建字典对象x_set {1, 2, 3} #创建集合对象print(x_list[1]) #使用下标访问指定位置的元素
2print(x_tuple[1]) #元组也支持使用序号作为下标
2print(x_dict[a]) #字典对象的下标是“键”
973 in x_set #成员测试
True6、运算符和表达式
在Python中单个常量或变量可以看作最简单的表达式使用除赋值运算符之外的其他任意运算符和函数调用连接的式子也属于表达式
7、运算符和表达式—算术运算符
1运算符除了用于算术加法以外还可以用于列表、元组、字符串的连接但不支持不同类型的对象之间相加或连接。 [1, 2, 3] [4, 5, 6] #连接两个列表
[1, 2, 3, 4, 5, 6](1, 2, 3) (4,) #连接两个元组
(1, 2, 3, 4)abcd 1234 #连接两个字符串
abcd1234A 1 #不支持字符与数字相加抛出异常
TypeError: Cant convert int object to str implicitlyTrue 3 #Python内部把True当作1处理
4False 3 #把False当作0处理
32*运算符除了表示算术乘法还可用于列表、元组、字符串这几个序列类型与整数的乘法表示序列元素的重复生成新的序列对象。字典和集合不支持与整数的相乘因为其中的元素是不允许重复的。 [1, 2, 3] * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3](1, 2, 3) * 3
(1, 2, 3, 1, 2, 3, 1, 2, 3)abc * 3
abcabcabc3运算符/和//在Python中分别表示算术除法和算术求整商floor division。 3 / 2 #数学意义上的除法
1.515 // 4 #如果两个操作数都是整数结果为整数
315.0 // 4 #如果操作数中有实数结果为实数形式的整数值
3.0-15//4 #向下取整
-44%运算符可以用于整数或实数的求余数运算还可以用于字符串格式化但是这种用法并不推荐。 789 % 23 #余数
7123.45 % 3.2 #可以对实数进行余数运算注意精度问题
1.849999999999996%c, %d % (65, 65) #把65分别格式化为字符和整数
A, 65%f,%s % (65, 65) #把65分别格式化为实数和字符串
65.000000,655** 运算符表示幂乘 3 ** 2 #3的2次方等价于pow(3, 2)
9pow(3, 2, 8) #等价于(3**2) % 8
19 ** 0.5 #9的0.5次方平方根
3.0(-9) ** 0.5 #可以计算负数的平方根
(1.8369701987210297e-163j)8、运算符和表达式—关系运算符
Python关系运算符最大的特点是可以连用其含义与我们日常的理解完全一致。使用关系运算符的一个最重要的前提是操作数之间必须可比较大小。例如把一个字符串和一个数字进行大小比较是毫无意义的所以Python也不支持这样的运算。 1 3 5 #等价于1 3 and 3 5
Trueimport mathmath.isclose(0.4-0.1,0.3)
TrueHello world #比较字符串大小
False[1, 2, 3] [1, 2, 4] #比较列表大小
True{1, 2, 3} {1, 2, 3, 4} #测试是否子集
True{1, 2, 3} {3, 2, 1} #测试两个集合是否相等
True{1, 2, 4} {1, 2, 3} #集合之间的包含测试
False9.1、运算符和表达式— 成员测试运算符in
成员测试运算符in用于成员测试即测试一个对象是否为另一个对象的元素。 3 in [1, 2, 3] #测试3是否存在于列表[1, 2, 3]中
True5 in range(1, 10, 1) #range()是用来生成指定范围数字的内置函数
Trueabc in abcdefg #子字符串测试
Truefor i in (3, 5, 7): #循环成员遍历print(i, end\t)
3 5 7 9.2、运算符和表达式—同一性测试运算符is
同一性测试运算符is用来测试两个对象是否是同一个如果是则返回True否则返回False。如果两个对象是同一个二者具有相同的内存地址。 3 is 3
Truex [300, 300, 300]x[0] is x[1] #基于值的内存管理同一个值在内存中只有一份
Truex [1, 2, 3]y [1, 2, 3]x[0] is y[0]
True9.3、运算符和表达式— 位运算符
位运算符只能用于整数其内部执行过程为首先将整数转换为二进制数然后右对齐必要的时候左侧补0按位进行运算最后再把计算结果转换为十进制数字返回。 位与运算规则为111、1001000位或运算规则为1|11|00|11、0|00位异或运算规则为11000、10011。
左移位时右侧补0每左移一位相当于乘以2右移位时左侧补0每右移一位相当于整除以2。 3 2 #把3左移2位
123 7 #位与运算
33 | 8 #位或运算
113 ^ 5 #位异或运算9.4、运算符和表达式— 集合运算符
集合的交集、并集、对称差集等运算借助于位运算符来实现而差集则使用减号运算符实现注意并集运算符不是加号。 {1, 2, 3} | {3, 4, 5} #并集自动去除重复元素
{1, 2, 3, 4, 5}{1, 2, 3} {3, 4, 5} #交集
{3}{1, 2, 3} ^ {3, 4, 5} #对称差集
{1, 2, 4, 5}{1, 2, 3} - {3, 4, 5} #差集
{1, 2}9.5、运算符和表达式— 逻辑运算符
逻辑运算符and、or、not常用来连接条件表达式构成更加复杂的条件表达式并且and和or具有惰性求值或逻辑短路的特点当连接多个表达式时只计算必须要计算的值。 另外要注意的是运算符and和or并不一定会返回True或False而是得到最后一个被计算的表达式的值但是运算符not一定会返回True或False。 35 and a3 #注意此时并没有定义变量a
False35 or a3 #35的值为False所以需要计算后面表达式
NameError: name a is not defined35 or a3 #35的值为True不需要计算后面表达式
True3 and 5 #最后一个计算的表达式的值作为整个表达式的值
53 and 52
True3 not in [1, 2, 3] #逻辑非运算not
False3 is not 5 #not的计算结果只能是True或False之一
Truenot 3
Falsenot 0
True9.6、运算符和表达式—复合赋值运算符
Python还有赋值运算符和、-、*、/、//、**、|、^等大量复合赋值运算符。例如x 3在语法上等价注意在功能的细节上可能会稍有区别于x x 3。
9.7、运算符和表达式— 、–
Python不支持和–运算符虽然在形式上有时候似乎可以这样用但实际上是另外的含义要注意和其他语言的区别。 i 3i #正正得正
3(3) #与i等价
3i #Python不支持运算符语法错误
SyntaxError: invalid syntax--i #负负得正等价于-(-i)
3---i #等价于-(-(-i))
-3i-- #Python不支持--运算符语法错误
SyntaxError: invalid syntax9.8、运算符和表达式— Python关键字简要说明
Python关键字只允许用来表达特定的语义不允许通过任何方式改变它们的含义也不能用来做变量名、函数名或类名等标识符。
在Python开发环境中导入模块keyword之后可以使用print(keyword.kwlist)查看所有关键字