Python之数字字符串类型

本文详细介绍了Python中的数字类型和字符串类型,包括数字类型的运算、复数类型的特点、字符串的表示方式、索引与切片操作,以及字符串的格式化控制等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python之数字字符串类型

内容可能有点多,但需要记忆的不多。

数字类型

查询计算机支持的python浮点数相关信息

import sys
sys.float_info
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)

复数类型

在python中形如:1.23+2j

  • 注意:‘12e10+45e+12j’,python认为实部是’12’,虚部是’45e+12’
  • 取实部:复数.real
  • 取虚部:复数.imag
# 注意num1, num2, num3虚部写法
num1 = 12e10+45e+12j
num2 = 12e10+45e-12j
num3 = 12e10+45e12j
print("num1.real:", num1.real)
print("num1.imag:", num1.imag)
print("num2.real:", num2.real)
print("num2.imag:", num2.imag)
print("num3.real:", num3.real)
print("num3.imag:", num3.imag)
print('----------------------')
num4 = 1 + 2j
print("num4.real:", num4.real)
print("num4.imag:", num4.imag)
num1.real: 120000000000.0
num1.imag: 45000000000000.0
num2.real: 120000000000.0
num2.imag: 4.5e-11
num3.real: 120000000000.0
num3.imag: 45000000000000.0
----------------------
num4.real: 1.0
num4.imag: 2.0

内置数值运算符

运算符号描述
加法+整数相加为整数,一旦有浮点数参与结果就为浮点数
减法-整数相减为整数,一旦有浮点数参与结果就为浮点数
乘法*整数相加为整数,一旦有浮点数参与结果就为浮点数
除法/运算结果必为浮点数
整除//运算结果必为整数
取模%运算结果必为整数
幂运算**x**y,表示求x的y次幂,整数相运算整数,一旦有浮点数参与结果就为浮点数
a = 12
b = 2
print("a + b =",a+b)
print("a - b =",a-b)
print("a * b =",a*b)
print("a / b =",a/b)
print("a // b =",a//b)
print("a % b =",a%b)
print("a**b =",a**b)
a + b = 14
a - b = 10
a * b = 24
a / b = 6.0
a // b = 6
a % b = 0
a**b = 144

内置数值运算函数

函数描述
abs(x)求x的绝对值
divmod(x, y)返回元组(x/y, x%y)
pow(x, y[, z])返回(xy)%z,如果没有传入z则返回xy
round(x[,ndigits])对x四舍五入,取ndigits位小数
max(x1, x2,…)返回最大值
min(x1, x2,…)返回最小值
print(abs(-12))
print(divmod(12, 4))
12
(3, 0)

内置的数字类型转换函数

函数描述
int(x)将x转换为int型,x可以是浮点数或字符串
float(x)将x转换为浮点数,x可以是整数或字符串
complex(re[, im])将数re作为实部,数im作为虚部,不传入im则默认其为0,只传re时可为数或字符串,一旦传入im,两者只能是数
print(float("12"))
print(complex('12'))
print(complex(10, 2))
12.0
(12+0j)
(10+2j)

字符串类型

python字符串以Unicode编码存储。

字符串类型的表示

  • 单引号字符串:可以将双引号作为字符串的一部分。
  • 双引号字符串:可以将单引号作为字符串的一部分。
  • 三引号字符串:可以将单引号、双引号作为字符串的一部分,并且可以换行。
s1 = 'hello "abc"'
s2 = "hi l'l"
s3 = '''
line 1
line 2
'''
print(s1)
print(s2)
print(s3)
hello "abc"
hi l'l

line 1
line 2

索引

  • 正索引:从字符串的最左位字符向右,初位为0,向右递增1。
  • 负索引:从字符串最右位开始,初位为-1,向左递减1。
  • 使用:字符串[索引],返回字符串对应索引的字符。

切片

  • 形式:字符串[起点索引:终点索引+1:步长],不带步长(这时第二个冒号可以省略)则默认为“1“。正负索引都可用,不过顺序始终是从左到右。不带起点索引默认为“0“,不带终点索引默认为“字符串长度+1“。
s = 'Hello world!'
print(s[0], s[-1]) # 索引
print(s[0:-1]) # 切片
print(s[0:6:2]) # # 切片
H !
Hello world
Hlo

对字符串的其他操作

  • 拼接并生成新字符串:str1 + str2,将str2拼接在str1后,并以此生成新字符串。
  • 判断是否为子串:ch in str,如果ch为str的子串,返回True,否则返回False。
  • 重复自我拼接生成新字符串:str * nn * str,n个str字符串拼接,并以此生成一个新字符串。
str1 = 'abc'
str2 = 'def'
print(str1+str2)
print('a' in str1)
print(str2*3)
print(3*str1)
abcdef
True
defdefdef
abcabcabc

特殊的格式化控制字符

控制字符串功能
\a蜂鸣,响铃
\b回退一格
\f换页
\n换行
\r回车,光标回到本行行首
\t水平制表
\v垂直制表
\0NULL
# 利用特殊格式化控制字符\r实现文本进度条
import time

print(type(hex(10)))

for i in range(50):
    print("\rprocess:[{0}{1}]{2}%".format('*'*(i+1), '-'*(49-i), i*2+2), end='')
    time.sleep(0.1) # 程序休眠0.1秒
<class 'str'>
process:[**************************************************]100%

format方法格式化字符串

  • 形式:"字符串{}".format(参数列表)

其中“{}”称为槽,完全形式为“{参数序号:格式控制标记}”,参数序号从“0“开始,对应参数列表从左到右的参数。

  • 格式控制标记顺序及其内容如下:
    顺序::填充 对齐 宽度 数字千位分隔符 .精度 类型
    其中对齐:左对齐<,右对齐>,居中对齐^
    数字千位分隔符只能是,

类型:

标记类型
b输出整数二进制
c输出整数对应的Unicod字符
d输出整数十进制
o输出整数八进制
x输出整数小写十六进制
X输出整数大写十六进制
e输出科学计数法表示,小写
E输出科学计数法表示,大写
f输出浮点数的标准浮点形式
%输出浮点数的百分形式
print('abs{:+<10,.2f}'.format(12100))
abs12,100.00+

内置字符串处理函数方法

求长度、编码转换等,见“附录:内置的字符串处理函数方法“。

#  仅展示ord()
char = 'A'
print(ord(char)) # 返回单字符x对应的Uncoded编码
65

附录:math库解析p71

  • math库的数学常数
常数数学表示描述
math.pi π \pi π圆周率
math.e e e e自然对数
math.inf ∞ \infty 正无穷大
math.nan非浮点数标记
  • math库的数值表示函数
函数数学表示描述
math.fabs(x)$x
math.fmod(x, y)x%y返回x与y的模
math.ceil(x) ⌈ x ⌉ \lceil x \rceil x向上取整
math.floor(x) ⌊ x ⌋ \lfloor x \rfloor x向下取整
math.factorial(x) x ! x ! x!返回x的阶乘,如果x是小数或负数,返回ValueError
math.gcd(a, b)返回a与b的最大公约数
math.frexp(x) x = m × 2 e x=m\times{2^e} x=m×2e返回(m, e),当 x = 0 x=0 x=0时返回(0.0, 0)
math.ldexp(x, i) x × 2 i x\times{2^i} x×2i返回 x × 2 i x\times{2^i} x×2i的运算值,math.frexp(x)的反函数
math.modf(x)返回x的小数和整数部分,(小数, 整数)
math.trunc(x)返回x的整数部分
math.copysign(x, y)$$x
math.isclose(a, b)比较a,b相似性
math.isfinite(x)当x不是无穷大或NaN,返回True;否则返回False
math.isinf(x)当x为无穷大,返回True;否则返回False
math.isnan(x)当x是NaN,返回True;否则返回False
  • math库的幂对数函数
函数数学表示描述
math.pow(x, y) x y x^y xy返回x的y次幂
math.exp(x) e x e^x ex返回e的x次幂
math.sqrt(x) x \sqrt{x} x 返回x的平方根
math.log(x[, base]) log ⁡ b a s e x \log _{base}{x} logbasex如果没有传入base,则默认base为e
math.loglp(x) l n ( 1 + x ) ln(1+x) ln(1+x)
math.log2(x) log ⁡ 2 x \log_{2}{x} log2x
math.log10(x) log ⁡ 10 x \log_{10}{x} log10x
  • math库的三角运算函数
函数数学表示描述
math.degrees(x)角度x的弧度值转换为角度值
math.radians(x)角度x的角度值转换为弧度值
math.hypot(x, y) x 2 + y 2 \sqrt{x^2 + y^2} x2+y2 返回(x, y)到原点的距离
math.sin(x) s i n x sin x sinx返回x的正弦函数值,x是弧度值
math.cos(x) c o s x cos x cosx返回x的余弦函数值,x是弧度值
math.tan(x) t a n x tan x tanx返回x的正切函数值,x是弧度值
math.asin(x) a r c s i n x arcsin x arcsinx返回x的反正弦函数值,x是弧度值
math.acos(x) a r c c o s x arccos x arccosx返回x的反余弦函数值,x是弧度值
math.atan(x) a r c t a n x arctan x arctanx返回x的反正切函数值,x是弧度值
math.atan2(y, x) a r c t a n y x arctan \frac{y}{x} arctanxy返回 y x \frac{y}{x} xy的反正切函数值,x是弧度值
math.sinh(x) s i n h x sinh x sinhx返回x的双曲正弦函数值
math.cosh(x) c o s h x cosh x coshx返回x的双曲余弦函数值
math.tanh(x) t a n h x tanh x tanhx返回x的双曲正切函数值
math.asinh(x) a r c s i n h x arcsinh x arcsinhx返回x的反双曲正弦函数值
math.acosh(x) a r c c o s h x arccosh x arccoshx返回x的反双曲余弦函数值
math.atanh(x) a r c t a n h x arctanh x arctanhx返回x的反双曲正切函数值
  • math的高等特殊函数
函数数学表示描述
math.erf(x) 2 π ∫ o x e − t 2 d x \frac{2}{\sqrt\pi}\int_o^x{e^{-t^2}}{\rm d}x π 2oxet2dx高斯误差函数,应用于概率统计等领域
math.erfc(x) 2 π ∫ o ∞ e − t 2 d x \frac{2}{\sqrt\pi}\int_o^\infty{e^{-t^2}}{\rm d}x π 2oet2dx余补高斯误差函数,math.erfc(x)=1 - math.erf(x)
math.gamma(x) ∫ o x x t − 1 e − x d x \int_o^x{x^{t-1}}e^{-x}{\rm d}x oxxt1exdx伽玛函数,即欧拉第二积分函数
math.lgamma(x) l n ( g a m m a ( x ) ) ln(gamma(x)) ln(gamma(x))伽玛函数的自然对数

附录:内置的字符串处理函数方法

内置的字符串处理函数

函数描述
len(s)返回字符串s的长度,即s所含字符,每个中英字符均占一位
str(x)返回任类型x所对应的字符串
chr(x)返回Uncoded编码x对应的单字符
ord(x)返回单字符x对应的Uncoded编码
hex(x)返回整数x对应的小写十六进制表示(字符串)
oct(x)返回整数x对应的小写八进制表示(字符串)

内置的字符串处理方法

在下表中,以“str”表示字符串。

方法描述
str.lower()返回str的副本,字母全为小写
str.upper()返回str的副本,字母全为大写
str.islowerstr的字母全为小写时,返回True;否则返回False。
str.isprintable()str的字符全部可被打印时,返回True;否则返回False。
str.isnumeric()str的字母全为数字时,返回True;否则返回False。
str.isspace()str的字符全为空白时,返回True;否则返回False。
str.endswith(suffix[,start[,end]])str[start[:end]]以suffix结尾时返回True;否则返回False。
str.startswith(suffix[,start[,end]])str[start[:end]]以suffix开头时返回T否则返回False。
str.split(sep=None, maxsplit=-1)返回一个列表,由str以sep为分隔符切割的子串作为元素,maxsplit是最大切割次数
str.count(sub[,start[, end]])返回str[start[:end]]中字符串sub出现的次数
str.replace(old, new[, count])返回str的副本,所有的子串old都被字符串new 替换,count指定替换次数
str.center(width[, fillchar])字符串居中函数,返回str的副本,以str作为居中内容,width是生成的字符串长度,fillchar是生成字符串的填充字符
str.strip([chars])返回str的副本,删去str左右侧中出现在chars中的字符
str.zfill(width)返回str的副本,长度为width,不足部分在左边补“0“
str.format()常用的字符串格式化
str.join(iterable)以str作为拼接符,以可第二代对象iterable的元素(这些元素必须是字符串)作为拼接对象,拼接为一个字符串,并返回
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淡水闲人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值