领域:运维 网站 游戏 搜索 嵌入式 C/S软件

Openstack二次开发

绿色版:Portable Python

面向对象、解释型动态语言

env python 切换版也好使,自己寻找系统中python安装路径

  1. #!/usr/bin/env python
  2. print 'Hello world!'

修改为可执行文件

  1. chmod +x test.py # 脚本文件添加可执行权限
  1. #执行
  2. python name.py
  1. chmod 755 name.py
  2. #执行
  3. ./name.py

编程风格

1、缩进统一

Python的代码块不使用大括号({})来控制类,函数以及其他逻辑判断。python最具特色的就是用缩进来写模块。

缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量

运算符 + - * /    平方 2的8次方 2**8

注释

python中单行注释采用 # 开头。

python 中多行注释使用三个单引号(''')或三个双引号(""")。

导入 import

  1. #全部导入 导入OS整个模块
  2. import os
  3. #导入部分 导入sys模块中mokuainame
  4. form sys import mokuainame
  5. #别名
  6. import os as biemingname

注意tab window 和Linux不一致

下一节 流程控制

百度贴吧获取图片爬虫

  1. #!/usr/bin/python
  2. #-*- coding: UTF-8 -*-
  3. import urllib
  4. import re
  5.  
  6. def getHtml(url):
  7. page = urllib.urlopen(url)
  8. html = page.read()
  9. return html
  10.  
  11. def getImg(html):
  12. reg = r'src="(.+?\.jpg)" pic_ext'
  13. imgre = re.compile(reg)
  14. imglist = re.findall(imgre,html)
  15. x = 0
  16. for imgurl in imglist:
  17. urllib.urlretrieve(imgurl,'%s.jpg' % x)
  18. x+=1
  19.  
  20. html = getHtml("http://tieba.baidu.com/p/2460150866")
  21.  
  22. print getImg(html)

构造函数

__init__   析构函数: __del__

面向对象

可以多继承

__private_attrs:两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时self.__private_attrs

CGI

httpd路径 /etc/httpd/conf/httpd.conf  添加CGI脚本格式修改路径都在这里 ps html 头部下面一定要有空格

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3.  
  4. print "Content-type:text/html"
  5. print # 空行,告诉服务器结束头部
  6. print '<html>'
  7. print '<head>'
  8. print '<meta charset="utf-8">'
  9. print '<title>Hello Word - 我的第一个 CGI 程序!</title>'
  10. print '</head>'
  11. print '<body>'
  12. print '<h2>Hello Word! 我是来自菜鸟教程的第一CGI程序</h2>'
  13. print '</body>'
  14. print '</html>'

2、加#-*- coding: UTF-8 -*-还是乱码

  1. #解决加-*- coding: UTF-8 -*-还是乱码
  2. import sys
  3. reload(sys)
  4. sys.setdefaultencoding( "utf-8" )

1、Python 标识符

在python里,标识符有字母、数字、下划线组成。

在python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。

python中的标识符是区分大小写的。

以下划线开头的标识符是有特殊意义的。以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用"from xxx import *"而导入;

以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如__init__()代表类的构造函数。/2多行语句

Python语句中一般以新行作为为语句的结束符。

但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:

  1. total = item_one + \
  2. item_two + \
  3. item_three

语句中包含[], {} 或 () 括号就不需要使用多行连接符。如下实例:

  1. days = ['Monday', 'Tuesday', 'Wednesday',
  2. 'Thursday', 'Friday']

if...if else...else...

pass 过去吧 这段代码不执行

  1. if 1=1
  2. print ''
  3. else:
  4. pass #写pass 不执行了

去空格函数raw_input('input:').strip() #去掉前后空格

for 循环 continue break

while...else...

range 函数

python 文件处理
列表
元组
字典
函数
f=file("test.txt","r") #以Read(w(write))的方式打开文件
f.write("Tody is a good day\n")
f.write("You are right\n")
f.close() #保持关闭

字典是无序的
tab键不全 需要自己去网站弄 python本身没有

readlines() xreadlines() 区别

2.3以后不推荐使用xreadlines

http://www.oschina.net/question/252490_132790?sort=time

  1. with open('foo.txt', 'r') as f:
  2. for line in f:
  3. # do_something(line)

with 理解http://blog.csdn.net/suwei19870312/article/details/23258495

更好的处理读取文件的时候报异常

set(a)

把a列表转换成集合并且去重

http://www。pythontab。com/html/2013/pythonjichu_0227/260.html

a.difference(b) 求a里面有 b里面没有的

http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868193482529754158abf734c00bba97c87f89a263b000

zip()  map()

http://c.biancheng.net/cpp/html/1824.html

yield (返回迭代器) 和return 冲突,函数中只能使用其中一个

map()

a=rangge(100)

b=map(lambda x:x**2,a) #把a集合中的所有元素都求平方然后返回给b集合

lambda: http://www.cnblogs.com/wanpython/archive/2010/11/01/1865919.html

import Scipy #数学运算的包  开放平方什么的

python 内置函数

http://www.cnblogs.com/hongfei/p/3858256.html

Pickle 序列化 python语言之间内存之间,可以实现内存漂移,a机器挂掉了,把a的状态转移到b机器

json 序列化  跨平台 各种传输

Python2.6开始加入了JSON模块,无需另外下载,Python的Json模块序列化与反序列化的过程分别是 encoding(dumps)和 decoding(loads)

包管理工具PIP python 安装easy_install和pip

装饰器:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386819879946007bbf6ad052463ab18034f0254bf355000

python也有垃圾回收机制

__fangfaname(self)  前面两个下划线私有函数  外部不能调用

如果想调用

  1. p=Person("name",39)
  2. p._Person__fangfaname()

把方法内的局部变量变类变量

  1. class Dog:
  2.  
  3. def say(self):
  4. self.leibianliang=fangfaneibianliang #这样另外一个方法就可以调用了

面向对象继承

  1. class SchoolMember:
  2. school_name = 'Oldboy Linux edu.'
  3. def __init__(self, name, gender,nationality='CN'):
  4. self.name = name
  5. self.gender = gender
  6. self.nation = nationality
  7.  
  8. def tell(self):
  9. print 'Hi, my name is %s , I am from %s' %(self.name, self.nation)
  10.  
  11. class Student(SchoolMember):
  12.  
  13. def __init__(self,Name, Gender, Class , Score,Nation='US' ):
  14. SchoolMember.__init__(self,Name, Gender,Nation)
  15. self.Class = Class
  16. self.Score = Score
  17. #self.Name = name
  18.  
  19. def payTuition(self,amount):
  20. if amount < 6499:
  21. print 'Get the fuck off...'
  22. else:
  23. print 'Welcome onboard!'
  24. class Teacher(SchoolMember):
  25. def __init__(self,Name, Gender, Course , Salary,Nation='FR'):
  26. SchoolMember.__init__(self,Name, Gender,Nation)
  27. self.Course = Course
  28. self.Salary = Salary
  29.  
  30. def teaching(self):
  31. print 'I am teaching %s, i am making %s per month !' %(self.Course, self.Salary)
  32.  
  33. S1 = Student('WangFanHao', 'Male', 'Python','C+','JP')
  34. S1.tell()
  35. S1.payTuition(4999)
  36.  
  37. S2 = Student('ShitTshirt', 'Male', 'Linux','B')
  38. S2.tell()
  39. S2.payTuition(6500)
  40.  
  41. T1 = Teacher('Alex','Male', 'C++', 5000)
  42. T1.tell()
  43. T1.teaching()
  44.  
  45. #SchoolMember

【知识碎片】python 篇的更多相关文章

  1. 《码农周刊》干货精选(Python 篇)

    <码农周刊>已经累计发送了 38 期,我们将干货内容进行了精选.此为 Python 篇. <码农周刊>往期回顾:http://weekly.manong.io/issues/ ...

  2. 读书笔记——《谁说菜鸟不会数据分析—Python篇》

    最近刚读完一本新书,关注的公众号作者出的“谁说菜鸟不会数据分析—Python篇”,话说现在很多微信公众号大牛都在出书,这貌似是一个趋势.. 说说这本书吧,我之前看过一些网文,对于数据分析这一块也有过一 ...

  3. GitHub 上适合新手的开源项目(Python 篇)

    作者:HelloGitHub-卤蛋 随着 Python 语言的流行,越来越多的人加入到了 Python 的大家庭中.为什么这么多人学 Python ?我要喊出那句话了:"人生苦短,我用 Py ...

  4. IOS开发基础知识碎片-导航

    1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...

  5. C++混合编程之idlcpp教程Python篇(9)

    上一篇在这 C++混合编程之idlcpp教程Python篇(8) 第一篇在这 C++混合编程之idlcpp教程(一) 与前面的工程相比,工程PythonTutorial7中除了四个文件PythonTu ...

  6. C++混合编程之idlcpp教程Python篇(8)

    上一篇在这 C++混合编程之idlcpp教程Python篇(7) 第一篇在这 C++混合编程之idlcpp教程(一) 与前面的工程相似,工程PythonTutorial6中,同样加入了四个文件:Pyt ...

  7. C++混合编程之idlcpp教程Python篇(7)

    上一篇在这 C++混合编程之idlcpp教程Python篇(6) 第一篇在这 C++混合编程之idlcpp教程(一) 与PythonTutorial4工程相似,工程PythonTutorial5中,同 ...

  8. C++混合编程之idlcpp教程Python篇(6)

    上一篇在这 C++混合编程之idlcpp教程Python篇(5) 第一篇在这 C++混合编程之idlcpp教程(一) 工程PythonTutorial4中加入了四个文件:PythonTutorial4 ...

  9. C++混合编程之idlcpp教程Python篇(5)

    上一篇在这  C++混合编程之idlcpp教程Python篇(4) 第一篇在这 C++混合编程之idlcpp教程(一) 与前面的工程相似,工程PythonTutorial3中,同样加入了三个文件:Py ...

  10. jQuery学习笔记 - 基础知识扫盲入门篇

    jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...

随机推荐

  1. Swagger实践和总结

    Swagger学习和实践 最近安装并使用了一下Swagger-ui.Swagger-editor和Swagger-codegen,感觉还不错. Swagger 是一个规范和完整的框架,用于生成.描述. ...

  2. ARM的编程模式和7种模式

    ARM采用的是32位架构 ARM阅读 --Byte:        8   bits --Halfword:  16  bits(2 byte)  半字 --Word:       32  bits( ...

  3. 集合中的工具类Collections和Arrays

    集合框架的工具类: Collections: 方法sort(): List<String> list = new ArrayList<String>();        lis ...

  4. L142

    keep half an eye on something分神留意splash out随意花钱 大肆挥霍half a mind有想做某事go Dutch v. 各自付帐,打平伙chance in a ...

  5. Illumina Fastq Q-score

    Illumina Nextseq500 Miseq HiseqXten 测序仪 Q-score均采用下面的编码格式,仅作简要介绍. Q-score Q-score 在fastq中每个序列的第4行,代表 ...

  6. Java IO流读写文件的几个注意点

     平时写IO相关代码机会挺少的,但却都知道使用BufferedXXXX来读写效率高,没想到里面还有这么多陷阱,这两天突然被其中一个陷阱折腾一下:读一个文件,然后写到另外一个文件,前后两个文件居然不 ...

  7. 【转】C# Socket编程(5)使用TCP Socket

    [转自:https://www.cnblogs.com/IPrograming/archive/2012/10/18/CSharp_Socket_5.html] TCP 协议(Transmission ...

  8. js插件大全 jquery插件大全

    CocoaUI - 一个强大的 iOS UI 框架 http://www.cocoaui.com/ tab,slider,轮播不错的说 http://www.superslide2.com/index ...

  9. font-face自定义字体使用方法

    今天闲的蛋疼小七来聊一聊关于css3的font-face属性的使用方法: 首先应该好多人没用过这个属性,那只能说你们的设计师还是有人性的, 一旦电脑系统没有的特殊字体或者你设计师故意装13为难你就需要 ...

  10. ORMLite的使用

    首先需要下载core和android两个jar http://ormlite.com/releases/ 然后拷贝到libs文件夹下并且添加为库 具体的使用看标程: School.java packa ...