python3的基础入门3:基本数据类型
基本数据类型
python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值.
#!/usr/bin/python3 count = 666 # 整型变量 money = 8888.1 # 浮点型变量 name = "zhaoxl" # 字符串 print (count) print (money) print (name)
1.多个变量赋值
- 基本数据类型
a = b = c = 1a,b,c = 1,1.1,"zhao"
2.标准数据类型
- 基本数据类型
Python3 中有六个标准的数据类型:
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
Python3 的六个标准数据类型中:
- 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
- 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
2.1Number
int、float、bool、complex(复数)
内置的 type() 函数可以用来查询变量所指的对象类型
a,b,c,d = 10,2.3,True,3+5j print(type(a)) print(type(b)) print(type(c)) print(type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
isinstance 猜测函数类型
print(isinstance(a,int));print(isinstance(a,bool))
True False
isinstance 和 type 的区别在于:
- type()不会认为子类是一种父类类型。
- isinstance()会认为子类是一种父类类型。
>>> class A: ... pass ... >>> class B(A): ... pass ... >>> isinstance(A(), A) True >>> type(A()) == A True >>> isinstance(B(), A) True >>> type(B()) == A False
注意:在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。
指定一个值时,Number对像就被创建
var1=1,var2=2
del 删除对像的引用
del var1,var2
>>> 5+3 #加法 8>>> 4.1-1 #减法 3.1>>> 3*1 #乘法 3 >>> 2/1 #除法 得到浮点数 2.0>>> 2 // 4 #除法 得到整数 0>>> 13 % 4 #取余数 1>>> 2**6 #乘方 64
- 1、Python可以同时为多个变量赋值,如a, b = 1, 2。
- 2、一个变量可以通过赋值指向不同类型的对象。
- 3、数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。
- 4、在混合计算时,Python会把整型转换成为浮点数。
>>> a=1 >>> print(type(a)) <class 'int'> >>> a=1.1 >>> print(type(a)) <class 'float'>
2.2 String 字符串
Python中的字符串用单引号 ’ 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。
字符串的截取的语法格式如下:
变量[头下标:尾下标]
索引值以 0 为开始值,-1 为从末尾的开始位置。
str = 'MyFirstPythonStr'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") # 连接字符串
MyFirstPythonStr MyFirstPythonSt M Fir FirstPythonStr MyFirstPythonStrMyFirstPythonStr MyFirstPythonStrTEST
反斜杠 \ 转义特殊字符
防止反斜杠发生转义 r,表示原始字符串
print('Ru\noob') print(r'Ru\noob')
Ru oob Ru\noob
反斜杠\可以作为续行符,表示下一行是上一行的延续。也可以使用 “”“…”“” 或者 ‘’‘…’‘’ 跨越多行
Python 没有单独的字符类型,一个字符就是长度为1的字符串
word = 'ZhaoPh' print(word[0], word[5]) print(word[-1], word[-6])
Z h h Z
2.3 List 列表
列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
备注:python的list不同其他语言,一个列表中元素可以是不同的数据类型。
list = [ 'abc', 123 , 4.56, 'phor', 88.6 ]
列表截取的语法格式如下:
变量[头下标:尾下标]
索引值以 0 为开始值,-1 为从末尾的开始位置。
list = [ 'abc', 123 , 4.56, 'phor', 88.6 ] list2 = [876, 'hello']print(list) # 输出完整列表 print(list[0]) # 输出列表第一个元素 print(list[1:3]) # 从第二个开始输出到第三个元素 print(list[2:]) # 输出从第三个元素开始的所有元素 print(list2 * 2) # 输出两次列表 print(list + list2) # 连接列表
['abc', 123, 4.56, 'phor', 88.6] abc [123, 4.56] [4.56, 'phor', 88.6] [876, 'hello', 876, 'hello'] ['abc', 123, 4.56, 'phor', 88.6, 876, 'hello']
1、List写在方括号之间,元素用逗号隔开。
2、和字符串一样,list可以被索引和切片。
3、List可以使用+操作符进行拼接。
4、List中的元素是可以改变的。
列表截取可以接收第三个参数,参数作用是截取的步长,以下实例在索引 1 到索引 4 的位置并设置为步长为 2(间隔一个位置)来截取字符串.
str = ["a","b",'c','d','e','f','g']0. 1. 2. 3 4. 5. 6 str[1:4:2] 得: ['b', 'd']
定义方法:
def reswords(words):#空格分割字符串wordsList = words.split(" ")# 翻转字符串# 假设列表 list = [1,2,3,4], # list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样)# inputWords[-1::-1] 有三个参数# 第一个参数 -1 表示最后一个元素# 第二个参数为空,表示移动到列表末尾# 第三个参数为步长,-1 表示逆向newwordsList = wordsList[-1::-1]#空格 拼接新list outword = ' '.join(newwordsList)return outword#调用测试 str = "I like PHP and Python" str2 = reswords(str) print(str2)
Python and PHP like I
2.4 Tuple 元组
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。元组中的元素类型也可以不相同
tuple = ( 'abc', 123 , 4.56, 'phor', 88.6) tinytuple = (876, 'hello')print(tuple) # 输出完整元组 print(tuple[0]) # 输出元组的第一个元素 print(tuple[1:3]) # 输出从第二个元素开始到第三个元素 print(tuple[2:]) # 输出从第三个元素开始的所有元素 print(tinytuple * 2) # 输出两次元组 print(tuple + tinytuple) # 连接元组
('abc', 123, 4.56, 'phor', 88.6) abc (123, 4.56) (4.56, 'phor', 88.6) (876, 'hello', 876, 'hello') ('abc', 123, 4.56, 'phor', 88.6, 876, 'hello')
元组同字符串类似,可以被索引且下标索引从0开始,-1 为从末尾开始的位置。也可以进行截取。 在理解上,可以把字符串看作一种特殊的元组。
- 1、与字符串一样,元组的元素不能修改。[但它可以包含可变的对象,比如list列表]
- 2、元组也可以被索引和切片,方法一样。
- 3、注意构造包含 0 或 1 个元素的元组的特殊语法规则。
- 4、元组也可以使用+操作符进行拼接。
构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
tuple1 = () # 空元组 tuple2 = (20,) # 一个元素,需要在元素后添加逗号
string、list 和 tuple 都属于 sequence(序列)。
2.5 Set 集合
集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:
parame = {value01,value02,...} 或者 set(value)
set1 = {1,2,3,4,"1",'1',2}if 1 in set1 :print("1在set1") else :print("1不在set1")得: {1, 2, 3, 4, '1'} 1在set1
# set可以进行集合运算 a = set('aaabbbcccdddeee') b = set('aabbccxxyyzz') print(a) #abcde print(b) #abcxyz print(a - b) # a 和 b 的差集 集合a剔除集合b包含集合a集合a的剩余元素 即:de print(a | b) # a 和 b 的并集 集合a与集合b全面覆盖 即:abcdexyz print(a & b) # a 和 b 的交集 集合a与集合b都包含的。即: abc print(a ^ b) # a 和 b 中不同时存在的元素 即:dexyz
{'b', 'a', 'd', 'e', 'c'} {'b', 'a', 'y', 'c', 'x', 'z'} {'e', 'd'} {'b', 'a', 'd', 'y', 'e', 'c', 'x', 'z'} {'c', 'b', 'a'} {'x', 'd', 'y', 'e', 'z'}
3.6 Dictionary 字典
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。
dic = {} dic["name"] = "wangergou"; dic["age"] = 18; dic["sex"] = "nan";print(dic) print(dic.keys()) print(dic.values())
{'name': 'wangergou', 'age': 18, 'sex': 'nan'} dict_keys(['name', 'age', 'sex']) dict_values(['wangergou', 18, 'nan'])
dict() 构造方法
dic1 = dict([("name","wanger"),("age",18),("sex","nv")]) dic2 = dict(name ="lisi",age=18,sex=24) print(dic1) print(dic2) dic1.clear() print(dic1)
{'name': 'wanger', 'age': 18, 'sex': 'nv'} {'name': 'lisi', 'age': 18, 'sex': 24} {}
- 1、字典是一种映射类型,它的元素是键值对。
- 2、字典的关键字必须为不可变类型,且不能重复。
- 3、创建空字典使用 { }。