Python数据类型转换有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
函数 | 描述 |
---|---|
int(x [,base]) | 将x转换为一个整数 |
long(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中的保留字。这些保留字不能用作常数或变数,或任何其他标识符名称。
所有 Python 的关键字只包含小写字母。
and |
exec |
not |
assert |
finally |
or |
break |
for |
pass |
class |
from |
|
continue |
global |
raise |
def |
if |
return |
del |
import |
try |
elif |
in |
while |
else |
is |
with |
except |
lambda |
yield |
Python算术运算符
以下假设变量: a=10,b=20:
运算符 |
描述 |
实例 |
---|---|---|
+ |
加 – 两个对象相加 |
a + b 输出结果 30 |
– |
减 – 得到负数或是一个数减去另一个数 |
a – b 输出结果 -10 |
* |
乘 – 两个数相乘或是返回一个被重复若干次的字符串 |
a * b 输出结果 200 |
/ |
除 – x除以y |
b / a 输出结果 2 |
% |
取模 – 返回除法的余数 |
b % a 输出结果 0 |
** |
幂 – 返回x的y次幂 |
a**b 为10的20次方, 输出结果 100000000000000000000 |
// |
取整除 – 返回商的整数部分 |
9//2 输出结果 4 , 9.0//2.0 输出结果 4.0 |
Python比较运算符以下假设变量a为10,变量b为20:
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 – 比较对象是否相等 | (a == b) 返回 False。 |
!= | 不等于 – 比较两个对象是否不相等 | (a != b) 返回 true. |
<> | 不等于 – 比较两个对象是否不相等 | (a <> b) 返回 true。这个运算符类似 != 。 |
> | 大于 – 返回x是否大于y | (a > b) 返回 False。 |
< | 小于 – 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 | (a < b) 返回 true。 |
>= | 大于等于 – 返回x是否大于等于y。 | (a >= b) 返回 False。 |
<= | 小于等于 – 返回x是否小于等于y。 | (a <= b) 返回 true。 |
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔”与” – 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
or | x or y | 布尔”或” – 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
not | not x | 布尔”非” – 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
运算符 |
描述 |
实例 |
---|---|---|
in |
如果在指定的序列中找到值返回 True,否则返回 False。 |
x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in |
如果在指定的序列中没有找到值返回 True,否则返回 False。 |
x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
运算符 |
描述 |
实例 |
---|---|---|
is |
is 是判断两个标识符是不是引用自一个对象 |
x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not |
is not 是判断两个标识符是不是引用自不同对象 |
x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符 |
描述 |
---|---|
** |
指数 (最高优先级) |
~ + – |
按位翻转, 一元加号和减号 (最后两个的方法名为 [email protected] 和 [email protected]) |
* / % // |
乘,除,取模和取整除 |
+ – |
加法减法 |
>> << |
右移,左移运算符 |
& |
位 ‘AND’ |
^ | |
位运算符 |
<= < > >= |
比较运算符 |
<> == != |
等于运算符 |
= %= /= //= -= += *= **= |
赋值运算符 |
is is not |
身份运算符 |
in not in |
成员运算符 |
not or and |
逻辑运算符 |
while 判断条件: 执行语句……
循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:
控制语句 |
描述 |
---|---|
break 语句 |
在语句块执行过程中终止循环,并且跳出整个循环 |
continue 语句 |
在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。 |
pass 语句 |
pass是空语句,是为了保持程序结构的完整性。 |
Python提供了for循环和while循环(在Python中没有do..while循环):
循环类型 |
描述 |
---|---|
while 循环 |
在给定的判断条件为 true 时执行循环体,否则退出循环体。 |
for 循环 |
重复执行语句 |
嵌套循环 |
你可以在while循环体中嵌套for循环 |
- 整型(Int) – 通常被称为是整型或整数,是正或负整数,不带小数点。
- 长整型(long integers) – 无限大小的整数,整数最后是一个大写或小写的L。
- 浮点型(floating point real values) – 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
- 复数(complex numbers) – 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
Python Number 类型转换
int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]) 创建一个复数 str(x ) 将对象 x 转换为字符串 repr(x ) 将对象 x 转换为表达式字符串 eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象 tuple(s ) 将序列 s 转换为一个元组 list(s ) 将序列 s 转换为一个列表 chr(x ) 将一个整数转换为一个字符 unichr(x ) 将一个整数转换为Unicode字符 ord(x ) 将一个字符转换为它的整数值 hex(x ) 将一个整数转换为一个十六进制字符串 oct(x ) 将一个整数转换为一个八进制字符串
Python数学函数
函数
返回值 ( 描述 )
abs(x)
返回数字的绝对值,如abs(-10) 返回 10
ceil(x)
返回数字的上入整数,如math.ceil(4.1) 返回 5
cmp(x, y)
如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
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的对数,如math.log10(100)返回 2.0
max(x1, x2,…)
返回给定参数的最大值,参数可以为序列。
min(x1, x2,…)
返回给定参数的最小值,参数可以为序列。
modf(x)
返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y)
x**y 运算后的值。
round(x [,n])
返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
sqrt(x)
返回数字x的平方根
Python随机数函数
随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
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三角函数
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)
将角度转换为弧度
Python数学常量
常量
描述
pi
数学常量 pi(圆周率,一般以π来表示)
e
数学常量 e,e即自然常数(自然常数)。
-
python字符串格式化符号:
<tbody</tbody
符 号
描述
%c
格式化字符及其ASCII码
%s
格式化字符串
%d
格式化整数
%u
格式化无符号整型
%o
格式化无符号八进制数
%x
格式化无符号十六进制数
%X
格式化无符号十六进制数(大写)
%f
格式化浮点数字,可指定小数点后的精度
%e
用科学计数法格式化浮点数
%E
作用同%e,用科学计数法格式化浮点数
%g
%f和%e的简写
%G
%f 和 %E 的简写
%p
用十六进制数格式化变量的地址
-
格式化操作符辅助指令:
符号
功能
*
定义宽度或者小数点精度
–
用做左对齐
+
在正数前面显示加号( + )
<sp>
在正数前面显示空格
#
在八进制数前面显示零(‘0′),在十六进制前面显示’0x’或者’0X'(取决于用的是’x’还是’X’)
0
显示的数字前面填充’0’而不是默认的空格
%
‘%%’输出一个单一的’%’
(var)
映射变量(字典参数)
m.n.
m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
-
Python列表脚本操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
如下所示:
Python 表达式
结果
描述
len([1, 2, 3])
3
长度
[1, 2, 3] + [4, 5, 6]
[1, 2, 3, 4, 5, 6]
组合
[‘Hi!’] * 4
[‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’]
重复
3 in [1, 2, 3]
True
元素是否存在于列表中
for x in [1, 2, 3]: print x,
1 2 3
迭代
- 元组运算符与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
Python 表达式 结果 描述 len((1, 2, 3)) 3 计算元素个数 (1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 连接 (‘Hi!’,) * 4 (‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’) 复制 3 in (1, 2, 3) True 元素是否存在 for x in (1, 2, 3): print x, 1 2 3 -
当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。
在这里,特殊字符串变量__name__指向模块的名字,__file__指向该模块的导入文件名。
各个参数的细节如下:
-
file_name:file_name变量是一个包含了你要访问的文件名称的字符串值。
-
access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
-
buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
不同模式打开文件的完全列表:
模式 |
描述 |
---|---|
r |
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb |
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ |
打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ |
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w |
打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb |
以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
w+ |
打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb+ |
以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a |
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab |
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ |
打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ |
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
单下划线、双下划线、头尾双下划线说明:
-
__foo__: 定义的是特列方法,类似 __init__() 之类的。
-
_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *
-
__foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。
你可以定义一个由自己想要功能的函数,以下是简单的规则:
-
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
-
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
-
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
-
函数内容以冒号起始,并且缩进。
-
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
语法
def functionname( parameters ): “函数_文档字符串” function_suite return [expression]
下表列出了一些通用的功能,你可以在自己的类重写:
序号 | 方法, 描述 & 简单的调用 |
---|---|
1 | __init__ ( self [,args…] ) 构造函数 简单的调用方法: obj = className(args) |
2 | __del__( self ) 析构方法, 删除一个对象 简单的调用方法 : del obj |
3 | __repr__( self ) 转化为供解释器读取的形式 简单的调用方法 : repr(obj) |
4 | __str__( self ) 用于将值转化为适于人阅读的形式 简单的调用方法 : str(obj) |
5 | __cmp__ ( self, x ) 对象比较 简单的调用方法 : cmp(obj, x) |