上一节主要说一些简单语法,变量,本章主要介绍数据类型。
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 | 逻辑非 | nota | a为True时,值为False,a为False时,值为True |
and | 逻辑与 | aandb | a、b全为True时,计算结果为True,否则为False |
or | 逻辑或 | aorb | 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 | 逻辑与、逻辑或 |