python标准数据类型
Python 的标准数据类型
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Sets(集合)
- Dictionary(字典)
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的 “类型” 是变量所指的内存中对象的类型。
等号(=)用来给变量赋值。=
运算符左边是一个变量名,=
运算符右边是存储在变量中的值。
内置的 type() 函数可以用来查询变量所指的对象类型。
Number(数字)
Python3 支持 int、float、bool、complex(复数)。在 Python 3 里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
a, b, c, d = 20, 5.5, True, 4+3j
print(type(a), type(b), type(c), type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
也可以使用 del
语句删除一些对象引用。
del
语句的语法是:
del var1[,var2[,var3[....,varN]]]]
示例:
您可以通过使用del语句删除单个或多个对象。例如:
del var
del var_a, var_b
数学函数
函数 | 返回值 ( 描述 ) |
---|---|
abs(x) |
返回数字的绝对值或复数的模 |
ceil(x) |
返回数字的上入整数,如math.ceil(4.1) 返回 5 |
cmp(x, y) |
如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已废弃 。使用 使用(x>y)-(x<y) 替换。 |
exp(x) |
返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045 |
fabs(x) |
返回数字的绝对值,如math.fabs(-10) 返回10.0 |
floor(x) |
返回数字的下舍整数,如math.floor(4.9) 返回 4 |
log(x) |
如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
log10(x) |
返回以10为基数的x的对数 |
max(x1, x2,...) |
返回给定参数的最大值,参数可以为序列。 |
min(x1, x2,...) |
返回给定参数的最小值,参数可以为序列。 |
modf(x) |
返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 |
pow(x, y) |
x**y 运算后的值。 |
round(x [,n]) |
返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。 |
sqrt(x) |
返回数字x的平方根,数字可以为负数,返回类型为实数 |
示例:
import math
math.fabs(-3)
3.0
abs(-3+4j)
5.0
随机数函数
随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
Python包含以下常用随机数函数:
函数 | 描述 |
---|---|
choice(seq) | 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。 |
randrange ([start,] stop [,step]) | 从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1 |
random() | 随机生成下一个实数,它在[0,1)范围内。 |
seed([x]) | 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 |
shuffle(lst) | 将序列的所有元素随机排序 |
uniform(x, y) | 随机生成下一个实数,它在[x,y]范围内。 |
三角函数
Python包括以下三角函数:
函数 | 描述 |
---|---|
acos(x) | 返回x的反余弦弧度值。 |
asin(x) | 返回x的反正弦弧度值。 |
atan(x) | 返回x的反正切弧度值。 |
atan2(y, x) | 返回给定的 X 及 Y 坐标值的反正切值。 |
cos(x) | 返回x的弧度的余弦值。 |
hypot(x, y) | 返回欧几里德范数 sqrt(x*x + y*y) 。 |
sin(x) | 返回的x弧度的正弦值。 |
tan(x) | 返回x弧度的正切值。 |
degrees(x) | 将弧度转换为角度,如degrees(math.pi/2) 返回90.0 |
radians(x) | 将角度转换为弧度 |
数学常量
常量 | 描述 |
---|---|
pi | 数学常量 pi(圆周率,一般以π来表示) |
e | 数学常量 e,e即自然常数(自然常数)。 |
String(字符串)
Python中的字符串用单引号('
)或双引号("
)括起来,同时使用反斜杠(\
)转义特殊字符。
详见python的几个相关知识(三)
Python 使用反斜杠(\
)转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r
,表示原始字符串:
print('Ru\noob')
Ru
oob
print(r'Ru\noob')
Ru\noob
另外,反斜杠(\
)可以作为续行符,表示下一行是上一行的延续。也可以使用
"""..."""
或者 '''...'''
跨越多行。
List(列表)
List(列表)是Python中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号([]
)之间并用逗号分隔开的元素列表。
Tuple(元组)
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号(()
)里,元素之间用逗号隔开。
一般来说,函数的返回值一般为一个,而函数返回多个值的时候,是以元组的方式返回的。
python中的函数还可以接收可变长参数,比如以 "*
" 开头的的参数名,会将所有的参数收集到一个元组上。
Set(集合)
集合(set)是一个无序不重复元素的序列。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { }
或者 set()
函数创建集合,注意:创建一个空集合必须用 set()
而不是 { }
,因为 { }
是用来创建一个空字典。
Dictionary(字典)
字典(dictionary)是Python中另一个非常有用的内置数据类型。
列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用"{ }
"标识,它是一个无序的键(key) : 值(value)
对集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。
Python数据类型转换
以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象
,表示转换的值。
函数 | 描述 |
---|---|
int(x [,base]) |
将x转换为一个整数 |
float(x) |
将x转换到一个浮点数 |
complex(real [,imag]) |
创建一个复数 |
str(x) |
将对象 x 转换为字符串 |
repr(x) |
将对象 x 转换为表达式字符串 |
eval(str) |
用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) |
将序列 s 转换为一个元组 |
list(s) |
将序列 s 转换为一个列表 |
set(s) |
转换为可变集合 |
dict(d) |
创建一个字典。d 必须是一个序列 (key,value) 元组。 |
frozenset(s) |
转换为不可变集合 |
chr(x) |
将一个整数转换为一个字符 |
unichr(x) |
将一个整数转换为Unicode字符 |
ord(x) |
将一个字符转换为它的整数值 |
hex(x) |
将一个整数转换为一个十六进制字符串 |
oct(x) |
将一个整数转换为一个八进制字符串 |
运算符
Python算术运算符
运算符 | 描述 |
---|---|
+ |
加(两个对象相加) |
- |
减 |
* |
乘(两个数相乘或是返回一个被重复若干次的序列) |
/ |
除 |
% |
取模(返回除法的余数) |
** |
幂 |
// |
取整除 |
Python比较运算符
==
<=
<
>=
>
!=
返回布尔值(True/False)
Python赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= |
简单的赋值运算符 | \(c = a + b\) 将 \(a + b\) 的运算结果赋值为\(c\) |
+= |
加法赋值运算符 | c += a 等效于 c = c + a |
-= |
减法赋值运算符 | c -= a 等效于 c = c - a |
*= |
乘法赋值运算符 | c *= a 等效于 c = c * a |
/= |
除法赋值运算符 | c /= a 等效于 c = c / a |
%= |
取模赋值运算符 | c %= a 等效于 c = c % a |
**= |
幂赋值运算符 | c **= a 等效于 c = c ** a |
//= |
取整除赋值运算符 | c //= a 等效于 c = c // a |
Python位运算符
按位运算符是把数字看作二进制来进行计算的。
运算符 | 描述 |
---|---|
& |
按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
\(\mid\) | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 |
^ |
按位异或运算符:当两对应的二进位相异时,结果为1 |
~ |
按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1 |
<< |
左移动运算符:运算数的各二进位全部左移若干位,由"<< "右边的数指定移动的位数,高位丢弃,低位补0。 |
>> |
右移动运算符:把">> "左边的运算数的各二进位全部右移若干位,">> "右边的数指定移动的位数 |
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 12 = 0000 1100
print ("1 - c 的值为:", c)
c = a | b; # 61 = 0011 1101
print ("2 - c 的值为:", c)
c = a ^ b; # 49 = 0011 0001
print ("3 - c 的值为:", c)
c = ~a; # -61 = 1100 0011
print ("4 - c 的值为:", c)
c = a << 2; # 240 = 1111 0000
print ("5 - c 的值为:", c)
c = a >> 2; # 15 = 0000 1111
print ("6 - c 的值为:", c)
1 - c 的值为: 12
2 - c 的值为: 61
3 - c 的值为: 49
4 - c 的值为: -61
5 - c 的值为: 240
6 - c 的值为: 15
Python逻辑运算符
运算符 | 逻辑表达式 | 描述 |
---|---|---|
and |
x and y |
布尔"与" (如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。) |
or |
x or y |
布尔"或" (\(如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。\)) |
not |
not x |
布尔"非" (\(如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。\)) |
注意:and or 惰性求值 |
Python成员运算符
运算符 | 描述 |
---|---|
in |
如果在指定的序列中找到值返回 True ,否则返回 False 。 |
not in |
如果在指定的序列中没有找到值返回 True ,否则返回 False 。 |
Python身份运算符
身份运算符用于比较两个对象的存储单元
运算符 | 描述 | 实例 |
---|---|---|
is |
判断两个标识符是不是引用自一个对象 | x is y , 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not |
判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(a) != id(b) 。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
注:id() 函数用于获取对象内存地址。 |
Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符 | 描述 |
---|---|
** |
指数 (最高优先级) |
~ + - |
按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@ ) |
* / % // |
乘,除,取模和取整除 |
+ - |
加法 减法 |
>> << |
右移,左移运算符 |
& |
位 'AND' |
^ \(\mid\) |
位运算符 |
<= < > >= |
比较运算符 |
<> == != |
等于运算符 |
= %= /= //= -= += *= **= |
赋值运算符 |
is is not |
身份运算符 |
in not in |
成员运算符 |
not or and |
逻辑运算符 |
在python的几个相关知识(二) 介绍了一些关于序列,字典(映射),集合的知识。