Python是一种面向对象的脚本语言,自20世纪90年代初诞生至今,已经逐渐被广泛应用于处理系统管理任务、爬虫、web编程、自动化测试、运维等方面。他是有CWI(阿姆斯特丹国家数学和计算机科学研究所)的研究员Guido van Russum开发的一种高级脚本编程语言。
1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC语言的一种继承,从中汲取了大量语法,并从系统编程语言Modula-3借鉴了错误处理机制。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《蒙提·派森的飞行马戏团》(Monty Python's Flying Circus)。
Python3 中有六个标准的数据类型:
整数在Python中以int表示。
int_value = 3 print(type(int_value)) 输出:<class 'int'>
在Python3中,小数类型的即是浮点数,以float
float_value = 3.1415826 print(type(float_value)) 输出: <class 'float'>
在Python3中,布尔类型的数据类型分为True、False
true_flag = True # 定义一个名为true_flag的bool值 false_flag = False # 定义一个名为false_flag的bool值 print(type(true_flag)) # 输出true_flag 类型为<class 'bool'> print(type(false_flag)) # 输出false_flag 类型为<class 'bool'>
复数的概念是吧一个数字分成实部和虚部两个部分,用数字表示成a+bi的形式,其中a和b是实数,分别称为复数的实部和虚部,i是虚数单位,且满足i^2=-1。在Python中,通常以j作为虚数单位
complex_value = 3+4j # 定义一个名为complex_value复数 print(type(complex_value)) # 输出complex_value的类型为 <class 'complex'>
字符串是有字符所组成的一种序列。换句话说,字符串是哟个包含字符对象的有序集合,按从左到右的顺序排列,并按照相对位置进行访问。
name = "Chris Paul" # 定义一个名为name的字符串 print(type(name)) # 输出name的类型为<class 'str'> print(len(name)) # 获取字符串name的长度 10 print(name[0]) # 获取name的索引为0的字符: C print(name[2:5]) # 获取字符串name 索引为2至4的字符 ris print(name.index("P")) # 获取P在字符串下的索引值,如果不存在会抛异常 print(name.split()) # 将字符串name以空格进行拆分,输出列表 ['Chris', 'Paul'] print(name.replace("Paul","Bosh")) # 将字符串中的Paul替换成Bosh 输出:Chris Bosh print([char for char in name]) # 将字符串name进行迭代,将每个字符作为元素填入列表: ['C', 'h', 'r', 'i', 's', ' ', 'P', 'a', 'u', 'l'] print(" ".join(["Chris","Paul"])) # 将列表中的元素以" "作为连接符进行拼接 Chris Paul
列表是一种具备容器功能的类型,其中可以放入任何类型的对象,因此可以视为Python语言最通用的序列。由于列表也是序列,因此索引的方式同字符串,亦是通过偏移量对列表元素进行访问。
players = ["Chris Paul", 'Kobe Bryant', "Yao Ming"] # 定义名为players的篮球运动员列表 print(type(players)) # 输出players的数据类型 <class 'list'> print(len(players)) # 输出列表players的长度 3 print(players[2]) # 输出索引为2的值 Yao Ming 如果索引值超过列表长度-1时,会抛异常 players[2]="Lebron James" # 修改索引值为2的元素的值为 Lebron James 如果索引值超过列表长度会抛异常 players.append("Stephen Curry") # 往列表players添加元素 Stephen Curry players.insert(0,"Stephen Nash") # 往列表players的索引为0的位置添加元素Stephen Nash players.pop(1) # 删除列表中索引为1的元素 如果不填就默认最后一个 超过列表长度会抛异常 players.remove("Yao Ming") # 删除列表中Yao Ming的元素 如果元素不存在会抛异常 print('Yao Ming' in players) # 判断YaoMing是否在列表中 返回一个布尔值 True或者False
元组(tuple)与列表类似,都能存储任何类型的数据,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
在元素不可变这一特性上,元组跟字符串很像,然而字符串中的元素类型都只能是字符型,字符串不能存储字符型以外的数据,概括起来,元组具有可以存储不同类型的数据和元组内的元素是不可变的这两大特点。
mamba = ("Kobe Bryant", "1978年8月23日","2020年1月26日") # 定义一个名为mamba的元组 print(type(mamba)) # 输出元组mamba的数据类型 <class 'tuple'>
集合既不是序列也不是映射,集合用来记录某些无顺序关旭的不可变对象是否存在于其中,集合中不存在重复的元素。 基本功能是进行成员关系测试和删除重复元素。
kobe = set('kobe fans') james = set('james fans') print(type(kobe)) # <class 'set'> print(kobe - james) # a 和 b 的差集 {'b', 'o', 'k'} print(kobe | james) # a 和 b 的并集 {'e', 'k', 'f', 'a', 'n', 's', 'm', 'o', 'b', ' ', 'j'} print(kobe & james) # a 和 b 的交集 {'e', 'f', 'a', 'n', 's', ' '} print(kobe ^ james) # a 和 b 中不同时存在的元素 {'k', 'b', 'o', 'm', 'j'}
列表、元组都是序列类型的数据结构,所谓序列指的是其中的对象从0开始依序编号,有先后关系。现在介绍的字典是一种映射(mapping)类型的数据结构,其没有从左到右的顺序关系,也就是字典是无序的,所以不适用位置偏移量来当做索引进行取值。字典是以键值对的形式进行存储的,通过键便可以查找相对应的值。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
kobe = {"name":"Kobe Bryant","birth":"1978年8月23日", "sex":"male"} # 定义一个名为kobe的字典 print(type(kobe)) # 输出kobe的类型为 <class 'dict'> kobe.get("name") # 通过键获取相对应的值 如果不存在,返回None kobe["name"] # 通过键获取相对应的值 如果不存在,抛出异常 kobe["name"] = "Kobe Bean Bryant" # 如果键存在,则修改值 如果键不存在,则增加该键值对 kobe.pop("name") # 根据键删除键值对 如果键不存在,抛出异常 kobe.clear() # 清空键值对 kobe.keys() # 返回所有键的迭代对象 dict_keys(['name', 'birth', 'sex']) kobe.values() # 返回所有值的迭代对象 dict_values(['Kobe Bean Bryant', '1978年8月23日', 'male']) kobe.items() # 返回键值组成的元组的迭代对象 dict_items([('name', 'Kobe Bean Bryant'), ('birth', '1978年8月23日'), ('sex', 'male')]) print("name" in kobe) # 判断是否存在该键