一、介绍
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。
Python支持GUI可以创建和移植到许多系统调用。可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
1、Python 环境变量
下面几个重要的环境变量,它应用于Python:
变量名 | 描述 |
---|---|
PYTHONPATH | PYTHONPATH是Python搜索路径,默认我们import的模块都会从PYTHONPATH里面寻找。 |
PYTHONSTARTUP | Python启动后,先寻找PYTHONSTARTUP环境变量,然后执行此变量指定的文件中的代码。 |
PYTHONCASEOK | 加入PYTHONCASEOK的环境变量, 就会使python导入模块的时候不区分大小写. |
PYTHONHOME | 另一种模块搜索路径。它通常内嵌于的PYTHONSTARTUP或PYTHONPATH目录中,使得两个模块库更容易切换。 |
2、运行 Python的三种方式
(1)交互式解释器:
你可以通过命令行窗口进入 Python 并开始在交互式解释器中开始编写 Python 代码。
你可以在 Unix、DOS 或任何其他提供了命令行或者 shell 的系统进行 Python 编码工作。
$ python # Unix/Linux
# 或者
C:>python # Windows/DOS
以下为 Python 命令行参数:
选项 | 描述 |
---|---|
-d | 在解析时显示调试信息 |
-O | 生成优化代码 ( .pyo 文件 ) |
-S | 启动时不引入查找Python路径的位置 |
-V | 输出Python版本号 |
-X | 从 1.6版本之后基于内建的异常(仅仅用于字符串)已过时。 |
-c cmd | 执行 Python 脚本,并将运行结果作为 cmd 字符串。 |
file | 在给定的python文件执行python脚本。 |
(2)命令行脚本
在你的应用程序中通过引入解释器可以在命令行中执行Python脚本,如下所示:
$ python script.py # Unix/Linux
# 或者
C:>python script.py # Windows/DOS
注意:在执行脚本时,请检查脚本是否有可执行权限。
(3)集成开发环境
集成开发环境(IDE:Integrated Development Environment)
第一种:PyCharm
Thank you for downloading PyCharm!
Professional(专业版,收费):完整的功能,可试用 30 天。
Community(社区版,免费):阉割版的专业版。
第二种:Anaconda 集成环境
第三种:Python VScode
Visual Studio Code - Code Editing. Redefined
3、文件拓展名
Python 常用文件扩展名为 .py。你可以将以上代码保存在 hello.py 文件中并使用 python 命令执行该脚本文件。
Python3.5 之前可用 .py、.pyi、.pyc、.pyd、.pyo,Python3.5版本之后可用 .pyw、.pyz,我们常见的是 .py。
4、Python3 基础语法
(1)编码:默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码:
# -*- coding: cp-1252 -*-
# 上述定义允许在源文件中使用 Windows-1252 字符集中的字符编码,对应适合语言为保加利亚语、白俄罗斯语、马其顿语、俄语、塞尔维亚语。
(2) 注释:Python中单行注释以 # 开头,多行注释可以用多个 # 号,还有 ''' 和 """:
# 注释
print ("Hello, Python!")
'''
这里是注释
这里是注释
'''
"""
这里是注释
这里是注释
"""
(3)标识符 :第一个字符必须是字母表中字母或下划线 _ 。标识符的其他的部分由字母、数字和下划线组成。标识符对大小写敏感。在 Python 3 中,可以用中文作为变量名,非 ASCII 标识符也是允许的了。
(4)行与缩进:使用缩进来表示代码块,不需要使用大括号 {} 。缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。
if True:
print ("True")
else:
print ("False")
(5)python保留字:保留字即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
(6)多行语句:Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现多行语句,在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \
total = item_one + \
item_two + \
item_three
total = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']
(7)数字(Number)类型:python中数字有四种类型:整数、布尔型、浮点数和复数。int (整数):如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。bool (布尔值):如 True,False。float (浮点数): 如 3.14。complex (复数), 复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型,如 a+bi。Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True,但可以通过 is 来判断类型。
内置的 type() 函数可以用来查询变量所指的对象类型。此外还可以用 isinstance 来判断isinstance 和 type 的区别在于:type()不会认为子类是一种父类类型。isinstance()会认为子类是一种父类类型。
a, b, c, d = 20, 5.5, True, 4+3j
print(type(a), type(b), type(c), type(d))
# output:<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
a = 111
isinstance(a, int)
# output:True
(8)字符串(String):Python 中单引号 ' 和双引号 " 使用完全相同,使用三引号(''' 或 """)可以指定一个多行字符串。Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。Python 中的字符串不能改变。Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。字符串的截取的语法格式如下:变量[头下标:尾下标:步长]。加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,与之结合的数字为复制的次数。
print('hello\nrunoob') # 使用反斜杠(\)+n转义特殊字符
print(r'hello\nrunoob')
# 在字符串前面添加一个 r,表示原始字符串,不会发生转义这里的 r 指 raw,即 raw string,会自动将反斜杠转义。
str='123456789'
print(str) # 输出字符串
print(str[0:-1]) # 输出第一个到倒数第二个的所有字符
print(str[0]) # 输出字符串第一个字符
print(str[2:5]) # 输出从第三个开始到第六个的字符(不包含)
print(str[2:]) # 输出从第三个开始后的所有字符
print(str[1:5:2]) # 输出从第二个开始到第五个且每隔一个的字符(步长为2)
print(str * 2) # 输出字符串两次
print(str + '你好') # 连接字符串
(9)空行:函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。空行与代码缩进不同,空行并不是 Python 语法的一部分。书写时不插入空行,Python 解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。空行也是程序代码的一部分。
(10)同一行显示多条语句:Python 可以在同一行中使用多条语句,语句之间使用分号 ; 分割。
import sys; x = 'runoob'; sys.stdout.write(x + '\n')
(11)多个语句构成代码组:缩进相同的一组语句构成一个代码块,我们称之代码组。像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。将首行及后面的代码组称为一个子句(clause)。
if num >= 80:
print(“优秀”)
elif 60 <= num < 80:
print(“及格”)
else:
print(“不及格”)
(12)print 输出:print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""。
x="a"
y="b"
# 换行输出
print( x )
print( y )
# 不换行输出
print( x, end=" " )
print( y, end=" " )
print()
(13)等待用户输入:执行下面的程序在按回车键后就会等待用户输入:
input("\n\n按下 enter 键后退出。")
(14)import 与 from...import:在 python 用 import 或者 from...import 来导入相应的模块。将整个模块(somemodule)导入,格式为: import somemodule。从某个模块中导入某个函数,格式为: from somemodule import somefunction。从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc。
(15)命令行参数:很多程序可以执行一些操作来查看一些基本信息,Python可以使用-h参数查看各参数帮助信息。
二、数据类型
Python3 中常见的数据类型有:
(1)Number(数字)
(2)String(字符串)
(3)bool(布尔类型)
(4)List(列表)
(5)Tuple(元组)
(6)Set(集合)
(7)Dictionary(字典)
Python3 的六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
此外还有一些高级的数据类型,如: 字节数组类型(bytes)。
1,数值运算
(1)算术运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 - 两个对象相加 | a + b 输出结果 31 |
- | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -11 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 210 |
/ | 除 - x 除以 y | b / a 输出结果 2.1 |
% | 取模 - 返回除法的余数 | b % a 输出结果 1 |
** | 幂 - 返回x的y次幂 | a**b 为10的21次方 |
// | 取整除 - 往小的方向取整数 | 10//6输出结果1 20//3输出结果6 |
>>> 5 + 4 # 加法
9
>>> 4.3 - 2 # 减法
2.3
>>> 3 * 7 # 乘法
21
>>> 2 / 4 # 除法,得到一个浮点数
0.5
>>> 2 // 4 # 除法,得到一个整数
0
>>> 17 % 3 # 取余
2
>>> 2 ** 5 # 乘方
32
(2)比较运算符
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 - 比较对象是否相等 | (a == b) 返回 False。 |
!= | 不等于 - 比较两个对象是否不相等 | (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。 |
(3)赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | 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 |
:= | 海象运算符,这个运算符的主要目的是在表达式中同时进行赋值和返回赋值的值。 海象运算符 := 允许我们在条件语句中同时计算并赋值 n * n,然后将结果用于比较,这可以减少代码的行数并使代码更紧凑。 | if (n := 10) > 5: >>>10 |
(4)位运算符
按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:
运算符 | 描述 | 实例 |
---|---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a & b) 输出结果 12 ,二进制解释: 0000 1100 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 | (a | b) 输出结果 61 ,二进制解释: 0011 1101 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | (a ^ b) 输出结果 49 ,二进制解释: 0011 0001 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1 | (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 | a << 2 输出结果 240 ,二进制解释: 1111 0000 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 | a >> 2 输出结果 15 ,二进制解释: 0000 1111 |
(5)逻辑运算符
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。 | (a and b) 返回 20。 |
or | x or y | 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
(6)成员运算符
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
(7)身份运算符
运算符 | 描述 | 实例 |
---|---|---|
is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(x) != id(y)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 id() 函数用于获取对象内存地址。 |
a = [1, 2, 3]
b = a
print(b is a)
>>>True
print(b == a)
>>>True
b = a[:]
print(b is a)
>>>False
print(b == a)
>>>True
(8)运算符优先级
以下表格列出了从最高到最低优先级的所有运算符, 相同单元格内的运算符具有相同优先级。 运算符均指二元运算,除非特别指出。 相同单元格内的运算符从左至右分组(除了幂运算是从右至左分组):
运算符 | 说明 |
---|---|
| 圆括号的表达式 |
| 读取,切片,调用,属性引用 |
await x | await 表达式 |
| 乘方(指数) |
| 正,负,按位非 NOT |
| 乘,矩阵乘,除,整除,取余 |
| 加和减 |
| 移位 |
| 按位与 AND |
| 按位异或 XOR |
| 按位或 OR |
| 比较运算,包括成员检测和标识号检测 |
| 逻辑非 NOT |
| 逻辑与 AND |
| 逻辑或 OR |
| 条件表达式 |
| lambda 表达式 |
| 赋值表达式 |
注意:1)Python可以同时为多个变量赋值,如a, b = 1, 2。2)一个变量可以通过赋值指向不同类型的对象。3)数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。4)在混合计算时,Python会把整型转换成为浮点数。
2、bool(布尔类型)
布尔类型即 True 或 False。在 Python 中,True 和 False 都是关键字,表示布尔值。布尔类型可以用来控制程序的流程,比如判断某个条件是否成立,或者在某个条件满足时执行某段代码。
布尔类型特点:只有两个值:True 和 False。可以和其他数据类型进行比较,比如数字、字符串等。在比较时,Python 会将 True 视为 1,False 视为 0。布尔类型可以和逻辑运算符一起使用,包括 and、or 和 not。这些运算符可以用来组合多个布尔表达式,生成一个新的布尔值。布尔类型也可以被转换成其他数据类型,比如整数、浮点数和字符串。在转换时,True 会被转换成 1,False 会被转换成 0。在 Python 中,所有非零的数字和非空的字符串、列表、元组等数据类型都被视为 True,只有 0、空字符串、空列表、空元组等被视为 False。因此,在进行布尔类型转换时,需要注意数据类型的真假性。
# 比较运算符
print(9 < 13) # True
print(2 == 3) # False
# 逻辑运算符
a = True
b = False
print(a and b) # False
print(a or b) # True
print(not a) # False
# 类型转换
print(int(a)) # 1
print(float(b)) # 0.0
print(str(a)) # "True"
3、Tuple(元组)
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。元组与字符串类似,可以被索引且下标索引从0开始,-1 为从末尾开始的位置。也可以进行截取,可以把字符串看作一种特殊的元组。
tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
创建只有一个元素的元组,需要在每个元素后面添加一个逗号,以区分它是一个元组而不是一个普通的值。
注意:与字符串一样,元组的元素不能修改。元组也可以被索引和切片,方法一样。注意构造包含 0 或 1 个元素的元组的特殊语法规则。元组也可以使用 + 操作符进行拼接。
num = (1, 2, 3, 4, 5, 6)
print(num[0])
print(num[1:5])
# num[0] = 8 # 修改元组元素的操作是非法的
print(tup)
4、List(列表)
List(列表) 是 Python 中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。列表是写在方括号 [] 之间、用逗号分隔开的元素列表。和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
列表截取的语法格式如下:变量[头下标:尾下标]。索引值以 0 为开始值,-1 为从末尾的开始位置。列表写在方括号之间,元素用逗号隔开。和字符串一样,列表可以被索引和切片。加号 + 是列表连接运算符,星号 * 是重复操作。如下实例:
list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ] # 定义一个列表
tinylist = [123, 'runoob']
print (list) # 打印整个列表
print (list[0]) # 打印列表的第一个元素
print (list[1:3]) # 打印列表第二到第三个元素(不包含第三个元素)
print (list[2:]) # 打印列表从第三个元素开始到末尾
print (tinylist * 2) # 打印tinylist列表两次
print (list + tinylist) # 打印两个列表拼接在一起的结果
# 给列表改元素
a = [1, 2, 3, 4, 5, 6]
a[0] = 9
a[2:5] = [13, 14, 15]
print(a)
# 把对应索引的元素改为空
a[2:5] = [] # 将对应的元素值设置为 []
print(a)
注意:string、list 和 tuple 都属于 sequence(序列)。
5、Dictionary(字典)
字典(dictionary)是Python中另一个非常有用的内置数据类型。字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,它的元素是键值对。字典的关键字必须为不可变类型,且不能重复。创建空字典使用 { }。
dict = {}
dict['hello'] = "python"
dict[100] = "hello world"
print(dict)
>>>{'hello': 'python', 100: 'hello world'}
6、Set(集合)
Python 中的集合(Set)是一种无序、可变的数据类型,用于存储唯一的元素。集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。在 Python 中,集合使用大括号 {} 表示,元素之间用逗号 , 分隔。另外,也可以使用 set() 函数创建集合。创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
# Set(集合)
sites = {'Google', 'Taobao','Baidu','Runoob', 'Facebook', 'Zhihu', 'Baidu'}
print(sites) # 输出集合,重复的元素被自动去掉
>>>{'Baidu', 'Facebook', 'Taobao', 'Zhihu', 'Google', 'Runoob'}
# 测试
if 'Baidu' in sites :
print('Baidu 在集合中')
else :
print('Baidu 不在集合中')
>>>Baidu 在集合中
# set可以进行集合运算
a = set('jupyteruntitled')
b = set('nikankanni')
print(a)
>>>{'u', 'n', 'r', 'i', 't', 'y', 'l', 'e', 'j', 'd', 'p'}
print(a - b) # a 和 b 的差集
>>>{'u', 'j', 'r', 'l', 't', 'y', 'e', 'd', 'p'}
print(a | b) # a 和 b 的并集
>>>{'u', 'n', 'r', 'i', 'k', 't', 'y', 'l', 'a', 'e', 'j', 'd', 'p'}
print(a & b) # a 和 b 的交集
>>>{'i', 'n'}
print(a ^ b) # a 和 b 中不同时存在的元素
>>>{'u', 'j', 'r', 'k', 't', 'y', 'l', 'a', 'e', 'd', 'p'}
6、bytes 类型
bytes 类型表示的是不可变的二进制序列(byte sequence)。与字符串类型不同的是,bytes 类型中的元素是整数值(0 到 255 之间的整数),而不是 Unicode 字符。bytes 类型通常用于处理二进制数据,比如图像文件、音频文件、视频文件等等。在网络编程中,也经常使用 bytes 类型来传输二进制数据。创建 bytes 对象的方式有多种,最常见的方式是使用 b 前缀:
此外,也可以使用 bytes() 函数将其他类型的对象转换为 bytes 类型。bytes() 函数的第一个参数是要转换的对象,第二个参数是编码方式,如果省略第二个参数,则默认使用 UTF-8 编码:
与字符串类型类似,bytes 类型也支持许多操作和方法,如切片、拼接、查找、替换等等。同时,由于 bytes 类型是不可变的,因此在进行修改操作时需要创建一个新的 bytes 对象。
x = b"hello"
y = x[1:3] # 切片操作,得到 b"el"
z = x + b"world" # 拼接操作,得到 b"helloworld"
print(z)
>>>b'helloworld'
print(y)
>>>b'el'
print(x)
>>>b'hello'
# bytes 类型中的元素是整数值,因此在进行比较操作时需要使用相应的整数值
x = b"hello"
if x[0] == ord("h"): # 其中 ord() 函数用于将字符转换为相应的整数值。
print("The first element is 'h'")
>>>The first element is 'h'
7、Python数据类型转换
下面的几个内置的函数可以使数据类型之间进行转换。这些函数返回一个新的对象,表示转换的值。
函数 | 描述 |
---|---|
将x转换为一个整数 | |
将x转换到一个浮点数 | |
创建一个复数 | |
将对象 x 转换为字符串 | |
将对象 x 转换为表达式字符串 | |
用来计算在字符串中的有效Python表达式,并返回一个对象 | |
将序列 s 转换为一个元组 | |
将序列 s 转换为一个列表 | |
转换为可变集合 | |
创建一个字典。d 必须是一个 (key, value)元组序列。 | |
转换为不可变集合 | |
将一个整数转换为一个字符 | |
将一个字符转换为它的整数值 | |
将一个整数转换为一个十六进制字符串 | |
将一个整数转换为一个八进制字符串 |
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,一般情况下你只需要将数据类型作为函数名即可。
Python 数据类型转换可以分为两种:
- 隐式类型转换 - 自动完成
- 显式类型转换 - 需要使用类型函数来转换
(1)隐式类型转换
在隐式类型转换中,Python 会自动将一种数据类型转换为另一种数据类型,不需要我们去干预。
# 对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失
num_int = 123
num_flo = 1.23
num_new = num_int + num_flo
print("num_int 数据类型为:",type(num_int))
print("num_flo 数据类型为:",type(num_flo))
print("num_new 值为:",num_new)
print("num_new 数据类型为:",type(num_new))
整型和字符串类型运算结果会报错,输出 TypeError。Python 在这种情况下无法使用隐式转换。
(2)显式类型转换
在显式类型转换中,用户将对象的数据类型转换为所需的数据类型。 我们使用 int()、float()、str() 等预定义函数来执行显式类型转换。
int() 强制转换为整型,float() 强制转换为浮点型,str() 强制转换为字符串类型,整型和字符串类型进行运算,就可以用强制类型转换来完成。
三、函数
1、随机数函数
随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
函数 | 描述 |
---|---|
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]范围内。 |
2、三角函数
函数 | 描述 |
---|---|
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) | 将角度转换为弧度 |
3、数学常量
常量 | 描述 |
---|---|
pi | 数学常量 pi(圆周率,一般以π来表示) |
e | 数学常量 e,e即自然常数(自然常数 |
4、数学函数
函数 | 返回值 ( 描述 ) |
---|---|
abs(x) | 返回数字的绝对值,如abs(-10) 返回 10 |
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的对数,如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的平方根。 |