上一节主要说一些简单语法,变量,本章主要介绍数据类型。
Python所有的数据类型都是类,每个数据值都是累的“实例”
Python中有6种主要的内置数据类型:数字、字符串、列表、元组、集合和字典。
Python中的数字类型有4种:整数、浮点数、复数和布尔类型。
1.整数类型
整数类型为int类
>>> 28
28
>>> type(28)
<class 'int'>
>>> 0b11100 # 二进制表示方式
28
>>> 0o34 #八进制表示方式
28
>>> 0x1c #十六进制表示方式
28
2.浮点型
浮点型主要用来存储小数数值,为float类,Python只支持双精度浮点类型
>>> 1.0
1.0
>>> 2.0
2.0
>>> type(2.0)
<class 'float'>
>>> 3.36e2 #科学计数法,e2表示10的平方
336.0
3.复数类型
整数和浮点数统称为实数,与实数对应的是复数,复数在数学中被表示位:a+bi,其中a被称为实部,b被成为虚部,i被成为虚数单位。
>>>1+2j
(1+2j)
>>>(1+2j) + (1+2j)
(2+4j)
>>>c = 3+4j
>>>type(c)
<class 'complex'>
4.布尔类型
bool类,bool是int的子类,它只有两个值:True和False
>>>bool(0)
False
>>>bool(2)
True
>>>bool(1)
True
>>>bool('')
False
>>>bool(' ')
True
>>>bool([])
False
>>>bool({})
False
5.运算符
a.算数运算符
运算符 | 名称 | 例子 | 说明 |
+ | 加 | a + b | 求a与b的和 |
- | 减 | a - b | 求a与b的差 |
* | 乘 | a * b | 求a与b的积 |
/ | 除 | a / b | 求a除以b的商 |
% | 取余 | a % b | 求a除以b的余数 |
** | 幂 | a ** b | 求a的b次幂 |
// | 地板除法 | a // b | 求小于a与b的商的最大整数 |
vim suanshu.py
# -*- coding: utf-8 -*-
"""
@Time: 2024/5/21 11:31
@File: suanshu.py
@IDE: PyCharm
"""
a = 1
print(a) # 1
print(-a) # -1
print(1 + 1) # 2
print(2 - 1) # 1
print(2 * 3) # 6
print(3 / 2) # 1.5
print(3 % 2) # 1
print(3 // 2) # 1
print(-3 // 2) # -2
print(10 * 2) # 20
print(10.2 + 10) # 20.2
print(1.0 + True + 1) # 3.0
b.比较运算
运算符 | 名称 | 例子 | 说明 |
== | 等于 | a == b | a等于b时返回True,否则返回False |
!= | 不等于 | a != b | 与==相反 |
> | 大于 | a > b | a大于b时返回True,否则返回False |
< | 小于 | a < b | a小于b时返回True,否则返回False |
>= | 大于等于 | a >= b | a大于等于b时返回True,否则返回False |
<= | 小于等于 | a <= b | a小于等于b时返回True,否则返回False |
>>>a = 1
>>>b =2
>>>a > b
False
>>>a < b
True
>>>a <= b
True
>>>1.0 == 1
True
>>>1.0 != 1
False
#字符串比较
>>>a = 'Hello'
>>>b = 'Hello'
>>>a == b
True
>>>a = 'World'
>>>a > b
True
>>>a = []
>>>b = [2,1]
>>>a > b
False
>>>a=['2']
>>>a > b
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: '>' not supported between instances of 'str' and 'int'
因为a与b的元素类型不一致所以无法比较
c.逻辑运算
运算符 | 名称 | 例子 | 说明 |
not | 逻辑非 | not a | a为True时,值为False,a为False时,值为True |
and | 逻辑与 | a and b | a、b全为True时,计算结果为True,否则为False |
or | 逻辑或 | a or b | a、b全为False时,计算结果为False,否则为True |
>>>a = 1
>>>b = 0
>>>def f1():
---print('--进入函数发')
---return True
>>>(a>b) or f1()
True
>>>(a<b) or f1()
--进入函数发
True
>>>(a<b) and f1()
False
>>>(a>b) and f1()
--进入函数发
True
d.位运算符
运算符 | 名称 | 例子 | 说明 |
~ | 位反 | ~x | 將x的值按位取反 |
& | 位与 | x & y | 將x与y按位进行位与运算 |
| | 位或 | x | y | 將x与y按位进行位或运算 |
^ | 位异或 | x ^ y | 將x与y按位进行位异或运算 |
>> | 右移 | x >> a | 將x右移a位,高位才用符号位补位 |
<< | 左移 | x << a | 將x左移a位,低位用0补位 |
>>> a = 0b10110010
>>> b = 0b01011110
>>> a | b
254
>>> a & b
18
>>> a ^ b
236
>>> ~a
-179
>>> a >> 2
44
>>> a << 2
712
>>> c = -20
>>> ~c
19
e.赋值运算符
运算符 | 名称 | 例子 | 说明 |
+= | 加赋值 | a += b | 等价于a = a + b |
-+ | 减赋值 | a -= b | 等价于a = a - b |
*= | 乘赋值 | a *= b | 等价于a = a + b |
/= | 除赋值 | a /= b | 等价于a = a / b |
%= | 取余赋值 | a %= b | 等价于 a = a % b |
**= | 幂赋值 | a **= b | 等价于 a = a ** b |
//= | 地板除赋值 | a //= b | 等价于 a = a // b |
&= | 位与赋值 | a &= b | 等价于 a = a & b |
|= | 位或赋值 | a |= b | 等价于 a = a | b |
^= | 位异或赋值 | a ^= b | 等价于 a = a ^ b |
<<= | 左移赋值 | a <<= b | 等价于 a = a << b |
>>= | 右移赋值 | a >>= b | 等价于 a = a >> b |
>>> a = 1
>>> b =1
>>> a += b
>>> a
2
>>> a += b+3
>>> a
6
>>> a -= b
>>> a
5
>>> a *= b
>>> a
5
>>> a /= b
>>> a
5.0
>>> a %= b
>>> a
0.0
>>> a = 0b10110010
>>> b = 0b01011110
>>> a |= b
>>> a
254
>>> a ^= b
>>> a
160
6.运算符优先级
优先级 | 运算符 | 说明 |
1 | () | 小括号 |
2 | ** | 幂 |
3 | ~ | 位反 |
4 | +,- | 正负号 |
5 | *,/,%,// | 乘、除、取余、地板除 |
6 | +,- | 加、减 |
7 | <<,>> | 位移 |
8 | & | 位与 |
9 | ^ | 位异或 |
10 | | | 位或 |
11 | <,<=,>,>=,<>,!=,== | 比较 |
12 | not | 逻辑非 |
13 | and,or | 逻辑与、逻辑或 |