数字类型
整数类型
整数有4中进制表示:十进制、二进制、八进制、十六进制。默认采用十进制,其他进制加引导符号。整数范围理论上是[负无穷,正无穷],实际上收到计算机内存大小的限制。
- 二进制:0b或者0B
- 八进制:0o或者0O
- 十六进制0x或者0X
浮点数类型
Python要求所有浮点数必须带有小数部分,但是小数部分可以是0,用于区分浮点数和整数类型。浮点数可以使用十进制表示和科学计数法表示。例如:0.0,-7. ,96e4(也可以表示成96E4或者96E+4)等。
Python浮点数的数值范围和小数精度受不同计算机系统的限制。
使用浮点数无法进行高精度的数学计算。(在Python中可以使用整数表达浮点数,来提高计算精度)
Python还提供了Decimal来提高浮点数计算的精度
import decimal
a = decimal.Decimal('3.1415926') ##需要使用单引号
b = decimal.Decimal('1.234567')
decimal.getcontext().prec=20 #设置精度
print(a * b)
复数\虚数
用以下方式表示:12.3+4j,-5.6+7j,1.23e-5+5.67e+89j。
实数部分和虚数部分都是浮点数类型,可以用z.real和z.imag来获得复数z的实数部分和虚数部分。
数字运算
print(30-3**2+8/2**2*10)
##乘方优先级比除法优先级高
print(3*4**2/8%5)
##乘除法优先级比取模高
print(2**2**3)
##乘方从右向左结合
使用math库
math库包含4个常数
- math.pi表示圆周率
- math.e表示自然对数
- math.inf表示正无穷大
- math.nan是非浮点数标记
math库包含16个数值表示函数 - math.fabs(x)返回x的绝对值
- math.fmod(x, y)返回x%y
- math.fsum([x, y, …]浮点数精确求和
- math.ceil(x)表示向上取整
- math.floor(x)表示向下取整
- math.factorial(x)表示x的阶乘
- math.gcd(a,b)返回最大公约数
math库提供了8个幂对函数
math库提供了16个三角运算函数
math库提供了4个高等特殊函数
字符串类型
python内置的字符串处理函数:
- len(x):返回x的长度
- str(x):返回任意类型x对应的字符串形式
- chr(x):返回Unicode编码x对应的单字符
- ord(x):返回单字符x对应的Unicode编码
- hex(x):返回整数x对应的十六进制数的小写形式字符串
- oct(x):返回整数x对应的八进制的小写形式字符串
常用的内置字符串处理方法
- str.lower(): 返回字符串str的小写副本
- str.upper():
- str.islower():判断str中的字符是否全是小写,相应返回True或者False
- str.isprintable():判断str中的字符是否全是可打印的,相应返回True或者False
- str.isnumeric():判断str中的字符是否全是数字,相应返回True或者False
- str.isspace():判断str中的字符是否全是空格
- str.endswith(suffix[,start[,end]])判断str[start:end]是否以suffix结尾
- str.startswith
- str.split(sep=None,maxsplit=-1)返回一个列表,列表中的元素是str中呗sep分隔开的部分(默认分隔符是空格)
- str.count(sub[,start[,end]])判断str[start:end]中sub出现的次数
- str.replace(old,new[,count])替换函数
- str.strip([chars])返回字符串str的副本,在其左侧和右侧去掉chars中列出的字符
- str.zfill(width)返回str的副本,长度是width,不足部分在左侧添加0
- str.join(iterable)返回一个新字符串,由组合数据类型iterable变量中的每个元素组成,元素间用str分隔
字符串类型的格式化
字符串的格式化可以解决字符串和变量同时输出时的格式安排
常见的字符串格式化方法是.format()方法,要有字符串的槽,槽里面可以是参数序号,但是也可以包括格式控制信息,即{<参数序号>:<格式控制标记>}。其中的格式控制标记用来控制参数显示时的格式。
: | <填充> | <对齐> | <宽度> | <,> | <精度> | <类型> |
引导符号 | 用于填充的单个字符 | <表示左对齐,>表示右对齐,^表示居中对齐 | 槽的设定输出宽度 | 数字的千位分隔符,适用于整数和浮点数 | 浮点数小数部分得精确度或者字符串的最大输出长度 | 整数类型b(二进制),c(Unicode),d(十进制),o(八进制),x(十六进制小写),X(十六进制大写)浮点数类型e(小写字母e对应的指数形式),E(大写字母E对应的指数形式),f(标准浮点形式),%(浮点数的百分形式) |
编程练习
##使用格式化输出和时间延迟实现控制台风格文本进度条的实例
import time
scale = 10
print("-----执行开始-----")
for i in range(scale+1):
a, b = '**' * i, '..' * (scale - i)
c = (i / scale) * 100
print('%{:^3.0f}[{}->{}]'.format(c, a, b))
time.sleep(0.1)
print('-----执行结束-----')
##使用格式化输出和时间延迟实现控制台风格文本进度条的实例
##单行动态刷新
import time
scale = 10
print("-----执行开始-----")
for i in range(scale+1):
a, b = '**' * i, '..' * (scale - i)
c = (i / scale) * 100
print('\r%{:^3.0f}[{}->{}]'.format(c, a, b),end='')
time.sleep(0.1)
print('\n-----执行结束-----')
##tqdm是一个快速、扩展性强的进度条工具库
from tqdm import tqdm
from time import sleep
for i in tqdm(range(1, 100)):
sleep(0.01)