前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python基础知识(五)--数据类型

Python基础知识(五)--数据类型

作者头像
py3study
发布2020-01-09 10:56:16
6650
发布2020-01-09 10:56:16
举报
文章被收录于专栏:python3python3
代码语言:javascript
复制
#标识符,以字母或下划线开头,不与关键字重复  
#不使用系统内置标识符、函数名、异常名  
#不使用开头和结尾都是下划线作为自定义标识符名  
#以免与系统定义的特殊方法或变量冲突  
#当循环不影响实际变量的时候,可以在for..in中使用单个_  
for _ in (0, 1, 2, 3, 4, 5):  
    print("Hello") 
代码语言:javascript
复制
#关键字列表  
and         continue        except      global 
lambda      pass            while       as  
def         False           if          None 
raise       with            assert      del 
finally     import          nonlocal    return 
yield       break           elif        for 
in          not             True        class 
else        from            is          or   
try 
代码语言:javascript
复制
#整数  
x = 14600926                    #10进制  
print(x)                        #14600926  
x = 0b110111101100101011011110  #二进制  
print(x)                        #14600926  
x = 0o67545336                  #8进制  
print(x)                        #14600926  
x = 0xDECADE                    #16进制  
print(x)                        #14600926 
代码语言:javascript
复制
a = 5 
b = 7 
print(a + b)                    #12  
print(b - a)                    #2  
print(a * b)                    #35  
print(a / b)                    #0.7142857142857143  
print(b // a)                   #1  
                                #相当于round(b / a)  
print(b % a)                    #2  
                                #求模(取余数)  
print(a ** b)                   #78125  
                                #a的b次方,相当于power(a, b)  
x = -13 
print(abs(x))                   #13  
                                #绝对值  
print(divmod(b, a))             #(1, 2)  
                                #b除以a的商和余数  
print(pow(a, b))                #78125  
                                #同a ** b  
print(pow(a, b, 3))             #2  
                                #相当于(a ** b) % 3  
print(round(3.1534324))         #3  
print(round(3.1534324, 4))      #3.1534  
                                #四舍五入,当指定第二个参数  
                                #返回包含指定个数小数位的数 
代码语言:javascript
复制
#对象的创建可以通过给变量赋字面意义上的值如:  
i = 15 
print(i)                        #15  
#或将相关的类型做函数调用  
x = int(17)  
print(x)                        #17  
 
#有些对象如decimal.Decimal只能通过数据类型创建  
#1.当不使用参数调用数据类型函数时,会被赋值一个默认值  
x = int()  
print(x)                        #0  
 
import decimal  
y = decimal.Decimal()  
print(y)                        #0  
 
#2.使用一个参数调用数据类型函数  
#  当参数是同样的数据类型时候,会创建一个新对象  
#  新对象是原始对象的浅拷贝  
#  当参数不是同样类型就会尝试进行转换  
a = bin(1985)  
print(a)                        #0b11111000001  
a = hex(1985)  
print(a)                        #0x7c1  
a = oct(1985)  
print(a)                        #0o3701  
 
#3.使用两个参数调用数据类型函数  
#int(s, base)参数s为欲转换的字符串,参数base是转换时的进制  
#base一般可选2、8、10、16...  
#long(s, base)用法与同上  
a = int('1985', 10)  
print(a)                        #1985  
a = int('0x7c1', 16)  
print(a)                        #1985  
print(int('A4',16))             #164  
 
#整数位逻辑操作符  
i|j     #逻辑OR  
i&j     #逻辑AND  
i^j     #逻辑XOR  
i<<j    #i左移j位  
i>>j    #i右移j位  
~i      #反转i的每一位  
 
#布尔型  
#有两个内置的布尔型对象True/False  
a = (1 == 2)  
print(a)                        #False  
print(not a)                    #True  
print(a and True)               #False  
print(a or True)                #True  
 
#浮点类型  
#float  
#Python3.x对于float类型使用David Gay(?)算法,但仍然不能保证准确  
print(0.0, 5.4, -2.5, 8.9e-4)   #0.0 5.4 -2.5 0.00089  
 
#对于需要使用高精度的时候,应该选择decimal.Decimal  
#它在进行计算的时候可以达到我们指定的精度,默认小数点后28位  
#且可以准确表示循环小数  
#decimal运算速度慢,但准确性好,适合财务计算  
 
#浮点数  
#所有数值型运算与函数都可以与浮点数一起使用  
def equal_float(a, b):  
    return abs(a - b)  
 
print(equal_float(1.1, 2.2))    #1.1  
 
import sys  
print(sys.float_info.epsilon)   #2.220446049250313e-16  
#sys.float_info.epsilon是表示特定机器上两个浮点数的最小区别  
 
#使用int函数可以转换浮点数为整数-返回整数舍弃小数  
#用round()可以对小数部分四舍五入  
#用math.floor()和math.ceil()向上或向下转为最邻近的整数  
x = 1.35 
print(int(x))                   #1  
print(round(x))                 #1  
 
import math  
print(math.floor(x))            #1  
print(math.ceil(x))             #2  
 
#如果浮点数小数部分为0,float.is_integer()返回True  
x = 3.0 
print(x.is_integer())           #True  
 
#foat.hex()可将浮点数以十六进制表示为字符串  
#相反操作是float.fromhex()  
x = 1.35.hex()  
print(x)                        #0x1.599999999999ap+0  
x = float.fromhex('0x1.599999999999ap+0')  
print(x)                        #1.35  
print(x.hex())                  #0x1.599999999999ap+0 
代码语言:javascript
复制
#math模块的函数与常量  
#math.acos(x)       #返回弧度x的反余弦值  
#math.acosh(x)      #返回弧度x的反正切值  
#math.asin(x)       #返回弧度x的反正弦值  
#math.asinh(x)      #返回弧度x的反双曲正弦  
#math.atan(x)       #返回弧度x的反正切  
#math.atan2(y, x)   #返回弧度y / x的反正切  
#math.atanh(x)      #返回弧度x的双曲正切  
#math.ceil(x)       #返回大于或等于x的最小整数  
#math.copysign(x, y)#将x的符号设置为y的符号  
#math.cos(x)        #返回弧度x的余弦  
#math.cosh(x)       #返回弧度x的余弦值(角度)  
#math.degrees(x)    #将浮点数x从弧度转换为度数  
#math.e             #常数e,约等于2.718281828459045  
#math.exp(x)        #返回e的x次方,即math.e ** x  
#math.fabs(x)       #返回|x|,即x的绝对值  
#math.factorial(x)  #返回x!  
#math.floor(x)      #返回小于等于x的最大整数  
#math.fmod(x, y)    #生成x除以y后的模(余数)比%更好  
#math.frexp(x)      #返回一个二元组,分别是x的指数部分与假数部分  
#math.fsum(i)       #对iterable i中的值进行求和?  
#math.hypot(x, y)   #(x平方+y平方)的平方根  
#math.isinf(x)      #如果浮点数x是±inf(±∞)则返回True  
#math.isnan(x)      #如果x不是一个数字则返回True  
#math.ldexp(m, e)   #返回m * (2 ** e)是math.frexp(x)的反转  
#math.log(x, b)     #log x以b为底,b可选,默认为math.e  
#math.log10(x)      #log x以10为底  
#math.log1p(x)      #log(1+x)以e为底,x近似于0时更准确  
#math.modf(x)       #以floatS形式返回x的小数与整数部分的元组  
#math.pi            #常量π,约为3.141592653589793  
#math.pow(x, y)     #返回x ** y(浮点数)  
#math.radians(x)    #角度x转换为弧度  
#math.sin(x)        #返回弧度x的正弦  
#math.sinh(x)       #返回弧度x的双曲正弦值  
#math.sqrt(x)       #返回x的平方根  
#math.sum(i)        #对iterable i中的值进行求和?  
#math.tan(x)        #返回弧度x的正切值  
#math.tanh(x)       #返回弧度x的双曲正切值  
#math.trunc(x)      #返回x的整数部份与int(x)相同  
 
#math.hypot(x, y)计算原点到point(x, y)的距离,  
#与函数math.sqrt((x ** 2) + (y ** 2))  
 
#math依赖于编译Python时使用的底层数学模块,一些错误条件与边界  
#情况在不同平台下会有不同的表现 
代码语言:javascript
复制
#复数  
#复数是一对浮点数,一个表示实数部分,一个表示虚数部分(其后跟一个字母j)  
#复数的部分都以属性名形式存在,分别是:real和imag  
z = -1.892 + 5.742j 
print(z.real)       #-1.892  
print(z.imag)       #5.742  
 
#除//、%、divmod()从及三个参数的pow()之外,  
#所有数值型操作符及函数都可用于复数运算,  
#math模块中的函数不能处理复数  
#cmath模块中的函数用来处理复数  
#除math中的函数外 ,还包括cmath.phase()/cmath.polar()/cmath.rect()  
#此外复数有一个conjugate()方法用于改变虚数部分的符号  
z += 1 
print(z)            #(-0.8919999999999999+5.742j)  
z -= 1 
print(z)            #(-1.892+5.742j)  
print(z.conjugate())#(-1.892-5.742j)  
 
#十进制数字  
#创建十进制数字用decimal模块里面的decimal.Decimal()  
#参数可以为整数或字符串,不能用浮点数  
#浮点数用decimal.Decimal.from_float()函数  
a = decimal.Decimal(5)  
b = decimal.Decimal("5.34")  
print(a + b)                    #10.34  
#所有数值型操作符及函数都可用于decimal.Decimal  
#但**操作符左侧为decimal.Decimal时右侧必须为整数pow()函数同样  
#math/cmath里面的函数不适合于处理decimal.Decimal  
print(a.exp())                  #148.4131591025766034211155800  
print(a.ln())                   #1.609437912434100374600759333  
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档