Python里的变量 ---门牌
Python在使用变量之前无须定义它的类型,但是必须声明以及初始化该变量。
Python中给变量赋值就是声明,初始化变量(也就是创建一个相应数据类型的对象,而那些数据类型就是类),变量的类型是取决于其储存的数据。(下面代码中的a变量,其类型类型随着赋值的类型不同而改变)
#type(a)返回a的数据类型 a=1 print(type(a),'整型') a=1.1 print(type(a),'浮点型') a=True print(type(a),'布尔类型') a='' print(type(a),'字符串类型') a=['床前明月光','地上鞋两双'] print(type(a),'列表') a=(123,123) print(type(a),'元组') a={ '好诗':'举头望明月,低头思故乡','好湿':'床前明月光,地上鞋两双'} print(type(a),'字典') a={12345,'上山打老虎'} print(type(a),'集合') # <class 'int'> 整型 # <class 'float'> 浮点型 # <class 'bool'> 布尔类型 # <class 'str'> 字符串类型 # <class 'list'> 列表 # <class 'tuple'> 元组 # <class 'dict'> 字典 # <class 'set'> 集合
数据类型
Python3 中常用的数据类型:
- 不可变数据类型
- Number(数字)
- String(字符串)
- Tuple(元组)
- 可变数据类型
- List(列表)
- Dictionary(字典)
- Sets(集合)
数据类型类型可分为:可变数据类型,不可变数据类型。
可变数据类型是指一个ID地址中储存的数据是可以改变的。
不可变数据类型是指一个ID地址中储存的数据不可以改变。
一 ,Number(数字)----不可变数据类型
1.int(整型)
int类型就是整数
Python的2.x的版本中还存在Long长整型(表示比较长的整数(比较大OR比较小)),3.x的版本中就只有int整型
整型类型能表达的数值仅仅与你的机器支持的(虚拟)内存大小有关,换句话说,Python能轻松表达很大的整数。
(嘿嘿,自己去算算对不对)
2.float(浮点数)
我们暂时的把浮点数理解为带小数点的小数(我还会开单章来说说浮点数)
3.bool(布尔类型)
把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加
注意:
- 1、Python可以同时为多个变量赋值,如a, b = 1, 2。
- 2、一个变量可以通过赋值指向不同类型的对象。
- 3、数值的除法 / 总是返回一个浮点数,要获取整数使用 // 操作符( // 是以舍去小数部分来取整的)。
- 4、在混合计算时,Python会把整型转换成为浮点数。
Python还支持complex(复数),复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
二,String(字符串)----不可变数据类型
字符串是以单引号 ' or
双引号 " or三引号 '''
括起来的任意文本(用来括起文本的单引号,双引号,三引号并不是文本里的字符),例如:'追求喜欢的女孩’,“有机会要追求”,‘’’没有机会,创造机会也要追求‘‘’
当有属于文本中的单引号 ’ ,就需要用双引号把文本括起来;当有属于文本中的双引号 ",就需要用三引号把文本括起来。(当引号为文本时要用引号多的把引号少的括起来)
三引号可以把多行字符串括起来
使用反斜杠 \ 转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串:
>>>print('L\ove') L ove >>> print(r'L\ove') L\ove >>>
字符串的操作
[ ],[ : ],[ : : ]通过索引可以进行切片操作,和列表一样(在列表时会详细讲)
加号 (+) 是字符串的连接符, 星号 (*) 表示复制当前字符串,紧跟的数字为复制的次数。
str = 'I Love' print((str+'You ')*4) #输出 I LoveYou I LoveYou I LoveYou I LoveYou
注意
Python 没有单独的字符类型,一个字符就是长度为1的字符串。
与 C 字符串不同的是,Python 字符串不能被改变。向一个索引位置赋值,比如word[0] = ‘m’会导致错误。
三,tuple(元组)----不可变数据类型
元组被称为只读列表,即数据可以被查询,但不能被修改,所以,列表的切片操作同样适用于元组。
元组写在小括号 () 里,元素之间用逗号隔开。
同一个元组中,元素可以是不同的(元素可以为任意类型)
虽然tuple的元素不可改变,但它的元素可以为可变数据类型,比如list列表。(现在不理解没关系,在后面解释可变与不可变数据类型中会有详细解释)
tup =([11,22,33], ['无边落木萧萧下', 44]) a=tup[1] b=[11,22,33] print(id(a)) print(id(tuple[1])) print(id(b)) #输出结果 #31469064 #31469064 #31927176
构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
tup1 = () # 空元组 tup2 = (20,) # 一个元素,需要在元素后添加逗号
作用:
1 对于一些数据我们不想被修改,可以使用元组;
2 另外,元组的意义还在于,元组可以在映射(和集合的成员)中当作键使用——而列表则不行;元组作为很多内建函数和方法的返回值存在。
四, List(列表)----可变数据类型
列表(list)是使用使用中括号 [ ] 来解析列表。
通过列表可以对数据实现最方便的存储、修改等操作
定义列表
a = ['锦','瑟','无','端','五','十','弦'] # 定义一个列表 a=list(('锦','瑟','无','端','五','十','弦'))#强制转换
同一个列表中,元素可以是不同的(元素可以为任意类型)
通过下标访问列表中的元素,下标从0开始计数
增(append,insert, extend)
1.insert 方法用于将对象插入到列表中
a = ['锦', '瑟', '无', '端', '五', '十', '弦'] # 定义一个列表 a.insert(0,'就是这') print(a) # ['就是这', '锦', '瑟', '无', '端', '五', '十', '弦']
2.append方法则用于在列表末尾追加新的对象
a = ['锦', '瑟', '无', '端', '五', '十', '弦'] # 定义一个列表 a.append('最后面') print(a) # ['锦', '瑟', '无', '端', '五', '十', '弦', '最后面']
3.追加一个序列里的多个元素( extend)
extend 方法可以在列表的末尾一次性追加另一个序列(可迭代对象,如 列表,字典,元组,字符串)中的多个值。
extend 方法修改了被扩展的列表,而原始的连接操作(+)则不然,它会返回一个全新的列表。
#列表
a = ['锦', '瑟', '无', '端', '五', '十', '弦'] b = ['一', '弦', '一', '柱', '思', '华', '年'] a.extend(b) #只是对a进行扩展,无返回值(不会产生新的列表) print(a) # ['锦', '瑟', '无', '端', '五', '十', '弦', '一', '弦', '一', '柱', '思', '华', '年'] b.extend(b) print(b) # ['一', '弦', '一', '柱', '思', '华', '年', '一', '弦', '一', '柱', '思', '华', '年'] #字典 a = ['一', '弦', '一', '柱