整数类型与数学的整数的概念一致。(别说你不懂[敲打])
进制种类 | 引导符号 | 描述 |
---|---|---|
十进制 | 无 | 默认情况,eg:1010,-64 |
二进制 | 0b或0B | 由字符0和1组成,eg:0b101,0B101 |
八进制 | 0o或0O | 由字符0到7组成,eg:0o101,0O71 |
十六进制 | 0x或0X | 由字符0到9、a到f、A到F组成,其中a(A)到f(F)代表10~15。eg:0xABC |
注意:二、八、十六进制的引导符号的首个字符是“0”,而不是“o”。(笔者就曾因为这个犯过错,不知道你会不会?[苦涩])
要算其他进制的自己动手设计程序噢![自己动手丰衣足食]
# 这里给出笔者设计的程序,要自己思考,欢迎分享程序!ls=[]def convert(n,base): i=int(n%base) j=int(n/base) if i>9: i=chr(i+55) ls.append(i) else: ls.append(i) if j<base: ls.append(j) else: convert(j,base)n = int(input("请输入转换的数字:"))base = int(input("请输入转换的进制:"))convert(n,base)for i in range(len(ls)): print(ls[i],end='')
2. 浮点数类型浮点数类型与数学中的实数概念一致,表示带有小数的数值。Python语言要求所有的浮点数都必须带有小数部分,小数部分可以是0,用以区分整数类型。表示方法有以下两种:
① 十进制表示:0.0;11.(注意看小数点);-6.4;3.1415926。
② 科学计数法:使用e或E作为幂的符号,以10为基数,含义如:aeb=a*10^b。
64e4=64x10**4=64e+4;4.3e-3=4.3x10^(-3)。注意负号;6.6E5。
浮点数的数值范围和小数精度受不同计算机系统的限制。sys.float_info详细列出了Python解释器所运行系统的浮点数各项参数:
#此处采用IDEL交互式编译模式>>>import sys>>>sys.float_infosys.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)
浮点数运算输出17个数字长度的结果,然而只有前面15个是正确的,最后一位由计算机根据二进制计算结果确定,存在误差,而整数运算能提供完全准确的结果,往往采用整数运算。使用整数表达浮点数的方法是高精度运算的基本方法之一。
>>>3.141592653*1.2345678983.8785094379864535>>>3141592653*12345678993878509437986453394
拓展
Python通过标准库decimal提供了一个更精确的数字类型Decimal,这个类型利用上文介绍的整数运算方法提供高精度浮点数运算,并可以使用getcontext().prec参数自定义浮点数精度的位数。
>>>import decimal>>>a=decimal.Decimal('3.141592653')>>>b=decimal.Decimal('1.234567898')>>>decimal.getcontext().prec=20>>>a*bDecimal('3.878509437986453394')#需要注意的是:在使用decimal库时,Decimal('数字')是高精度数字的基本表示形式,需要使用单引号。
3. 复数类型复数类型表示数学中的复数。Python语言中复数的虚部部分通过后缀“j”或“J"来表示,eg:1.23+4j;56+7j;0.89-10j。需要注意的一点就是复数类型的实数部分很虚数部分都是浮点数。
对于一个复数z,可以用z.real和z.imag分别获得它的实数部分和虚数部分。
4.1 内置的数值运算 *** 作符
*** 作符 | 描述 |
---|---|
x + y | x与y之和 |
x - y | x与y之差 |
x * y | x与y之积 |
x / y | x与y之商 |
x // y | x与y之整数商,即不大于x与y之商的最大整数 |
x % y | x与y之商的余数,也称为模运算,主要用于有周期规律的场景,本质上,整数的模运算能将整数n映射到[0,m-1]的区间中 |
-x | x的负值,即x*(-1) |
+x | x本身 |
x ** y | x的y次幂,即x^y |
*** 作运算符的结果可能改变数字类型,三种数字类型之间存在一种扩展关系:整数->浮点数->复数。
上表中的二元 *** 作符都有与之对应的增强赋值 *** 作符:+=;-=;*=;/=;//=;%=;**=。
eg:x+=y<==>x=x+y
4.2 内置的数值运算函数
函数 | 描述 |
---|---|
abs(x) | x的绝对值 |
divmod(x,y) | (x//y,x%y),输出为二元组形式(也称为元组类型) |
pow(x,y[,z]) | (x ** y)%z,[…]表示该参数可以省略,即pow(x,y)= x ** y |
round(x[,ndigits]) | 对x四舍五入,保留ndigits位小数,round(x)返回四舍五入的整数值 |
max(x1,x2,…,xn) | x1,x2,…,xn的最大值,n没有限定 |
min(x1,x2,…,xn) | x1,x2,…,xn的最小值,n没有限定 |
>>>abs(3-4j)5.0>>>divmod(16,4)(4,0)>>>pow(2,10)1024>>>round(3.14)3>>>max(1,2,3,4,5,6,7)7>>>min(1,2,3,4,5)1
4.3 内置的数字类型转换函数
函数 | 描述 |
---|---|
int(x) | 将x转换为整数,x可以是浮点数或字符串,不可以是复数,字符串内的数字只能是整数,不能是浮点数 |
float(x) | 将x转换成浮点数,x可以是整数或字符串,不可是复数 |
complex(re[,im]) | 生成一个复数。实部为re,虚部为im,re可以是整数、浮点数、字符串,im可以是整数、浮点数但不可以是字符串 |
注意:字符串里的数值也必须是数字类型才可以
凡事自己试了才知道
5.math库的使用math库是Python的内置数学类函数库,又称标准库。math库不支持复数类型,仅支持整数和浮点数运算。math库一共提供44个数学常数和44个函数。44个函数分为四类:包括16个数值表示函数,8个幂对数函数,16个三角对数函数,4个高等特殊函数。
math库的函数不能直接使用,需要使用保留字import导入math库,导入方法前面已描述。
5.1 math库的四个数学常数
常数 | 描述 |
---|---|
math.pi | 圆周率,值为4.141592653589793 |
math.e | 自然对数,值为2.718281828459045 |
math.inf | 正无穷大,负无穷大为-math.inf |
math.nan | 非浮点数标记,NaN(Not a Number) |
5.2 math库的16个数值表示函数
函数 | 描述 |
---|---|
math.fabs(x) | 返回x的绝对值 |
math.fmod(x,y) | 返回x与y的模 |
math.fsum([x,y,…]) | 浮点数精确求和 |
math.ceil(x) | 向上取整,返回不小于x的最小整数 |
math.floor(x) | 向下取整,返回不大于x的最大整数 |
math.factoria(x) | 返回x的阶乘,如果x是小数或负数,返回ValueError(一种异常) |
math.ged(a,b) | 返回a与b的最大公约数 |
math.frexp(x) | x=m*2e,返回(m,e),当x=0时,返回(0.0,0) |
math.ldexp(x,t) | 返回x*2^i运算值,math.prexp(x)的反运算 |
math.modf(x) | 返回x的小数部分和整数部分 |
math.trunc(x) | 返回x的整数部分。等同与math.floor(x) |
math.copysign(x,y) | 用数值y的正负号替换数值x的正负号 |
math.isclose(a,b) | 比较a,b的相似性,返回True或False |
math.isfinite(x) | 当x为无穷大,返回True;否则返回False |
math.isinf(x) | 当x为正数或负数无穷大,返回True;否则返回False |
math.isnan(x) | 当x是NaN,返回True;否则返回False |
'''按照笔者的理解,math.isclose(a,b)的用法如下:此方法使用相对或绝对公差来查看值是否接近。它使用以下公式比较这些值:abs(a-b) <= max(rel_tol * max(abs(a),abs(b)),abs_tol)调用语法:math.isclose(a,b,rel_tol,abs_tol)参数说明参数描述a必需的参数, 检查紧密度的第一个值b必需的参数, 检查紧密度的第二个值rel_tol = value可选的,相对公差。它是值a和b之间的最大允许差。 默认值为1e-09abs_tol = value可选的,最小绝对公差。它用于比较接近0的值。该值必须至少为04、方法说明返回值:一个bool值。 如果值接近则为True,否则为False'''>>>import math>>>math.isclose(8.005, 8.450, abs_tol = 0.4)False>>>math.isclose(8.005, 8.450, abs_tol = 0.5)True
#按照笔者的理解,math.isnan(x)的用法如下:>>>import math>>>nana=float("nan")>>>nanb=math.nan>>>math.isnan(nana)True>>>math.isnan(nanb)True
看到这么多函数,你晕了吗?你记住了吗?熟能生巧,赶紧练起来
(っ•̀ω•́)っ✎⁾⁾ 我爱学习(っ•̀ω•́)っ✎⁾⁾ 我爱学习
5.3 math库的8个幂对数函数
函数 | 描述 |
---|---|
math.pow(x,y) | 返回x的y次幂 |
math.exp(x) | 返回e的x次幂,e是自然对数 |
math.expm1(x) | 返回e的x次幂减1 |
math.sqrt(x) | 返回x的平方根 |
math.log(x[,base]) | 返回x的对数值,base是底,只输入x时,返回自然对数,即lnx |
ath.log1p(x) | 返回1+x的自然对数值 |
math.log2(x) | 返回x的2对数值 |
math.log10(x) | 返回x的10对数值 |
(。_ 。) ✎_学习计划走起
5.4math库的16个三角运算函数
函数 | 数学表示 | 描述 |
---|---|---|
mathdegre(x) | 角度x的弧度值转角度值 | |
math.radians(x) | 角度工的角度值转弧度值 | |
math.hypot(x.y) | 返回(x,y)坐标到原点(0.0)的距离 | |
math.sin(x) | sinx | 返回x的正弦函数值,x是弧度值 |
math.cos(x) | cosx | 返回x的余弦函数值。x是弧度值 |
math.tan(x) | tanx | 返回x的正切函数值,x是弧度值 |
math.asin(x) | arcsinx | 返回x的反正弦函数值,x是弧度值 |
math.acos(x) | arccosx | 返回 的反余弦函数值,x是弧度值 |
math.atan(x) | arctanx | 返回x的反正切函数值。x是弧度值 |
math.atan2(y,x) | arctan(y/x) | 返回y/x的反正切函数值,x是弧度值 |
math.sinh(x) | sinhx | 返回x的双曲正弦函数值 |
math.cosh(x) | coshx | 返回x的双曲余弦函数值 |
math.tanh(x) | tanhx | 返回x的双曲正切函数值 |
math.asinh(x) | arcsinhx | 返回x的反双曲正强雨数值 |
math.acosh(x) | arccoshx | 返回x的反双曲余弦函数值 |
mathatanh(x) | arctanhx | 返回x的反双曲正切函数值 |
∑(っ°Д°;)っ卧槽,我手不见了
5.5 math库的4个高等特殊函数
函数 | 描述 |
---|---|
math.erf(x) | 高斯误差函数,应用于概率论、统计学等领域 |
math.erfe(x) | 余补高斯误差函数,matherfe(x)=1 - math.erf(x) |
math.gamma(x) | 伽玛(Gamma)函数,也叫欧拉第二积分函数 |
math.lgamma(x) | In(gamma(x)),伽玛函数的自然对数 |
:ஐ٩(๑´ᵕ`)۶ஐ: 学习使我进步
|
:ஐ٩(๑´ᵕ`)۶ஐ: 学习使我进步
以上是内存溢出为你收集整理的Python笔记2全部内容,希望文章能够帮你解决Python笔记2所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)