学习记录,欢迎指出错误
数据类型与变量
数据类型
在Python中标准的数据类型有六种:
- Number(数字 )
- String(字符串)
- List(列表)
- Tuple(元组)
- Sets(集合)
- Dictionary(字典)
变量
- 使用等号(=)来给变量赋值,允许同时多个变量赋值。
- Python中的变量没有类型,“类型”是变量所指的内存中对象的类型。
- Python中的变量不需要声明,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
变量命名规则
- 数字不能作为开头,但可作为结尾
- 标点符号中只有下划线可以出现在名字里面
- 同一个数据不只有一个名字
- 同样的名字只能对应一个数据
Number(数字)
- Python3支持 int、float、bool、complex(复数)。
- 内置的
type()
函数可以用来查询变量所指的对象类型,isinstance()
函数可以用来判断变量所指的对象类型。
>>>a = 20
>>>print(type(a))
(class 'int)
>>>isinstance(a, int)
Ture
整数 int
Python可以处理任意大小的整数,包括正、负整数,在程序中的表示方法和数学上的写法一样。
浮点数 float
浮点数也就是小数,之所以称为浮点数,是因为按照科学计数法表示时,一个浮点数的小数点位置是可变的。对于很大或很小的浮点数,就必须用科学计数法表示,用e代替10,如 123=1.23e2、0.012=1.2e-2。
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差。
布尔类型 bool
条件真为:Ture;条件假为:False
String(字符串)
Python中的字符串用 ' 或 " 括起来,同时使用反斜杠 \ 转移特殊字符。语法格式:title = 'hello word'
字符串的截取语法格式为:title[0:5]
- Python中字符串不能改变。
- 字符串可以用+连接,用*重复。
- 字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
List(列表)
- list是一种有序的集合,可以添加和删除其中的元素。
- 往list中添加元素到末尾
a.append('ad')
,插到指定位置a.insert(1, 'ad')
。 - 删除list末尾的元素
a.pop()
,删除指定位置的元素a.pop(2)
。 - 替换某个元素,直接赋值给对应的索引位置
a[1] = 3
。 - 列表中元素的类型可以不相同,支持数字、字符串甚至包含列表(嵌套)。
- 列表是Python中使用最频繁的数据类型。
- 列表被截取后返回一个包含所需元素的新列表。
- 列表是写在[ ]之间、用逗号分隔开的元素列表。
- 用
len()
函数可以获取list元素的个数。 - list索引从0开始,可以用-1直接获取最后一个元素。
>>>list1=[ 123, 1.23,'abc' ]
>>>list2 = [ 456, 4.56, 'abcd', list1 ]
>>>list2[0] = 6
>>>list2
[6, 4.56, 'abcd',[123,1.23,'abc']]
Tuple(元组)
- 元组写在小括号( )里面,元素之间用逗号隔开。
- 元组中的元素类型可以不相同,元组访问与列表一样。
- 元组中的元素不允许修改(指向不变),可以使用del语句来删除整个元组,可以对元组进行连接组合。
>>> a = (123,'a',2.4)
>>> a
(123, 'a', 2.4)
>>> print(a,type(a),len(a))
(123, 'a', 2.4) <class 'tuple'> 3
>>> print(a[1])
a
>>> a[0]=1#元素修改是不合法的
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> b = ()#创建一个空元组
>>> b
()
>>> c = (12,)创建一个元素的元组,需要在元素后面添加逗号
>>> c
(12,)
>>>
Set(集合)
- 可以使用大括号{ }或者set( )函数创建set集合。
- 创建一空集合必须用set( )而不是{ },因为{ }是用来创建一个空字典。
- 集合是一个无序、不重复元素的集,基本功能是进行成员关系测试和消除重复元素。
- 添加元素到set中
a.add(2)
,删除元素remove(2)
。
>>> stu = {'a','b','c','d','a'}
>>> print(stu)#自动过滤掉重复的
{'a', 'b', 'c', 'd'}
>>> 'a' in stu#成员测试
True
>>> a = set( 'abcdefg')
>>> b = set( 'defghij')
>>> a
{'c', 'a', 'f', 'b', 'e', 'g', 'd'}
>>> a-b#a和b的差集
{'a', 'b', 'c'}
>>> a|b#a和b的并集
{'h', 'c', 'a', 'f', 'b', 'i', 'e', 'g', 'd', 'j'}
>>> a&b#a和b的交集
{'f', 'e', 'g', 'd'}
>>> a^b#a和b中不同时存在
{'h', 'j', 'c', 'b', 'a', 'i'}
Dictionaries(字典)
- 变量 = [键:值(key-value), 键:值]
- 创建空字典用{ }。
- 字典的关键字必须为不可变对象,且互不相同。
- 字典是一种映射类型,它的元素是无序的键值对。
- 除了初始化指定,可以根据key放入,
a['b'] = 2
,删除一个keya.pop('b')
。 - 判断key是否存在,一是通过
'a' in d
,二是d.ger('a')
或指定的valued.get('a', 1)
。 - 字典类型有一些内置的函数,如
clear()
、keys()
、values()
、dict()
、get()
等。
>>> dic = { }#创建一个空字典
>>> ple = { 'a':1, 'b':2, 'c':3 }
>>> ple
{'a': 1, 'b': 2, 'c': 3}
>>> ple['a']
1
>>> del ple['a'] #删除一个键值对
>>> ple
{'b': 2, 'c': 3}
>>> ple[ 'd' ]=4#添加一个键值对
>>> ple
{'b': 2, 'c': 3, 'd': 4}
>>> list(ple.keys())#返回所有key组成的list
['b', 'c', 'd']
>>> sorted(ple.keys())#按key排序
['b', 'c', 'd']
>>> 'b' in ple#成员测试
True
>>> 'a' in ple
False
>>> 'a' not in ple
Ture
数据类型比较
类型 | 语法格式 | 可变 | 下标读取 |
---|---|---|---|
Number | a = 60 | N | |
String | a = 'dream' | N | Y |
List | a = [ 60, 3.14, 'dream'] | Y | Y |
Tuple | a = ( 60, 3.14, 'dream' ) | N | Y |
Sets | a = { 60, 3.14, 'dream' } | N | N |
Dictionary | a = { 'dream' : 1, 'try' : 2 } | a['try'] |
数据类型的转换
- int()
- float()
- str()
- bool()
- hex() 把一个整数转换成十六进制表示的字符串,只能转换整数。
字符串常用方法
- lstrip():删除字符串中所有的前导空格。
- rstrip():删除字符串中所有尾随空格。
- strip():对字符串执行lstrip()、rstrip()。
- split(str):根据分隔符str拆分字符串,默认以空格拆分。
- replace(old, new):使用新的字符串代替指定的字符串。
- capitalize():把字符串的第一个字母转换为大写。
- lower():把字符串中所有大写字母转换为小写。
- upper():把字符串中所有小写字母转换为大写。
- islower():如果字符串至少包含一个字母,并且所有字符均为小写,则返回Ture,否则返回False。
- isupper():如果字符串至少包含一个可变大小字符,并且所有可变大小写字符均为大写,则返回Ture,否则返回False。
- find():查找字符串是否有特定的字符,若有返回索引值,没有则返回-1。
- index():查找字符串是否有特定的字符,若有返回索引值,没有则引发异常。
网友评论