python笔记系列一

一、介绍

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。

Python支持GUI可以创建和移植到许多系统调用。可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

1、Python 环境变量

下面几个重要的环境变量,它应用于Python:

变量名描述
PYTHONPATHPYTHONPATH是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 集成环境

Free Download | 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 除以 yb / 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:
    print(n)

>>>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)逻辑运算符
运算符逻辑表达式描述实例
andx and y布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。 (a and b) 返回 20。
orx or y布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。(a or b) 返回 10。
notnot 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)身份运算符
运算符描述实例
isis 是判断两个标识符是不是引用自一个对象x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is notis 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)运算符优先级

以下表格列出了从最高到最低优先级的所有运算符, 相同单元格内的运算符具有相同优先级。 运算符均指二元运算,除非特别指出。 相同单元格内的运算符从左至右分组(除了幂运算是从右至左分组):

运算符

说明

(expressions...),

[expressions...]{key: value...}{expressions...}

圆括号的表达式

x[index]x[index:index]x(arguments...)x.attribute

读取,切片,调用,属性引用

await x

await 表达式

**

乘方(指数)

+x-x~x

正,负,按位非 NOT

*@///%

乘,矩阵乘,除,整除,取余

+-

加和减

<<>>

移位

&

按位与 AND

^

按位异或 XOR

|

按位或 OR

in,not inis,is not<<=>>=!===

比较运算,包括成员检测和标识号检测

not x

逻辑非 NOT

and

逻辑与 AND

or

逻辑或 OR

if -- else

条件表达式

lambda

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数据类型转换

下面的几个内置的函数可以使数据类型之间进行转换。这些函数返回一个新的对象,表示转换的值。

函数描述

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)

将一个整数转换为一个字符

ord(x)

将一个字符转换为它的整数值

hex(x)

将一个整数转换为一个十六进制字符串

oct(x)

将一个整数转换为一个八进制字符串

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,一般情况下你只需要将数据类型作为函数名即可。

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的平方根。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值