编辑本文html
目录python
(一)python环境准备linux
一、python安装web
二、虚拟环境安装正则表达式
三、修改pip镜像源算法
四、运行python程序数据库
(二)python语法编程
一、数据类型windows
二、数据操做(方法)数组
三、python理论特色
四、函数
五、类
六、框架、系统
七、多任务
八、装饰器
九、迭代器、生成器
正文
(一)python环境准备
一、python安装
python3安装在Linux上:http://www.javashuo.com/article/p-pqmoqjbx-dk.html
二、虚拟环境安装
安装虚拟环境:http://www.javashuo.com/article/p-pqmoqjbx-dk.html
三、修改pip镜像源
pip升级
四、运行python程序
Linux:解决nohup中不写入日志的问题
windows:在windows中:双击运行Python程序、后台运行Python程序
(二)python语法
一、数据类型
Python的八种数据类型
八种数据类型分别是:
number(数字)、string(字符串)、Boolean(布尔值)、None(空值)、
list(列表)、tuple(元组)、dict(字典)、set(集合)。
二、数据操做(方法)
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() # 按照行(\n,\r\n,\r)分割字符串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 # 交集
三、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
优势
一、简单————Python是一种表明简单主义思想的语言。阅读一个良好的Python程序就感受像是在读英语同样,尽管这个英语的要求很是严格!Python的这种伪代码本质是它最大的优势之一。它使你可以专一于解决问题而不是去搞明白语言自己。
二、易学————就如同你即将看到的同样,Python极其容易上手。前面已经提到了,Python有极其简单的语法。强制缩进易懂。
三、免费、开源————Python是FLOSS(自由/开放源码软件)之一。简单地说,你能够自由地发布这个软件的拷贝、阅读它的源代码、对它作改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。这是为何Python如此优秀的缘由之一——它是由一群但愿看到一个更加优秀的Python的人创造并常常改进着的。
四、高层语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
五、可移植性————因为它的开源本质,Python已经被移植在许多平台上(通过改动使它可以工做在不一样平台上)。若是你当心地避免使用依赖于系统的特性,那么你的全部Python程序无需修改就能够在下述任何平台上面运行。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/二、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平台!
六、解释性————这一点须要一些解释。一个用编译性语言好比C或C++写的程序能够从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程经过编译器和不一样的标记、选项完成。当你运行你的程序的时候,链接/转载器软件把你的程序从硬盘复制到内存中而且运行。而Python语言写的程序不须要编译成二进制代码。你能够直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,而后再把它翻译成计算机使用的机器语言并运行。事实上,因为你再也不须要担忧如何编译程序,如何确保链接转载正确的库等等,全部这一切使得使用Python更加简单。因为你只须要把你的Python程序拷贝到另一台计算机上,它就能够工做了,这也使得你的Python程序更加易于移植。
七、面向对象————Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。与其余主要的语言如C++和Java相比,Python以一种很是强大又简单的方式实现面向对象编程。
八、可扩展性————若是你须要你的一段关键代码运行得更快或者但愿某些算法不公开,你能够把你的部分程序用C或C++编写,而后在你的Python程序中使用它们。
九、丰富的库————Python标准库确实很庞大。它能够帮助你处理各类工做,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其余与系统有关的操做。记住,只要安装了Python,全部这些功能都是可用的。这被称做Python的“功能齐全”理念。除了标准库之外,还有许多其余高质量的库,如wxPython、Twisted和Python图像库等等。
十、规范的代码————Python采用强制缩进的方式使得代码具备极佳的可读性。
缺点
一、运行速度,有速度要求的话,用C++改写关键部分吧。
二、国内市场较小(国内以python来作主要开发的,目前只有一些web2.0公司)。但时间推移,目前不少国内软件公司,尤为是游戏公司,也开始规模使用他。
三、中文资料匮乏(好的python中文资料屈指可数)。托社区的福,有几本优秀的教材已经被翻译了,但入门级教材多,高级内容仍是只能看英语版。
四、构架选择太多(没有像C#这样的官方.net构架,也没有像ruby因为历史较短,构架开发的相对集中。Ruby on Rails 构架开发中小型web程序天下无敌)。不过这也从另外一个侧面说明,python比较优秀,吸引的人才多,项目也多。
python的应用场景
Web应用开发
操做系统管理、服务器运维的自动化脚本
科学计算
桌面软件
服务器软件(网络软件)
游戏
构思实现,产品早期原型和迭代
四、函数
五、类
六、框架、系统
七、多任务
八、装饰器
九、迭代器、生成器