Python-2.语言基础
砂糖桑
Aug 12, 2022
Last edited: 2022-8-14
type
Post
status
Published
date
Aug 12, 2022
slug
python-2
summary
本篇主要学习Python的基本数据类型、模块函数和系统内置函数、以及运算符。通过本节的学习基本可以使用Python的命令行解释器,进行简单的运算等操作。
tags
Python课堂笔记合集
category
Python
icon
password
Property
Aug 14, 2022 11:17 AM
本篇主要学习Python的基本数据类型(整型、浮点型、复数型、字符串类型)和常用模块和内置函数(math、cmath、random)。
基本数据类型
Python内置的数据类型包括数值型、字符串型、布尔型等基本(简单)数据类型以及列表、元组、字典、集合等复杂数据类型。现在关注的是基本数据类型,复杂数据类型后面一一学习。
整型
Python 2.x中的整型包括int和long两种,长整型无需考虑溢出的问题。到了3.x,统一采用了长整型。
Python 3.x中整型数据的大小可以是任意大,无需考虑溢出。它的原理是将整型的数值用int数组来存储,当要溢出的时候就增加数组的空间。正是因为不用考虑数值的溢出,使用Python对大数据进行计算是很方便的。
整型可以表示为十进制、二进制、八进制和十六进制:
- 十进制:默认使用
- 二进制:前面加上0b或0B
- 八进制:前面加上0o或0O
- 十六进制:前面加上0x或0X

浮点型
浮点型表示的是一个实数,它有小数形式和指数形式两种表示方式:
- 小数形式
包括整数和小数部分,用小数点分隔。如果小数点后面没有数,那么默认小数部分为0,如34.=34.0。
- 指数形式
格式为[数值部分]e/E[指数部分]。需要注意数值部分和指数部分必须都要有,且指数部分必须为整数。如e4、4e、3.4e3.5这样的表示都是非法的。
注意Python 3.x默认提供的浮点数总共有17位有效数字的精度。超过的话就会减去低位。
此外,由于计算机需要将数据先转化为二进制再进行计算。而十进制小数转化为二进制小数时可能出现无限小数(乘2取整),且Python中浮点数精度有限,所以精度以外的数值都会被舍弃,所以最后结果可能接近预期结果但不相等。如果某位的后面全是0,那么就不会显示后面的0。


复数型
工程上复数的计算用得很多,而Python本身就提供复数类型,所以Python的使用领域很广。
复数的格式为a+bj/J。a为实部,b为虚部,可以通过.real和.imag分别获取到a和b。获取到的a和b都是浮点型。

字符串类型
Python可以使用单引号’或双引号”来定义一个行内字符串,使用三个引号’’’或”””来定义一个多行字符串(文本块)。也可以在字符串中使用转移字符。
可以对字符串可以进行的操作有:
- 按照下标访问对应位置的字符
- 给定下标范围对字符串进行切片
- 使用eval()函数删去字符串最外面那层引号

- 使用len()函数获取字符串的长度

不能对字符串进行的操作:
- 不能修改字符串的某个字符,只能重新赋值。这是Python的语言特性,重新赋值后原来的字符串就会被解释器自动进行垃圾回收。
布尔类型
包括True和False。和C++不同,它们的首字母要大写。
需要注意浮点数判等的方法:

常用模块函数
math模块
- math.e表示自然常数e
- math.pi表示圆周率pi
- fabs(x)返回x的绝对值(浮点数)
- sqrt(x)返回x的平方根(浮点数)
- pow(x,y)返回x的y次方
- exp(x)返回e的x次方
- log(x,y)返回 的结果
- log(x)返回 的结果
- log10(x)返回 的结果
- ceil(x)返回x向上取整的结果
- floor(x)返回x向下取整的结果
- degrees(x)将x(弧度)转化为角度
- radians(x)将x(角度)转化为弧度
- sin(x)、cos(x)、tan(x)的x为弧度
>>> import math >>> math.e 2.718281828459045 >>> math.pi 3.141592653589793 >>> math.fabs(-4) 4.0 >>> math.sqrt(2) 1.4142135623730951 >>> math.pow(2,3) 8.0 >>> math.exp(2) 7.38905609893065 >>> math.log(100,10) 2.0 >>> math.log10(100) 2.0 >>> math.log(math.exp(2)) 2.0 >>> math.ceil(0.5) 1 >>> math.floor(0.5) 0 >>> math.degrees(math.pi) 180.0 >>> math.radians(180) 3.141592653589793 >>> math.radians(180)/math.pi 1.0
camth模块
它的函数和math模块基本一致,区别是它由于复数运算。
random模块
- 使用random.seed(x)设置生成随机数的种子。它是一系列随机操作的依据。
- 使用random.choice(array)按照种子从数组的元素中选择一个元素。
- 使用random.sample(array, k)按照种子从array中挑选k个元素。
- 使用random.shuffle(array)按照种子将array中的元素随机排序。
- 使用random.random()随机生成[0,1)的一个实数。
- 使用random.uniform(a, b)随机生成[a, b)范围内的一个实数。
- 使用random.randint(a, b)随机生成[a, b]范围内的一个整数。

随机操作都和种子有关。当种子一样时结果也是一样的。如果不设定种子默认采用系统时间。所以说这里的随机实际上是种子的随机。
常用内置函数
当我们使用type()查看类型时,就会发现区别。

这就类似于shell中的命令包括内置命令、可执行程序和shell脚本一样,Python中的函数也有内置函数和模块函数。模块又有内置模块和第三方模块,不要搞混了!常用的内置函数如下:
range()函数
一个典型的使用range的场景是在for循环中:
for i in range(0, 6): print(i)
range的基本格式为range([start],[end],[step]),说明如下:
- range返回的是一个可迭代对象
- 相当于从start开始,以step为公差,一直到end的等差数列。范围是左闭右开[start, end)。
- 如果要逆序,则将step设为负值即可。
- start缺省默认为0,step缺省默认为1。
数值运算函数
这里的部分函数和math模块的函数很相似。都能用的话还是尽可能使用内置函数:

基本运算符
算数运算符
包括+、-、*、/、//(整除)、%、**(乘方)。
//返回商的整数部分,与%配套。如果//的一个操作数是浮点数,那么结果返回的也是浮点数。
x**y的结果和pow(x, y)一样。乘方运算符的优先级高于乘除。
位运算
包括&、|、~、^、>>、<<。和C++中的位运算符一样。
强制类型转换
格式都是 类型(操作数) 的形式。
- int(x)将x转化为整型——截尾取整或向零取整:int(-1.2)=-1。
- float(x)
- complex(x)将x转化为复数,实部为x,虚部为0。
- complex(x, y),实部为x,虚部为y。
- Catalog
- About
0%

