1.3 Python数据类型
Python中拥有6大数据类型:number(数字)、string(字符串)、list(列表)、tuple(元组)、sets(集合)、dictionary(字典)。
1.3.1 数字
(1)数字类型
Python 3支持4种类型的数字:int(整数类型)、float(浮点类型)、bool(布尔类型)、complex(复数类型)。在Python3中可以使用type()函数来查看数字类型,如下所示。
a=1
b=3.14
c=True
print(type(a))
print(type(b))
print(type(c))
输出结果<class 'int'>
输出结果<class 'float'>
输出结果 <class 'bool'>
(2)Python3所支持的运算类型包括加法、减法、除法、整除、取余、乘法和乘方。
print((3+1)) #加法运算,输出结果为4 print((8.4-3)) #减法运算,输出结果为5.4 print(15/4) #除法运算,输出结果为3.75 print(15//4) #整除运算,输出结果为3 print(15%4) #取余运算,输出结果为3 print(2*3) #乘法运算,输出结果为6 print(2**3) #乘方运算,输出结果为8
1.3.2 字符串
1.字符类型
字符串就是在单引号、双引号和三引号之间的文字。单引号示例:print('welcome to hangzhou'),其中所有的空格和制表符都照原样保留。单引号与双引号的作用其实是一样的,但是当引号里包含单引号时,则该引号需使用双引号,例如:print("what's your name? ")。三引号可以指示一个多行的字符串,也可以在三引号中自由使用单引号和双引号,如下所示。
print('''Mike:Hi, How are you? LiMing:Fine, Thank you! and you? Mike:I'm fine, too! ''')
2.字符串的表示方式
如果要在单引号字符串中使用单引号本身,在双引号字符串中使用双引号本身,则需要借助于转义符(\),如下所示。
print('what\'s your name? ')
输出结果如下。
what's your name?
注意:在一个字符串中,行末单独的斜杠号表示下一行继续,而不是开始写新的一行(详见1.2.2节),另外可以使用双反斜杠(\\)来表示反斜杠本身,而\n表示换行符。
如果想要指示某些不需要使用转义符进行特别处理的字符串,那么需要指定一个原始字符串。原始字符串通过给字符串加上前缀r或R的方式指定,比如需要原样输出\n而不是令其换行,则代码如下。
print(r"Newlines are indicated by \n")
输出结果如下。
Newlines are indicated by \n
3.字符串的截取
字符串的截取格式如下所示。
字符串变量[start_index:end_index+1]
此处解释下为什么加1:字符串的截取从start_index开始,到end_index结束,也就是大家常理解的左闭右开,如下所示。
str='Lingyi' print(str[0]) #输出结果为L print(str[1:4])#输出结果为ing print(str[-1]) #输出结果为i
4.字符运算
尝试下面的代码:
num=1
string='1'
print(num+string)
此时,运行程序会报错,错误提示如下所示,为什么呢?
TypeError: unsupported operand type(s) for +: 'int' and 'str'
字符串(string)只是Python中的一种数据类型,下面的语句在赋值的时候右侧用了单引号,数据类型是字符串(string)。
string='1'
下面语句的数据类型为整型(integer)。
num=1
不同的数据类型之间是不能进行运算的,但是,不同数据类型可以相互转换,以上代码通过修改后就可以正常运行,修改后的代码如下。
num=1
string='1'
num2=int(string)
print(num+num2)
注意:“+”号用在字符串中间是连接符,用在数值中间是运算符:int()是将括号中的数值或者文本转换成整型数据类型。
运行后,即时窗口中打印的结果是2,如图1-15所示。
图1-15
四则基础运算如下。
a=1 b=2 c=a+b print(c)
因为相加的双方是数值型,此时“+”号是运算符,运行结果如下。
3
相加的双方是字符型数据,此时“+”号是连接符。
a=1 b=2 c='a'+'b' print(c)
运行结果如下。
ab
1.3.3 列表
(1)列表格式
Python列表是任意对象的有序集合,列表写在中括号[]里,元素之间用逗号隔开。这里的任意对象,既可以是列表嵌套列表,也可以是字符串,如下所示。
list=["Python",12, [1,2,3],3.14, True]
print(list)#运行结果为['Python', 12, [1, 2, 3], 3.14, True]
(2)列表的切片
每个list(list是笔者自定义的变量)中的元素从0开始计数,如下代码可以选取list中的第一个元素。
list=[1,2,3,4] print(list[0])
运行结果如下。
1
列表删除操作可以使用remove方法,只需要在变量名字后面加个句号就可以轻松调用,PyCharm有自动联想功能,选中目标方法或者函数,按【Tab】键即可快速键入,如图1-16所示。
图1-16
以下代码用于删除第3个元素,并用print将结果打印出来。其中remove方法用于删除列表的元素。
list.remove(3) print(list) # 运行结果是[1, 2, 4]
1.3.4 元组
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号()里,元素之间则用逗号隔开,如下所示。
tuple=['abc',76, 'ly',898,5.2] print(tuple[1:3])
运行结果如下。
[76, 'ly']
1.3.5 集合
集合(set)是一个无序不重复元素的序列,可以使用大括号{}或者set()函数创建集合。需要注意的是,一个空集必须使用set()函数创建而不能使用大括号{},因为大括号{}是用来创建空字典的,如下所示。
age={18,19,18,20,21,20} print(age)
运行结果如下。
{18,19,20,21}
1.3.6 字典
字典是一种可变容器模型,且可存储任意类型对象,用{}标识。字典是一个无序的键(key)值(value)对的集合,格式如下所示
dic = {key1 : value1, key2 : value2 }
接下来建立一个字典,代码如下。
information={ 'name':'liming', 'age':'24' } print(information)
运行结果如下。
{'name': 'liming', 'age': '24'}
其中name是一个key(键), liming是一个value(值)。
字典增加数据时,可以使用下面的方法。
information['sex']='boy' print(information)
运行结果如下。
{'name': 'liming', 'age': '24', 'sex': 'boy'}
字典删除数据时,可以使用del函数,代码如下。
del information['age'] print(information)
运行结果如下。
{'name': 'liming', 'sex': 'boy'}