Python数据类型与运算符详解
文章目录
一、Python的基本数据类型
1.Int整数形:
数字类型是Python中最基本的数据类型之一,用于存储数值数据。
特点:整数类型用于存储不带小数部分的数值。
Python的整形支持正数,负数和0
整数类型支持加(+)、减(-)、乘(*)、除(/,注意这里会得到浮点数结果,如果需要进行整数除法应使用//)、取模(%)、幂(**)等算术运算。
代码如下(示例):
a = 10
print(f"输出a的值为:{a}") #输出a的值为:10
b = -100
print(f"输出b的值为:{b}") #输出b的值为:-100
c = 0
print(f"输出c的值为:{c}") #输出c的值为:0
sum = a + b - c
print(f"输出sum的值为:{sum}") #输出sum的值为:-90 sum=10-100+0=-90
2.float浮点型:
浮点类型是Python中基本的数据类型之一,用于存储带小数部分的数值。
特点:Python中的浮点数通常以双精度(64位)格式存储,这意味着它们可以表示很大范围的数值,但也会有一定的精度限制。
代码如下(示例):
b = 2.5
print(type(b)) # <class 'float'>
print(isinstance(b, int)) # False
3.bool布尔类型:
特点:布尔类型只有两个值:True和False。
布尔类型通常用于表示真值或假值,在判断语句以及条件语句中使用
注意:bool类型的值True也代表int整数类型中的1,bool类型的值False代表int整数类型中的0。
代码如下(示例):
a = True
print(type(a)) # <class 'bool'>
b = False
print(type(b)) # <class 'bool'>
#将整形1转化为bool类型值
num = 1
print(bool(num)) #True
#将整形0转化为bool类型值
num = 0
print(bool(num)) #False
4.str字符串类型:
特点:字符串类型用于存储文本数据,即一系列字符的集合。Python中的字符串是不可变的,这意味着一旦创建了字符串,就不能更改其内容(但可以创建新的字符串)。
字符串类型的数据内容要用 "(双引号),'(单引号)来表示。当表示一个字符串数据时,单引号与双引号没有区别,都可以用来表示一个字符串数据
代码如下(示例):
#字符串只能和字符串做加法
w = 'mary'
print(w + ':你好') # mary:你好
# 字符串可以做乘法
print('*' * 10) #**********
# 用input()函数从控制台输入字符赋值给变量
s = input()
#控制台输入: Test
print(s) # Test
注意:input()函数输入的数据均为str(String)字符串类型
5.运算符:
算数运算符
+ - * / //(取整) %(取余) **(幂次方,次方数)
print(b ** 3) # 27
注意:/与//的区别:
a = 10
b = 3
print(a / b) #3.3333333333333335
print(a // b) #3 (//取整)
一元运算符
+= -= *= /= //= %= **=
a=10
a+=12 # a=a+12
a/=3 # a=a/3
比较运算符
比较结果为bool类型
> >= < <= == !=
# 比较运算符
print(3 > 5) # False
print(5 >= 5) # True
print(3 == 3) # True
print(3 != 3) # False
print(1 == True) # True
print(0 == False) # True
print(5 == '5') # False
print(False == '') # False
# 不同类型比较,结果一定是False, 1 == True和 0 == False除外
逻辑运算符
and(&) or(|) not
and:且, 两者为真,结果为真,其他为假
or: 或,有一个为真,结果为真,其他为假
not:非, 非假即真,非真既假
print(True and False) #False
print(True or False) #True
print(not True) #False
!谁能决定最终的结果 谁就是最后的结果
# 谁能决定最终的结果,谁就是最后的结果
print(6 or False) # 6
print(6 and False) # False
print(True and 0) # 0
print('' or 0) # 0
# 优先级:not>and>or
print(not False or 3 > 2 and 5 + 2 > 10) # True
海象运算符
海象运算符:(b := 3) + a , 赋值并运算
a=10
c=(b:=5)+a # 赋值的同时做运算
a= 2
sum = (b := 3) + a # 运算过程中赋值
print(sum) # 5
print(a + (b := 10)) # 12
成员运算符
(in)//判断是否存在 (not in)//判断是否不存在
s = 'hello world'
print('ll' in s) # True 判断'll'是否在s中
print('ol' not in s) # True 判断'ol'是不是不在s中
print(10 in (10, 20, 30)) # True
# 判断一个数是偶数 还是 奇数
a = 6
# res = '偶数' if a % 2 == 0 else '奇数'
res = '偶数' if not a % 2 else '奇数'
# if a%2==0 --> if not a%2
print(res)
# if a==true 可以简写为 if a
# if a==False 可以简写为 if not a
#身份运算符
python中-5 ~ 256之间的数据有小整数地址缓存的问题,在这之间
的数据重复声明,指的是同一空间
的值
256以上的数据
如果不在pycharm编辑器声明,而是在命令行声明相同的数据还会再去开辟一个空间
如果在pychram编辑器声明,pycharm进行了优化,同一数据,同一空间
小整数地址,-5-256之间的数据,不会重复开辟空间
但是pycharm对其进行了优化,同一个值一般都是同一个空间
用cmd命令框查询变量地址可以发现不同
id(val) :获取val对应的存储地址
a = 2
b = 2
c = 3
print(a is b) # True
print(b is not c) # True
# 查看地址
print(id(a)) # 140715610720728
print(id(b)) # 140715610720728
print(id(c)) # 140715610720760
a = 300
b = 300
print(id(a)) # 1221916137776
print(id(b)) # 1221916137776
print(id(a) == id(b)) #在pycharm中为True,但是在命令行结果是False
# 判断是否是同一空间
a=3
b=3
c=4
a is b # True
b is c # False
b is not c # True
用cmd命令框查询变量地址可以发现不同
pycharm对其进行了优化,同一个值一般都是同一个空间
位运算符
位运算符,底层采用二进制计算,运算效率较高
&:位与, 同位与,有一个为0,结果是0,其他是1
|:位或, 同位或,有一个为1,结果是1,其他是0
^:异或, 同位相同,结果为0,不同为1
~:位非, 按位取反,0变1 1变0
a = 0b00000010 # 2 (0b)声明一个二进制数
b = 0b00000100 # 4
# a & b: a | b a ^ b
# a:00000010 a:00000010 a:00000010
# b:00000100 b:00000100 b:00000100
# =:00000000 =:00000110 =:00000110
print(a & b) # 0
print(a | b) # 6
print(a ^ b) # 6
#~:位非, 按位取反,0变1 1变0
a = 0b00000010
# ~a:11111101 又因为第一位为1 表示负数 将其转化为正数 注:负数的十进制为补码的十进制 补码:源码取反+1
#负数:00000010
# +: 00000001
# =:00000011 ---->-3
print(~a) # -3
位移运算符
位移运算符,底层采用二进制计算,运算效率较高.
<< :左移,向左移动n位,在低位补n个0,相当于将原来的数据扩大2^n倍
>> : 无符号右移,向右移动n位,在高位补n个0,相当于将原来的数据缩小2^n倍
# 左移
a = 0b00000010 # 2
# 00000010=0000 1000=8
print(a << 2) # 8=2*2^2
# 右移
b = 0b00000100 # 4
# 00000100=0000 0001=1
print(b >> 2) # 1=4/2^2
# 2*8最高效的计算方式: 2<<3
总结
例如:以上就是今天要讲的内容,本文仅仅简单介绍了Python基础中的基本数据类型和运算符,讲解不足欢迎指正批评!
作者:KFCVme5