Python虽神,语言基础并不特别
——数 据 类 型
![f7bc288ef6309a3786cd0b2eaff9990d.png](https://i-blog.csdnimg.cn/blog_migrate/bdb180ba52a64fa9b6b08462a388a929.jpeg)
一
数值
01
整型
Python 3.x可使用或支持任意大小的整型数。
十进制整型常量:十进制整型常量没有前缀,其数码为0∼9。例如:-135、57232。
八进制整型常量:必须以0O或Oo开头(第1个位数字0,第2个位字母O,大小写都可),数码为0∼7。八进制数通常是无符号数。例如:0O21(十进制为17)。
十六进制整型常量:前缀为0X或0x(第1个位数字0,第2个位字母x,大小写都可),其数码为0-9,A~F或a~f(代表10 -15)。例如:0X2A(十进制为42)、0XFFFF(十进制为65535)。
二进制整型常量:前缀为0B或0b(第1个位数字0,第2个位字母b,大小写都可),其数码为0-1。例如0b1101对应十进制13。
例如:
>>> 10+2
12
>>> 0O10+2
10
>>> 0X10+2
18
>>>101*100 //2
5050
>>> 0b1101+100
113
02
浮点型
浮点型常量带小数点的实数,可包含指数表示。譬如:158.20,-2.9,2.3E18。345(无小数点,是整型数了)、e-19(阶码标志E之前无数字)、2.1E(无阶码)等都不是正确的浮点型常量。
Python 3.x浮点数的表达精度、范围等技术信息,可以从sys.float_info获取。
例如:
![649e56d7e3012551f80decdbbe525c10.png](https://i-blog.csdnimg.cn/blog_migrate/4a103b8f26b719eadc691cabb106845e.png)
03
复数型
从复数提取它的实部和虚部,可使用“复数.real”和“复数.imag方式”。
内置函数abs(复数)可用来计算复数的模,复数.conjugate()得到共轭复数。
Python支持复数之间的加、减、乘、除以及幂乘等运算。
例如:
![836a15c4b9846268a44ca60ba1507d92.png](https://i-blog.csdnimg.cn/blog_migrate/712ac9fe2b1d94b75432e3e68c2ac9f8.png)
04
分数
Python标准库fractions中的Fraction对象支持分数运算,分数.numerator得到分子,分数.denominator 得到分母,Fraction (实数)可转换成分数。另外,还提供了用于计算最大公约数的gcd()函数和高精度实数类Decimal。
例如:
![2fef52ea627c90fe7c8819717b1219d3.png](https://i-blog.csdnimg.cn/blog_migrate/377981cbbefbf3fdb5f423adae1f05ce.png)
05
高精度实数
标准库fractions和decimal中提供的Decimal类实现了更高精度的运算。
例如:
![b0d70b20628a8a6d4cf5d2992d0aaca4.png](https://i-blog.csdnimg.cn/blog_migrate/25954aba886092843297a4d93122bd84.png)
06
布尔常量
布尔常量只有两个:真( True)和假(False)。
Python中规定:任何对象都可以用来判断其真假而用于条件、循环语句或逻辑运算中。对象判断中None、False、0值(0、0.0、0j)、空的序列值("、[]、())、空的映射值{}都为假( False)值,其他对象值都为真(True)值。
![88a56d94637a979f644cb77aa9fc8a2c.png](https://i-blog.csdnimg.cn/blog_migrate/447403320fab1ef92d81a05809efd3e9.png)
二
字符串与字节串
01
字符集
Python 2.x的默认编码是ASCII,不能识别中文字符,需要显式指定字符编码;Python3.x的默认编码为Unicode,可以识别中文字符。
02
字符串
字符串是一系列的字符序列,Python中用单引号(' ')、双引号(" ")、3个单引号(' ' ' ' ' ')或3个双引号(" " " " " ")来表示字符串常量。不同定界符之间可互相嵌套。以字母r或R引导的表示原始字符串。
例如:
![2a9adba5cb4b22dd840f94d7a490a166.png](https://i-blog.csdnimg.cn/blog_migrate/a467e51df6f6eea5389084b2758e8843.png)
03
字节串
对字符串调用其encode()方法进行编码得到字节串,对字节串调用其decode()方法并指定正确的编码格式则得到字符串。
例如:
![555e9e65df439b940701b23b556c81d0.png](https://i-blog.csdnimg.cn/blog_migrate/1a139af86027e12f47a145bf120c5f88.png)
![88a56d94637a979f644cb77aa9fc8a2c.png](https://i-blog.csdnimg.cn/blog_migrate/447403320fab1ef92d81a05809efd3e9.png)
三
数据类型转换
01
进制转换
内置函数bin(x)、oct(x)、hex(x)将整数(x)转换为二进制、八进制和十六进制形式。
例如:
>>> bin(193) #'0b11000001'
>>> oct(193) #'0o301'
>>> hex(193) #'0xc1'
02
其他形式数值转换
(1)int(x [,base]):将整数、实数、分数或合法的数字字符串转换为整数,当参数为数字字符串时,还允许指定第二个参数base用来说明数字字符串的进制。Base=0或2~36的整数,其中0表示按隐含的进制转换。
例如:
![94fc131b152400722991075e9f1e70a8.png](https://i-blog.csdnimg.cn/blog_migrate/32efa674a42807bc52036abf1af6b5ba.png)
(2)float(x):将其他类型数据转换为实数,complex()可以用来生成复数。
例如:
![0f09d89d0a34d3dc1d00ba794b8fa4a6.png](https://i-blog.csdnimg.cn/blog_migrate/0d3ed248613b6f1358d51cd15bf30520.png)
(3)eval(s):用来计算字符串s的值。eval()也可以对字节串进行求值,还可以执行内置函数compile()编译生成的代码对象。
例如:
![05ecfdc29d0574a73697b26578482d25.png](https://i-blog.csdnimg.cn/blog_migrate/537502d0271825dfa72678a897d7d9c9.png)
03
字符和码值转换
ord(x)得到单个字符x的Unicode码,而chr(x)则得到Unicode编码x对应的字符,str(x)则直接将其任意类型参数x转换为字符串。
例如:
![42b523124c2b1d43c3f9543107a2d52d.png](https://i-blog.csdnimg.cn/blog_migrate/f0a9e5297b8a5a196e7b724ef8e98fc3.png)
04
字符和字节
(1)ascll(x)把对象x转换为ASCII码表示形式,使用转义字符来表示特定的字符。
例如:
![bc22677c110e5fef4d6d5c307455f2f9.png](https://i-blog.csdnimg.cn/blog_migrate/a6577be0235f903ff1370646ba43237d.png)
(2)bytes(x, [code])把对象x转换为特定编码的字节串,code为编码名称。
例如:
![ad7b169fa03d8e84c3d2e7db50c078af.png](https://i-blog.csdnimg.cn/blog_migrate/5c75d341150abb9ef7d1b0068f90c035.png)
05
判断数据类型
type(x)用来判断x的数据类型,返回。用于避免错误的类型导致函数崩溃或意料之外的结果。isinstance(x,type)判断x是否是type数据类型,返回逻辑值。
例如:
![a6d242be9c0c1eb6e5ea23d06db1efd6.png](https://i-blog.csdnimg.cn/blog_migrate/4c97d6d34adbac30bb181def3d440c6d.png)
![88a56d94637a979f644cb77aa9fc8a2c.png](https://i-blog.csdnimg.cn/blog_migrate/447403320fab1ef92d81a05809efd3e9.png)
四
类 型 变 量
01
变量名
在Python中定义变量名时,需要注意以下问题。
(1)变量名必须以字母开头。虽然变量名也可以下画线开头,但以下画线开头的变量在Python中有特殊含义,所以普通变量应该避免使用。
(2)变量名中不能有空格或标点符号(括号、引号、逗号、斜线、反斜线、冒号、句号、问号等)。
(3)不能使用关键字(Python内部使用)作为变量名,随着Python版本的变化,关键字列表可能会有所变化。
(4)不建议使用系统内置的模块名、类型名或函数名以及已导入的模块名及其成员名作为变量名,这会改变其类型和含义,甚至会导致其他代码无法正常执行。可以通过dir(__builtins__)查看所有内置对象名称。
(5)变量名对英文字母的大小写敏感,如my和My是不同的变量。
02
变量赋值
等号(=)用来给变量赋值。等号(=)运算符左边是一个变量名,右边是存储在变量中的值。每个变量包括变量的唯一标识id、名称和数据值。一次新的赋值,将创建一个新的变量。即使变量的名称相同,变量的标识也不同。
例如:
![2e0c80996302b5f5f2a8e7fbc851eb7f.png](https://i-blog.csdnimg.cn/blog_migrate/1727e8399cbd4d2b4098c010e42a68ab.png)
03
多个变量同时赋值
Python可以同时为多个变量赋值。
例如:
![e3a2377775d064f55eb769b9b740f5a6.png](https://i-blog.csdnimg.cn/blog_migrate/cab7039c836580cb4c39d0dc1c11282c.png)
04
下画线开始的特殊变量
Python用下画线作为变量前缀和后缀指定特殊变量。
(1) _xxx:xxx变量被看作是“私有的”,在模块外不可以使用。在类中,“单下画线”开始的成员变量或类属性叫作保护变量,只有类对象和子类对象自己能访问到这些变量。
(2)_ _xxx:xxx变量是类中的私有变量。“双下画线”开始的是私有成员变量只有类对象自己能访问,连子类对象也不能访问。
(3)__xxx__:xxx为系统定义名字。以双下画线开头和结尾的代表Python特殊方法专用的标识。
![88a56d94637a979f644cb77aa9fc8a2c.png](https://i-blog.csdnimg.cn/blog_migrate/447403320fab1ef92d81a05809efd3e9.png)
参与人数21人
![d171708600c33e3957e3dc9f2d4ffc2b.png](https://i-blog.csdnimg.cn/blog_migrate/c409f25318bddc8c37c38da341df5c0b.png)
THE
END