Python3基本数据类型

变量

  • Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
  • 在Python中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
  • 等号=用来给变量赋值。

多个变量赋值

Python允许同时为多个变量赋值

1
2
a = b = c = 1 #为多个对象赋予同一个值
a = b = c = 1,2,"blog" #为多个对象赋予多个变量

标准数据类型

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)

Number(数字)

Python3 支持 int、float、bool、complex(复数)。

在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。

像大多数语言一样,数值类型的赋值和计算都是很直观的。

内置的 type() 函数可以用来查询变量所指的对象类型。

1
2
3
4
5
#输入
a, b, c, d = 20, 5.5, True, 4+3j
print(type(a), type(b), type(c), type(d))
#输出
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

也可以用 isinstance 来判断:

1
2
3
a = 111
isinstance(a, int)
True

isinstance 和 type 的区别在于:

  • type()不会认为子类是一种父类类型。
  • isinstance()会认为子类是一种父类类型。

认为也可以理解为是否使用继承类型

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
class A:
...     pass
... 
>>> class B(A):
...     pass
... 
>>> isinstance(A(), A)
True
>>> type(A()) == A 
True
>>> isinstance(B(), A)
True
>>> type(B()) == A
False

注意:Python3中,bool是int的子类,True和False可以和数字相加,True==1、False==0会返回True,但可以通过is来判断类型。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
issubclass(bool, int) 
True
 True==1
True
 False==0
True
 True+1
2
 False+1
1
 1 is True
False
 0 is False
False

当你指定一个值时,Number 对象就会被创建:

1
2
var1 = 1
var2 = 10

也可以使用del语句删除一些对象引用。
del语句的语法是:del var1[,var2[,var3[....,varN]]]
可以通过使用del语句删除单个或多个对象。例如:

1
2
del var
del var_a, var_b

数值运算

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
>>> 5 + 4  # 加法
9
>>> 4.3 - 2 # 减法
2.3
>>> 3 * 7  # 乘法
21
>>> 2 / 4  # 除法,得到一个浮点数
0.5
>>> 2 // 4 # 除法,得到一个整数
0
>>> 17 % 3 # 取余
2
>>> 2 ** 5 # 乘方
32

注意:在混合计算时,Python会把整型转换成为浮点数。


String(字符串)

Python中的字符串用单引号'或双引号"括起来,同时使用反斜杠\转义特殊字符。
字符串的截取的语法格式为:变量[头下标:尾下标]
0为开始值,-1为从末尾的开始位置

加号+是字符串的连接符,星号*表示复制当前字符串,与之结合的数字为复制的次数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/usr/bin/python3

str = 'Runoob'

print (str)          # 输出字符串
print (str[0:-1])    # 输出第一个到倒数第二个的所有字符
print (str[0])       # 输出字符串第一个字符
print (str[2:5])     # 输出从第三个开始到第五个的字符
print (str[2:])      # 输出从第三个开始的后的所有字符
print (str * 2)      # 输出字符串两次,也可以写成 print (2 * str)
print (str + "TEST") # 连接字符串

执行后输出

1
2
3
4
5
6
7
Runoob
Runoo
R
noo
noob
RunoobRunoob
RunoobTEST

List(列表)

  • List(列表) 是 Python 中使用最频繁的数据类型。
  • 列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
  • 列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
  • 和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

列表截取的语法格式为:变量[头下标:尾下标]
加号+是列表连接运算符,星号*是重复操作,如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/usr/bin/python3

list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
tinylist = [123, 'runoob']

print (list)            # 输出完整列表
print (list[0])         # 输出列表第一个元素
print (list[1:3])       # 从第二个开始输出到第三个元素
print (list[2:])        # 输出从第三个元素开始的所有元素
print (tinylist * 2)    # 输出两次列表
print (list + tinylist) # 连接列表

执行后输出:

1
2
3
4
5
6
['abcd', 786, 2.23, 'runoob', 70.2]
abcd
[786, 2.23]
[2.23, 'runoob', 70.2]
[123, 'runoob', 123, 'runoob']
['abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob']

注意:与字符串不同,列表中的元素是可以改变的
🌰

1
2
3
4
5
6
7
8
>>> a = [1, 2, 3, 4, 5, 6]
>>> a[0] = 9
>>> a[2:5] = [13, 14, 15]
>>> a
[9, 2, 13, 14, 15, 6]
>>> a[2:5] = []   # 将对应的元素值设置为 []
>>> a
[9, 2, 6]

要点:

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计