整形就是整数,计算机只能保存二进制0和1
为了方便数据的表示,计算机也支持八进制和十六进制
二进制 八进制 十六进制 十进制 Python都能够表示
a = 98 # 默认数字都是十进制的数字
b = 0b10110110 # 以0b开头的数字都是二进制
print(b) # 当使用print语句打印一个数字的时候,默认也是用十进制打印输出的
# 二进制里最大的数是1
c = 0o34 # 以0o开头的数字是八进制的数字
#八进制里最大的数是7
d = 0x23 # 以0x开头的数字是十六进制
#十六进制是0-9,a-f
使用分解质因数的方式,求某个值的二进制数
Python中可以用bin内置函数进行转换
二进制 <==> 十进制
二进制 ==> 八进制
二进制 ==> 十六进制
二进制 -> bin
八进制 -> oct
十六进制 -> hex
a = 23
print(bin(a))
print(oct(a))
print(hex(a))
# 0b10111
# 0o27
# 0x17
进行数据类型转换的原因:不同数据类型的计算方式不同
将一个类型的数据转换为其他类型的数据
int() --> 将数据类型转换为int
int() 在字符串合法的情况下,可以添加一个参数,指定转换后的进制,8,16.默认转换为十进制
str() --> 将数据类型转换为str
bool() --> 将数据类型转换为bool
数字中,只有数字0被转换成布尔值是False,其他的数字转换为布尔值都是True
字符串中,只有空字符串可以转换为False,其他的字符串都转换为True
None转换为布尔值是False
空列表,空元组,空字典,空集合转换为布尔值是False
float() --> 将数据类型转换为float
if 3:
print('good')
1. + 加号
2. - 减号
3. * 乘号
4. / 除号
5. // 取整 #向下取整
6. % 取余
7. ** 指数
8. () 小括号(提高运算优先级)
在Python中,两个整数相除会得到一个浮点数
字符串仅支持加法和乘法运算符
加法运算符:
只能用于两个字符串类型的数据,用来拼接多个字符串
数字和字符串之间不能进行加法运算
print('hello' + 'world') # 将多个字符串拼接为一个字符串
乘法运算:
可以用于数字和字符串之间,用于将一个字符串重复多次
print('hello' * 2) # hellohello
符合赋值运算符
+=
-=
*=
/=
**=
//=
%=
a = b = c = d = 'hello'
m,n = 3,5 #拆包
m,*n,o = 1,2,3,4,5,6 #可变长度
> 大于
< 小于
>= 大于等于
<= 小于等于
!= 不等于
== 判断==号左右两边是否相等
print('a' > 'b') # False
print('abc' > 'b') # False
and 逻辑与
or 逻辑或
not 逻辑非
4 > 3 and print('hello world') # hello world
4 < 3 and print('hello world') # False(不执行print)
# 逻辑与运算的短路问题
4 > 3 or print('哈哈哈') #True(不执行print)
4 < 3 or print('嘿嘿嘿') # 嘿嘿嘿
# 逻辑或运算的短路问题
print(3 and 3 and 0 and 'hello') # 0(取第一个为False的值)
print(0 or [] or 'lisi' or 5 or 'ok') # lisi(取第一个为True的值)
& 按位与
| 按位或
^ 按位异或
<< 按位左移
>> 按位右移
~ 按位取反
0xF0384E
的RGB值,以十进制的形式打印输出color = 0xF0384E
red = color >> 16
green = (color >> 8) ^ (red << 8)
blue = ((red << 16) + (green << 8) ) ^ color
print(hex(red))
print(hex(green))
print(hex(blue))
print(red)
print(green)
print(blue)
# 0xf0
# 0x38
# 0x4e
# 240
# 56
# 78
运算优先级:
**
高于* / % //
高于+ -
,建议使用()来处理运算符优先级.
逻辑运算符的优先级: not > and > or