Python中一些经常用到的概念:
1、在Python中是没有常量的概念,换句话说在Python各种所有量都是可以更改的,规定将项定义为常量的量都定义为大写,eg:CONSTOF = "this is a const"。
2、在Python中我们导入一个三方库可以在dos下输入 >>\user\administrator\pip install 库名
3、几个常用的库的语句
import os os.system("ipconfig") # 在windows下查看ip地址 res = os.system("ipconfig") # 返回程序的结果 res = os.open("ipconfig").read() # 返回程序的执行的结果,可以print(res)打印出来 import sys sys.path # 打印出环境变量的,通常我们会将需要按照的库放在site-packages或dist-packages下
4.pyc文件,就是我们在一个文件中导入另一个文件中编译出来的文件,供解释器使用,我的理解就是一个库文件在供别的文件时,为方便解释器调用生成的。Python3中放在一个缓存文件夹中。
5、在针对字符输出操作时,少使用“+”连字符,因为它会降低程序效率
6、字符类型的操作:
7、针对列表的操作:(列表其实就是我们常说的数组)
List = ["Beijing", "Shanghai", "Nanchang", "Wuhan", "Nanchang", "Changsha", "Shenzhen"] List.insert(2, "6") # 将列表的第二个元素中变为6,每次只能插入一个字符 List.insert(5, "Tianjing") # 在列表的第5个元素变为Tianjing List.append("Taiwan") # 在列表的末端加上taiwan元素 List.remove("Shanghai") # 在列表中移除一个元素,在python中还有del,对于各个都可以删除 List.index("Nanchang") # 返回列表中Nanchang所在的索引位置 # 对于删掉整个列表中指定的字符的程序可以这么写 cnt = List.count("Nanchang")) # 返回在列表中有多少个“Nanchang” List.count("Nanchang") # 表示在列表中有多个Nanchang字符 List1 =["Hangzhou", "234", "23", "新疆"] # 在List列表后再加上一个一个新的列表List1 List.extend(List1) List.reverse() # 将原来的列表反转 List.pop(2) # 指定下标进行列表的删除,删除第三个元素 for i in range(cnt): List[List.index("Nanchang")] = "Wuhan" List.clear() # 删除掉整个列表
在每句的后面加上一句print就可以看出列表在整个过程的变化,其结果如下
[‘Beijing‘, ‘Shanghai‘, ‘6‘, ‘Nanchang‘, ‘Wuhan‘, ‘Nanchang‘, ‘Changsha‘, ‘Shenzhen‘] [‘Beijing‘, ‘Shanghai‘, ‘6‘, ‘Nanchang‘, ‘Wuhan‘, ‘Tianjing‘, ‘Nanchang‘, ‘Changsha‘, ‘Shenzhen‘] [‘Beijing‘, ‘Shanghai‘, ‘6‘, ‘Nanchang‘, ‘Wuhan‘, ‘Tianjing‘, ‘Nanchang‘, ‘Changsha‘, ‘Shenzhen‘, ‘Taiwan‘] [‘Beijing‘, ‘6‘, ‘Nanchang‘, ‘Wuhan‘, ‘Tianjing‘, ‘Nanchang‘, ‘Changsha‘, ‘Shenzhen‘, ‘Taiwan‘] [‘Beijing‘, ‘6‘, ‘Nanchang‘, ‘Wuhan‘, ‘Tianjing‘, ‘Nanchang‘, ‘Changsha‘, ‘Shenzhen‘, ‘Taiwan‘] 2 [‘Beijing‘, ‘6‘, ‘Nanchang‘, ‘Wuhan‘, ‘Tianjing‘, ‘Nanchang‘, ‘Changsha‘, ‘Shenzhen‘, ‘Taiwan‘, ‘Hangzhou‘, ‘234‘, ‘23‘, ‘新疆‘] [‘新疆‘, ‘23‘, ‘234‘, ‘Hangzhou‘, ‘Taiwan‘, ‘Shenzhen‘, ‘Changsha‘, ‘Nanchang‘, ‘Tianjing‘, ‘Wuhan‘, ‘Nanchang‘, ‘6‘, ‘Beijing‘] [‘新疆‘, ‘23‘, ‘Hangzhou‘, ‘Taiwan‘, ‘Shenzhen‘, ‘Changsha‘, ‘Nanchang‘, ‘Tianjing‘, ‘Wuhan‘, ‘Nanchang‘, ‘6‘, ‘Beijing‘] [‘新疆‘, ‘23‘, ‘Hangzhou‘, ‘Taiwan‘, ‘Shenzhen‘, ‘Changsha‘, ‘Wuhan‘, ‘Tianjing‘, ‘Wuhan‘, ‘Wuhan‘, ‘6‘, ‘Beijing‘] # -----------------------我是分割线------------------- """ 还有一些其他的操作,如List.copy(),但是值得注意的是List中可以嵌套多级列表,但是调用List2 = List.copy(),只会复制List中第一曾的列表,深入的层数列表之后只会copy地址。如果想完全的复制一份,需要导入官方库import copy,并且调用copy.deepcopy,其中的代码如下""" import copy List = ["Beijing", "Shanghai", [1, 2, 3, 4, 5], "Nanchang", "Changsha", "Shenzhen"] List1 = List.copy() # 利用列表的copy函数来赋值,只完全的复制了第一层,对于第二层及以上(以上的没验证)的只是复制了软链接(地址) List2 = List # 第一层是软链接,第二层及以上也还是软链接(地址) List3 = copy.deepcopy(List) # 完完全全的拷贝了一份List,跟之前的脱离了关系 print(id(List),id(List1),id(List2),id(List3)) # 打印出三种方式的变量地址 print("--------------------我是分割线--------------------------") List[0] = "Nanchang" print(List) print(List1) print(List2) print(List3) print(id(List),id(List1),id(List2),id(List3)) print("--------------------我是分割线--------------------------") List[2][0:2] = [7, 8] print(List) print(List1) print(List2) print(List3) print(id(List),id(List1),id(List2),id(List3))
上面的运行的结果如下所示,我们从中可以看出,在Python3中的三种不同的幅值方式,当我们在改变原始列表List中的元素时,其后List1,List2,List3的变化。其中List.copy()只是完全的复制了第一层的列表,对其深层的列表没有复制(只是赋值了地址),这样的好处就是可以大大减少深层的列表在存在大量数据的时候,赋值是的复杂性。而对于直接使用操作符“=”的赋值情况就是完全的复制了原始列表的地址,类似于C++里面的别名(引用),从变量的地址也可以看出,和之前的地址都是完全一样的。copy.deepcopy()就是完全的复制出了一份新的数据。不过我觉得这里命名的deepcopy(深拷贝)和C++里面的概念相反,(C++里对这种只是赋值值的认为是浅拷贝)。
14456264 14456776 14456264 14457928 --------------------我是分割线-------------------------- [‘Nanchang‘, ‘Shanghai‘, [1, 2, 3, 4, 5], ‘Nanchang‘, ‘Changsha‘, ‘Shenzhen‘] [‘Beijing‘, ‘Shanghai‘, [1, 2, 3, 4, 5], ‘Nanchang‘, ‘Changsha‘, ‘Shenzhen‘] [‘Nanchang‘, ‘Shanghai‘, [1, 2, 3, 4, 5], ‘Nanchang‘, ‘Changsha‘, ‘Shenzhen‘] [‘Beijing‘, ‘Shanghai‘, [1, 2, 3, 4, 5], ‘Nanchang‘, ‘Changsha‘, ‘Shenzhen‘] 14456264 14456776 14456264 14457928 --------------------我是分割线-------------------------- [‘Nanchang‘, ‘Shanghai‘, [7, 8, 3, 4, 5], ‘Nanchang‘, ‘Changsha‘, ‘Shenzhen‘] [‘Beijing‘, ‘Shanghai‘, [7, 8, 3, 4, 5], ‘Nanchang‘, ‘Changsha‘, ‘Shenzhen‘] [‘Nanchang‘, ‘Shanghai‘, [7, 8, 3, 4, 5], ‘Nanchang‘, ‘Changsha‘, ‘Shenzhen‘] [‘Beijing‘, ‘Shanghai‘, [1, 2, 3, 4, 5], ‘Nanchang‘, ‘Changsha‘, ‘Shenzhen‘] 14456264 14456776 14456264 14457928
8、索引的介绍
在Python中的索引和MATLAB这种解释性语言差不多,看列子。就拿上面的Lis列表来说,其内容如下
List = ["Beijing", "Shanghai", "Nanchang", "Wuhan", "Nanchang", "Changsha", "Shenzhen"] List[0:2] # 取List的前面两个元素,从左往右取头不取尾,在MATLAB中会是得到三个数,结果是[‘Beijing‘, ‘Shanghai‘] List[-3:-1] # 取List的最后两个元素,答案是[‘Nanchang‘, ‘Changsha‘] List[-3:] # 取List的最后三个元素,答案是["Nanchang", "Changsha", "Shenzhen"] List[::2] # 对整个List列表中,隔一个取一个元素,MATLAB语言中是最后元素表示步长,这里是最后一个元素表示步长,不写默认步长为1 List[1:5][3][4] # Python中可以一直的对列表进行切分,这表示先将List中的第2个元素到第6个元素之前的部分切分出来,然后再将其中的4(List[1]、List[2]、List[3]、List[4],可以理解为组成了新的临时列表)个元素中的第4个元素(也就是原来的List[4])提取出来,最后再对这个元素(字符串"Nanchang")的第5个字符,所以的出来的答案也就是‘h‘。
本文出自 “独家雨天” 博客,请务必保留此出处http://520sky.blog.51cto.com/9188727/1828229
原文地址:http://520sky.blog.51cto.com/9188727/1828229