Python内置数据类型(整数类型,浮点数类型,布尔类型)--运算符

1、内置数据类型—基本算数运算符

一、最基本四种内置数据类型:

              整数:int

       浮点数:float

       布尔型:bool

       字符串型:str

变量没有类型,但是对象都有类型:

    二、数字和基本运算符

c = True
d = "Hello,world"
print(type(c))
print(type(d))

a = 7/2 #3.5
a = 7//2 #3
a = 7%2 #1
a = 7%4 #3
a = 2**3 #8
#a = 3/0   #
报错:ZeroDivisionError: division by zero

使用divmod()函数同时得到商和余数:divmod(13,3)-----(4,1)

Divmod()是一个函数,他返回的是一个元祖(后续学习)

2、整数

Python的整数,可以无限大

一、三种进制

Python中,除了十进制,还有其他三种进制

  • 0b或0B,二进制 0 1
  • 0o或0O,八进制 0 1 2 3 4 5 6 7
  • 0x或0X,十六进制0 1 2 3 4 5 6 7 8 9 a b c d e f
  • a = 0b101001
    b = 0o11
    c = 0xff
    d = 0o19  # SyntaxError: invalid syntax
    print(a)
    print(b)
    print(c)
    print(d)

二、使用int()实现类型转换

  1. 浮点数直接舍去小数部分。如:int(9.9)结果是:9
  2. 布尔值True转为1,False转为0。 如:int(True)结果是1
  3. 字符串符合整数格式(浮点数格式不行)则直接转成对应整数,否则报错

d = int(9.8)
e =
int("100abc"# invalid literal for int() with base 10: '100abc'

自动转型:

整数和浮点数混合运算时,表达式结果自动转型成浮点数。比如:2+8.0的结果是10.0。

整数可以任意大:

Python2中,int是32位,可以存储从-2147483648到2147483647的整数(约±21亿)。Long类型是64位,可以存储:-2^63--2^63-1之间的数值。

Python3中,int可以存储任意大小的整数,long被取消。我们甚至可以存储下面的值:


f = 10**100
print(f)

3、浮点数

一、表示:

  1. 浮点数用科学计数法表示。比如:3.14,表示成:314E-2或者314e-2
  2. 这些数字在内存中也是按照科学计数法存储。

二、类型转换:

  1. 类似于int(),我们也可以使用float()将其他类型转化成浮点数。
  2. 整数和浮点数混合运算时,表达式结果自动转型成浮点数。比如:2+8.0的结果是10.0
  3. round(value)可以返回四舍五入的值。但不会改变原有值,而是产生新的值

三、增强型赋值运算符:

    运算符+、-、*,/、//、**和%和赋值符=结合可以构成“增强型赋值运算符”。

  1. “+=”中间不能加空格!
  2. 结合的是右侧整个表达式:

y *= x+2 # 相当于:y = y*(x+2)    而不是:y = y*x+2

a = 3.14
print(a)
b = 314E-2
print(b)
c = 9.5
print(c)
d = round(c)
print(d)
x = y = 2
y *= x+2
print(y)

4、时间的表示

时间也是数字

一、计算机时间的起点:

计算机中时间的表示是从“1970年1月1日 00:00:00”开始,以毫秒(1/1000秒)进行计算。我们也把1970年这个时刻称为“unix时间点”。

这样,我们就把时间全部用数字来表示了。

二、Python中的时间

python中可以通过time.time() 获得当前时刻,返回的值是以秒为单位,带微秒(1/1000毫秒)精度的浮点值。例如:1635063628.5632517

import time
b = int(time.time())
print(b)  # 返回值:以秒为单位
totalMinutes = b//60   # 返回值表示的是以分钟为单位的时间
totalHours = totalMinutes//60   # 返回值表示的是以小时为单位的时间
totalDays = totalHours//24     # 返回值表示的是以天为单位的时间
totalYears = totalDays//365   #忽略闰年情况  # 返回值表示的是以年为单位的时间
print(totalYears)

5、练习题(计算俩点距离)

定义多点坐标绘出折线并计算起始点和终点距离

import math
import turtle
x1,y1 = 100,100
x2,y2 = 100,-100
x3,y3 = -100,-100
x4,y4 = -100,100

turtle.penup()
turtle.goto(x1,y1)
turtle.pendown()
turtle.goto(x2,y2)
turtle.goto(x3,y3)
turtle.goto(x4,y4)

#
计算起始点和终点的距离
distance = math.sqrt((x1-x4)**2 + (y1-y4)**2)
turtle.write(distance)

# 程序运行结束,窗口不关闭
turtle.done()

6、布尔值

Python2中没有布尔值,直接用数字0表示False, 用数字1表示True。

Python3中,把True和False定义成了关键字,但他们的本质还是1和0,甚至可以和数字相加。

在Python语言底层,会将布尔值True看作1,将布尔值False看作0,尽管从表面上看,True和1、False和0是完全不同的两个值,但实际上,它们是相同的。

在Python语言中有一些特殊的布尔类型值为False,例如False、0、0.0、空值None、空序列对象(空列表、空元祖、空集合、空字典、空字符串)、空range对象、空迭代对象。其他情况,均为True。

a = True
b = 3
c = a+b     #c的值是:4
print(c)
print('空字符串的布尔类型的值:',bool(""))      #False
print('空列表布尔类型的值:',bool([]))        #False
print('None布尔类型的值:',bool(None))     #False
print('0布尔类型的值:',bool(0))           #False
print('字符串True和False转成布尔都是True:',bool("False")) #True

7、运算符

一、逻辑运算符(短路)

与、或、非

二、比较运算符

所有比较运算符返回1表示真,返回0表示假。这分别与特殊变量True和False等价。

以下假设变量a为15,变量b为30:

三、位运算符

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如表所示。

a = 0b11001

b = 0b01000

print(bin(a|b))  #bin()可以将数字转成二进制表示  '0b11001'

print(bin(a&b))  #与

print(bin(a^b))  #异或

print(3<<2)  #左移1位相当于乘以2.左移两位相当于:3*4

print(20>>1)  #右移移位相当于除以2

四、加法操作的补充

  1. 数字相加 3+2 结果是 5
  2. 字符串拼接 “3”+“2”结果是 “32”
  3. 列表、元组等合并 [10,20,30]+[5,10,100]结果是[10,20,30,5,10,100]

五、乘法操作的补充

  1. 数字相乘 3*2 结果是 6
  2. 字符串复制 “sxt”*3 结果是 ”sxtsxtsxt”
  3. 列表、元组等复制[10,20,30]*3 结果是 [10,20,30,10,20,30,10,20,30]

六、增强赋值运算符

复合赋值可以让程序更加精炼,提高效率。

七、同一运算符

同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址。

is 与 == 区别:

is 用于判断两个变量引用对象是否为同一个,既比较对象的地址。

== 用于判断引用变量引用对象的值是否相等,默认调用对象的 __eq__()方法。

八、整数缓存问题

  1. 命令行模式下,Python仅仅对比较小的整数对象进行缓存(范围为[-5, 256])缓存起来C语言底层用数组实现,连续分配空间,便于查找,而并非是所有整数对象。
  2. 文件模式下,所有数字都会被缓存,范围是:[-无穷大,+无穷大])
    1. 缓存实现:[-5,256]仍然底层用数组实现;不在[-5,256]出现的数,缓存到链表中,不连续分配空间。

总结

  1. is 比较两个对象的 id 值是否相等,是否指向同一个内存地址
  2. == 比较的是两个对象的内容是否相等,值是否相等
  3. is 运算符比 == 效率高,在变量和None进行比较时,应该使用 is

九、成员运算符

成员运算符测试实例中包含了一系列的成员,包括字符串,列表或元组。

a = "python"

b = "py"

print(b in a)    #True

c = [10,20,30]

print(10 not in c)  #False

十、运算符优先级

实际使用中,记住如下简单的规则即可,复杂的表达式一定要使用小括号组织。

  1. 乘除优先加减
  2. 位运算和算术运算>比较运算符>赋值运算符>逻辑运算符

十一、基本运算符的总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值