目录
(一)python环境准备
1、python安装
2、虚拟环境安装
3、修改pip镜像源
4、运行python程序
(二)python语法
1、数据类型
2、数据操作(方法)
3、python理论特点
4、函数
5、类
6、框架、系统
7、多任务
8、装饰器
9、迭代器、生成器
正文
(一)python环境准备
1、python安装
python3安装在Linux上:https://www.cnblogs.com/andy9468/p/10437344.html
2、虚拟环境安装
安装虚拟环境:https://www.cnblogs.com/andy9468/p/10437344.html
3、修改pip镜像源
pip升级
4、运行python程序
Linux:解决nohup中不写入日志的问题
windows:在windows中:双击运行Python程序、后台运行Python程序
(二)python语法
1、数据类型
Python的八种数据类型
八种数据类型分别是:
number(数字)、string(字符串)、Boolean(布尔值)、None(空值)、
list(列表)、tuple(元组)、dict(字典)、set(集合)。
2、数据操作(方法)
https://blog.csdn.net/mdxiaohu/article/details/81811459
(2)string(字符串)操作方法
1)len(s) # 获取字符串长度
2)s.strip("*") # 去除s两端的*号,默认去除空格
3)s.split(",") # 按照,号分割字符串s为list
4)s.splitlines() # 按照行( , , )分割字符串s为list
5)"@".join(list1) # 用@号,将list1中的元素连接成字符串
6)s.replace(oldstr, newstr, count) # 在s字符串中,用newstr替换oldstr,共替换count次
7)s.startswith(s0) # 判断s字符串中是否是s0字串开始的
8)s.endswith(sn) # 判断s字串中是否是sn字串结尾的
9)s.encode("utf-8") # 将s字串按照utf-8格式编码为二进制流
10)b.decode("utf-8") # 将b二进制流按照utf-8解码为s字符串
(4)None(空值)
空值None是python里一个特殊的值。
None不能理解为0,因为0是有意义的,而None是一个特殊值。
(5)list(列表)——有序、数组、可重复、可变
1)添加
list1.append("endstr")
list1.insert(1,"second")
list1.extend( ["aa", "bb"] ) 或者 list1 + ["aa", "bb"]
2)修改
list1[3] = "newstr"
3)查询统计
list1[3]
list1[0:2]
"bbb" in list1 或者 "bbb" not in list1
list1.index("bbb") # 输出:bbb的下标
list1.count("bbb") # 输出:输出列表中有多少个bbb元素
len(list1) # 输出:输出列表中有多少个元素
4)删除
del list1[3]
list1.pop() 删除列表中最后一个元素,并返回这个元素。
list1.remove("bbb") 删除了左边第一个“bbb”,无返回值。
list1.clear() 清空列表
5)遍历
①不带下标遍历
for v in list1:
print(v)
②带下标遍历
for i, v in enumerate(list1):
print(i, v)
6)排序
list1.sort() 升序,改变原list1
list1.sort(reverse=True) 降序,改变原list1
list1.reverse() 反转顺序,改变原list1
或者
升序,不改变原list1
sorted(list1)
降序,不改变原list1
sorted(list1, reverse=True)
7)复制
list2=list1 浅拷贝
print(id(list1))
print(id(list2))
list3=list1.copy() 深拷贝
print(id(list1))
print(id(list3))
(6)tuple(元组)——有序、数组、可重复、不可变
(7)dict(字典)——无序、键值对、键名不可重复
1)增加
dict1["sex"]="boy"
2)修改
dict1["sex"]="girl"
3)查看统计
dict1["sex"] # 没有sex就会报错
ret = dict1.get("sex") # 没有sex,也不会报错
if ret == None:
print("没有")
else:
print("有")
4)删除
dict1.pop("sex") # 删除一个,并且返回
del dict1["sex"] # 删除一个
dict1.clear() # 全删
5)遍历
字典本身无法遍历,可以转成列表后遍历。
①遍历键k
for k in dict1.keys():
print(k)
或者
for k in dict1:
print(k)
②遍历值v
for v in dict1.values():
print(v)
③遍历键和值(k,v)
for k, v in dict1.items():
print(k,v)
延伸:dict和list比较:
(a)dict查找和插入的速度极快,不会随着k-v的增加而变慢。
(b)dict需要占用大量的内存,内存浪费多。
(8)set(集合)——无序,数组,无重复
1)增加创建
set1=set([1,2,3]) # 输出:{1,2,3}
set2=set((1,2,3,1,2)) # 输出:{1,2,3}
set3=set({1:"good",2:"nice"}) # 输出:{1,2}
set1.update([4,5,6]) # 输出:{1,2,3,4,5,6} update打碎插入
set1.update("haha") # 输出:{1,2,3,4,5,6,'h','a','h','a'} update打碎插入
set1.add(7) # 增加元素,add只能插入不可变元素
2)修改
3)查询
set集合没有下标索引,小标访问会报错。
4)删除
set1.remove(3)
5)遍历
①无下标遍历
for v in set1:
print(v)
②下标遍历
for i, v in enumerate(set1):
print(i,v)
6)并集和交集运算
bing1=set1 | set2 # 并集
jiao2 = set1 & set2 # 交集
3、python理论特点
Python的发音与拼写
Python的意思是蟒蛇,源于作者喜欢的一部电视剧 (C呢?)
Python的作者是Guido van Rossum(龟叔)
Python是龟叔在1989年圣诞节期间,为了打发无聊的圣诞节而用C编写的一个编程语言
Python正式诞生于1991年
Python的解释器如今有多个语言实现,我们常用的是CPython(官方版本的C语言实现),其他还有Jython(可以运行在Java平台)、IronPython(可以运行在.NET和Mono平台)、PyPy(Python实现的,支持JIT即时编译)
Python目前有两个版本,Python2和Python3,最新版分别为2.7.12和3.5.2,现阶段大部分公司用的是Python2
优点
1、简单————Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。
2、易学————就如同你即将看到的一样,Python极其容易上手。前面已经提到了,Python有极其简单的语法。强制缩进易懂。
3、免费、开源————Python是FLOSS(自由/开放源码软件)之一。简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。这是为什么Python如此优秀的原因之一——它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。
4、高层语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
5、可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台上面运行。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC、Symbian以及Google基于linux开发的Android平台!
6、解释性————这一点需要一些解释。一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的Python程序更加易于移植。
7、面向对象————Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。
8、可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
9、丰富的库————Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。
10、规范的代码————Python采用强制缩进的方式使得代码具有极佳的可读性。
缺点
1、运行速度,有速度要求的话,用C++改写关键部分吧。
2、国内市场较小(国内以python来做主要开发的,目前只有一些web2.0公司)。但时间推移,目前很多国内软件公司,尤其是游戏公司,也开始规模使用他。
3、中文资料匮乏(好的python中文资料屈指可数)。托社区的福,有几本优秀的教材已经被翻译了,但入门级教材多,高级内容还是只能看英语版。
4、构架选择太多(没有像C#这样的官方.net构架,也没有像ruby由于历史较短,构架开发的相对集中。Ruby on Rails 构架开发中小型web程序天下无敌)。不过这也从另一个侧面说明,python比较优秀,吸引的人才多,项目也多。
python的应用场景
Web应用开发
操作系统管理、服务器运维的自动化脚本
科学计算
桌面软件
服务器软件(网络软件)
游戏
构思实现,产品早期原型和迭代
4、函数
5、类
6、框架、系统
7、多任务
8、装饰器
9、迭代器、生成器