设为首页 收藏本站
查看: 1120|回复: 0

[经验分享] 简明Python教程笔记整理

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-4-25 12:37:01 | 显示全部楼层 |阅读模式
  闲得没事干 又没心思深入研究其他东西 找了个折中的办法 看点新玩意儿 事实证明还是成功的 这次是Python 看的是http://sebug.net/paper/python/index.html 《简明Python教程》 只当扩充眼界 说实话 你让我Python搞个实际可用的东西 我依旧无能为力 悲催吧
  简单把笔记整理一下 跟我认知中相同的部分都略过了
  * Python中 字符串 '...' "..."是一样的 '''...'''  """..."""这样的三引号代表多行字符串
  * 自然字符串用 r"...\n" 这样\n不会被转义
  * Unicode字符串 u"..."
  * 在行末加入\ 表示下行继续 
  * 通过raw_input()获取输入
  * 注释语句用#
  * Python中的if语句 if-elif-else
  * Python中的while语句 while...else(可选)..
  * Python中的for语句 for...in.. 注意Python没有for(;;) for in类似于foreach/for(i:I)这样的形式
  扩展for i in range(1,5) ----[1,2,3,4]
  * 以上程序块不是通过{} 而是通过缩进 在判断语句后跟的是:即

if(...):
...
while(...):
...
else:
...  这样的形式
   * break终止循环 不会执行可选else中的内容
  * 函数定义 def function():
  * 代参数的 def function(a,b=5); #这个还带默认参数 默认参数必须在参数表最后 (a=5,b)这样是错误的
  * 全局变量 global x (否则内部变量都会被作为私有变量处理)
  一个函数定义例子:

def f(a,b=5,c=10)
f(3,7) ---> a=3,b=5,c=10
f(25,c=24) ---> a=25,b=5,c=24
f(c=20,a=100) ---> a=100,b=5,c=20
  * retun None(None就是常见的null)
  * 关于DocString 文档字符串
  def a():
  '''A........     
  ........
  .......。'''
  ....
  文档字符串是一个多行字符串(三引号)
  大写开始,句号结尾
  第二行为空行
  第三行开始是描述介绍
  当调用print a.__doc__时 会被打印出来
  * 使用sys模块
  import sys 或者 from sys import *(感觉类似java中引用package包)
  * 自己定义模块 mymodule.py (其实就是使用其他py)

def sayhi():
...
version='0.1'
   使用

import mymodule
mymodule.sayhi()
print mymodule.version
   * 数据结构部分
  * 列表list 
  用[]包含 [a,b,c] 有append del len(list) sort等方法
  * 元组 
  用()包含 (a,b,c) 空元组a为 a() 特别注意 元组 b 要写成 b(1,) 最后个逗号必须
  * 列表和元组的区别 列表是可变的 元组是固定的
  * 元组的打印方法
  print "&s is &d years old" % (name,age)

   (好吧 这个不是类似于C了么)
  * 数据字典 
  ab={a:1,
  b:2,
  c:3}
  取值方法 ab["a"]
  * 数据词典打印
  


for name,address in ab.items():
print "&s at &s" % (name,address)
   * 另一种打印
  


if "aaa" in ab: #检查是否存在
print ab["aaa"]
   * 序列 序列下标从0开始 0,1,2,3......
  下标支持负数 0,1,2........-3,-2,-1(最后一个为-1)
  * 序列切片操作 str[1:3] 1-3(这是下标 截取了1,2两个元素 末尾元素不在其中)
  其他一些切片str[:-1] str[1:] str[:]
  * 切片操作是copy了一个新的对象(不是赋值 赋值是产生一个参考,仍然指向同一个元素) (好吧 又来搞这个问题了)
  * Python中一切都是对象 一个整数也是一个对象
  * self参数 表示自己 定义函数时其实都有一个self 比如count(self) 当定义参数列表 最好第一个为self 之后为自己的 而无参也最好写个self
  self类比下类似于this
  * 初始化方法
  def __init__(self) 当类对象建立时会被执行
  同样可以类比构造函数
  * 同理还有__del__(self..) (析构)等方法
  * _aaa 表示这是一个私有变量(默认规则 当做命名规则吧 不是系统认定)
  * __aaa 声明一个私有变量 这个是系统认定的 不做声明时都是共有public的
  * 继承
  class Super
  class Chile(Super) 注意(...)其实是一个元组 也就是 可以多重继承 class a(b,c,d)
  * 输入输出 raw_input / print
  * 文件 
  f = file("urlPath",'w') #'w'是模式 常用的有'r'读(默认),'w'写,'a'追加
  f.write(...)
  f.close()
  f.readline() 都是常用方法
  * 存储器pickle 有一个cPickle 是用c写的 速度上更快
  这是一个持久化对象 使用方法:
  


import cPickle as p
shoplist=['apple','mango','banana']
f=file(shoplist,'w')
p.dump(shoplist,f) #存操作
store=p.load(f) #取操作
   * Python中的异常处理
  


try:
...
except EOFError:
...
except:
...
finally:
...
else:
...
   其实是一样的
  * 抛出异常 raise xxxExeption() (等同于java的throw)
  后面的部分就是系统模块的东西 基本就是个list
  * 命令行参数 sys.argv 该列表中至少包含一个项目,即当前运行程序的名称,作为sys.argv[0]
  * os模块
  os.sep 路径分割符(根据系统各不相同 如linux是'/' windows是'\\')
  os.name 平台名称 windows--nt linux--posix
  os.getcwd 当前目录(Python脚本工作目录)
  os.getEnv os.putEnv 环境变量
  os.listdir 返回所有目录和文件
  os.remove 删文件
  os.sytem 运行shell
  os.linesep 终止符 windows--'\r\n' linux--'\n'  mac--'\r'
  os.isfile os.isdir 是否为文件/目录
  os.path.split 返回目录名和文件名 例如 c:\\abc\bc\abc.txt 返回c:\\abc\bc 和 abc.txt
  * Python中的更多内容
  * 特殊方法
  比如 __init__ , __del__
  还有 __getitem__() 使用x[key]索引操作
  __str__() 即toString
  __lt__(self,other) 小于操作 compare?
  __len__(self) 序列对象内置的len方法
  * 列表综合
  得到一个新的列表 包含原列表中所有大于2的元素 将其乘2后存储
  


listone=[2,3,4]
listtwo=[2*i for i in listone if i>2]
   最终得到listtwo是[6,8]
  * 函数中接收元组,列表(作参数)
  def(a,*b)
  其中*b就是一个元组 所有多余的参数都被认为是元组b中的元素
  def(a,**b)
  **b表示字典 所有多余参数被认为是key/value 放在b中
  * lambda形式
  用于创建新的函数对象,并在运行时返回他们
  


def make_repeater(n):
return lambda s:s*n #跟一个表达式 并且只能跟表达式
twice = make_repeater(2)
print twice('word')
print twice(5)
   打印结果是 wordword和10
  
  lambda表达式不懂 求科普
  * exec和eval
  吐槽:js中听过这两个强大的东西
  exec 执行存储在字符串或文件中的Python语言
  exec 'print "aaa"' 输出 aaa
  eval 计算存储在字符串中的有效表达式
  eval ('2*3') 输出 6
  * assert 用于声明某个条件是真的
  当assert失败,引发一个AssertionError
  assert也不是非常了解 求科普
  * repr 取得对象的规范字符串表示 比如取得打印时的样子
  反引号也有同样的作用`i`
  一般的 有eval(repr(object))==object
  同样这里的结果可以通过__repr__设置
  附件是笔记 用notepad++写的 为了有语法高亮着色 保存成py文件了 txt一样看

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-369142-1-1.html 上篇帖子: 学习python(入门篇) 下篇帖子: Python,how do you work
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表