进制数据类型运算符
一、进制的表示
1.十进制
b = 98 # 在python中输入默认数字就是好十进制
2.二进制
b = 0b10001110 # 以0b开头的是二进制,但是打印出来会显示十进制
>>> bin = 0b10011100
>>> print(bin)
156
3.八进制
c = 0o # 以0o开头的数字是八进制的数据
>>> c = 0o55614
>>> print(c)
23436
4.十六进制
d = 0x2E # 以0x开头的是十六进制
>>> d = 0x2E
>>> print(d)
46
二、进制转换
a = 10
print(bin(10))
0b10010
bin() # 将数字转位二进制
oct() # 将数字转位八进制进制
hex() # 将数字转位十六进制
三、数据类型转换
将一个类型的数据转换为另一个类型。
int ====> str
bool ====> int
int =====> float
不同的数据类型运算规则是不一样的,所以需要进行类型转换。
例如:
age = input('请输入你现在的年龄:')
age = int(age) # input保存的变量是字符串,不能与整型变量运算
print("你去年的年龄是:%d" %(age -1 ))
# 如果不进行类型转换
age = input('请输入你现在的年龄:')
# age = int(age) # input保存的变量是字符串,不能与整型变量运算
print("你去年的年龄是:%d" %(age -1 ))
# -----------#
请输入你现在的年龄:18
Traceback (most recent call last):
File "D:/qianfeng-python/day02/字符类型转换.py", line 4, in <module>
print("你去年的年龄是:%d" %(age -1 ))
TypeError: unsupported operand type(s) for -: 'str' and 'int'
进程已结束,退出代码为 1
1.换为整型
# 使用内置函数int()
# 如果字符串不是一个合法的数字会报错。
>>> a = '31'
>>> b = int(a)
>>> print(a + 1) # a 的类型是字符型不能进行加减运算
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
>>> print(b + 1)
32
# 这是吧1a2c识别为十六进制,在
a = '1a2c'
x = int(a,16)
print(x)
#=====输出结果====== #
6700
# 转换为二进制
print(bin(x))
#=====输出结果====== #
0b1101000101100
2.转换为浮点型
- 转换的数据必须是被识别为有效的浮点数,比如我们看起来像小数的。
- 可以把整数转换为浮点数
>>> a = '3.32'
>>> b = float(a)
>>> print(b+1)
4.32
>>> a = 100
>>> print(float(100))
100.0
3.转换为字符串
# 使用内置类str()转换为字符串
>>> b = 34
>>> c = str(34)
>>> print(c)
34
>>> print(type(c))
<class 'str'>
>>> print(type(b))
<class 'int'>
4.转换为bool类型
# 把100转换为布尔值
>>> print(bool(100))
True
# 非0之外的都是True
>>> print(bool(0))
False
# 字符串转换为bool,非空的都为True
>>> print(bool(""))
False
# None是False
>>> print(bool(None))
False
# 空列表、集合、字典、元组返回的是False
>>> a=()
>>> b={}
>>> c=[]
>>> bool(a)
False
>>> bool(b)
False
>>> bool(c)
False
在python中True表示1, False表示0
>>> print(True + 1)
2
四、运算符
1.算数运算符
运算符 | 用途 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
** | 幂运算 |
// | 取商 |
% | 取余 |
() | 优先运算 |
>>> print(True + 1)
2
>>> print(10 - 9)
1
>>> print(2 * 3)
6
# 在python2中不管能不能除尽,只会取商;在python3中会返回浮点数。
>>> print(10/5)
2.0
# 表示为4开方
>>> print(4 ** 0.5)
2.0
# 取商
>>> print(10 // 3)
3
# 取余
>>> print( 23 % 20)
3
运算在字符类型中的应用
# 起到了拼接字符串的作用。
>>> print('hello'+'nihao')
hellonihao
# 数字和字符串进行乘法运算。
>>> print('hello\n' * 2)
hello
hello
2.赋值运算符
"=" 表示赋值运算符。表示的是把等号右边的值赋值给左边的变量。
a = 4 表示的是把4赋值给变量a
等号的左边一定不能是常量或者是表达式。
>>> a = 4
>>> x = 1
>>> x = x + 2
>>> print(x)
3
# 同等于
>>> x =1
>>> x +=2
>>> print(x)
3
x = 1
# 与 x = x + 2同等功能
x += 2
x *= 2
x /= 2
x **=2
x -= 2
x %= 2
特殊的赋值
>>> a = b =c = d = 'hello'
>>> print(a,b,c,d)
hello hello hello hello
# 拆包,如果两边的个数不一致会导报错。
>>> m, n = 3, 5
>>> print(m, n)
3 5
# 元组,和元组一样,么有()
>>> x ="hello", "old", "are"
>>> print(type(x))
<class 'tuple'>
# *表示长度可变
>>> o, *p ,q = 1, 2, 3, 4, 5
>>> print(o, p, q)
1 [2, 3, 4] 5
>>> *o, p ,q = 1, 2, 3, 4, 5
>>> print(o, p, q)
[1, 2, 3] 4 5
>>> o, p ,*q = 1, 2, 3, 4, 5
>>> print(o, p, q)
1 2 [3, 4, 5]
3.比较运算符
# > 大于
# < 小于
# >= 大于等于
# <= 小于等于
# != 不等于 <> 在python中支持
# == 等于
print(6 > 4)
print(4 < 6)
print(4 >= 3)
print(5 <= 10)
print('a' != 'b')
print(2 != 2)
# 字符得比较会使用字符得编码进行比较
print('a' > 'b')
print('b' > 'a')
4.逻辑运算符
# 与 and 或 or 非 not
# 1。and 只要一个是错误的就都是False
print(2 > 1 and 3 > 2 and 4 > 1) # True
print(1 > 2 and 3> 1 and 4 == 4) # False
# 2. or 只要一个是对得都是对True
print(1 > 2 or 2 > 1 or 3 >10 ) # True
# not 取反
print(not (3 > 2)) # False
# 运算短路问题
4 > 3 and print('hello word!')
3 > 4 and print('你好世界') # 逻辑与只要运行到False的地方就不会向后面执行了
10 > 1 and print("最后的")
# or 运算符
# 只有所有的False才是False
# 只要出现一个True就是True,所有就不会向后执行了。
4 > 3 or print('hahha')
3 > 4 or print('aaaaa') # 因为前面的结果是False所以继续像后面执行。
5.位运算符