资讯专栏INFORMATION COLUMN

Python学习笔记

amuqiao / 1313人阅读

摘要:学习笔记起始结束步长步长可以为负数,要求结束起始倒序相乘强制转成元组,不可变的,可作为的或者函数的多个返回值可用函数效果为插入到,找到返回,找不到返回找到返回,找不到返回,并且插入键值对,返回列表返回迭代器导入赋值序列解包三元运算如果为执

Python学习笔记 1.List

[起始:结束:步长]  步长可以为负数,要求结束>起始  
倒序 a = b[::-1]  
相乘 [42] * 3 = [42, 42, 42]  
强制转成list list("abc") = ["a", "b", "c"]  
元组,不可变的list,(2,5,6)可作为dict的key或者函数的多个返回值  
可用函数 max(a) min(a) len(a) del a[2]  

method:

append & pop  
L.reverse()  
L.count(item)  
L.insert(5, item)  效果为item插入到L[5]  
L.sort()  
L2 = sorted(L1)  
L.sort(cmp, key=len, reverse=True)  

2.string

something about formatting...

method:

find,join,split,strip  
replace  
str.replace(ori, new)

3.dict

del d[key]

method:

pop & popitem
pop(key) return value,del item
popitem() return (key, value), del item
get & setdefault
get(key, defaultValue) 找到key返回value,找不到返回defaultValue
setdefault(key, defaultValue)找到key返回value,找不到返回defaultValue,并且插入键值对(key,defaultValue)
items()  keys()  values() 返回列表
iteritems()  iterkeys()  itervalues()  返回迭代器

for key, value in sorted(dict.items(), key=lambda x:x[1], reverse=False)
    print key + "	" + value
4.导入
import xxx
from xxx import  yyy, zzz
import xxx as x
from xxx import yyy as y
5 赋值
#序列解包
x,y = y,x
key, value = d.popitem()
6.if and for

三元运算 a if b else c 如果b为true执行a否则c

while xxx:
    pass

for item in xrange(100):
    pass
# xrange(n) == [0,1,...,n-1]

一些迭代方式

#1.并行迭代
names = ["A", "B", "C"]
ages = [12, 55, 33]
for name, age in zip(names, ages):
    pass
#zip 取最短的list
#2. 编号迭代:
names = ["A", "B", "C"]
for index, item in enumerate(names):
    pass

#break-else
for item in dict:
    if xxxx:
        break #find something and break the loop
else:
    pass # didn"t find
7.函数&参数
def xxx(a):
    "this is a introduction for xxx"
    pass
#函数的注释 xxx.__doc__ == xxx.func_doc== "this is a introduction for xxx"

#指定参数
def xxx(arg1="a", arg2="b"):
    pass

#收集参数
def xxx(x, y, z=3, *t, **d):
    pass
# *t    接收剩余的未指定的参数,组成元祖
# **d  接收剩余的指定的参数,组成dict

#函数内修改全局变量
x = 1 #global val
def change_global():
    global x
    x += 1
#函数内局部变量名字会覆盖全局变量,调用全局变量时应用global()["val_name"]

map() 接受一个单参数函数,和序列作为参数  
filter() 接受一个bool返回型的单参数函数 和序列,留下序列中true的值
reduce()接受一个双参数函数 和序列,依次迭代下去
lambda x,y:x+y

8.面向对象
__metaclass__ = type #使用新式类
class Person:
    def setName(self, name):
        self.name = name
    def getName(self):
        return self.name
    def __inaccessible(self):
        #__开头方法表示私有
        pass
    member = 0 
    def init(self):
        Person.member += 1  #所有实例共享变量,注意区别于self.member += 1

# something about superClass
class Filter:
    def init(self):
        self.blocked = []
    def filter(self, sq):
        return [x for x in sq if x not in self.blocked]

class SPAMFilter(Filter): #SPAMFilter is subClass of Filter
    def init(self): # rewrite init()
        slef.blocked = ["aa"]

#查看一个类是否是另一个类的子类
issubclass(SPAMFilter, Filter)
#查看一个instance是否属于一个类
isinstance(f, Filter)
#查看一个类的基类们 
SPAMFilter.__bases__
#查看一个对象属于哪个类
f.__class__

#多个superClass
class Test(Class1, Class2):
    pass
# Test 继承了Class1和2,其中Class1的优先级高(覆盖Class2的方法)
9.模块

__name__字段在主程序中为__main__在导入的模块中显示为模块的名字

# hello.py
def hello():
    print "hello world!"
def test():
    hello()

if __name__ == "__main__":
    #如果我是主函数,则从这里运行,否则作为被导入的模块,以hello.test()的形式被调用
    test():

导入自己的模块

# python解释器一般寻找模块的路径
import sys
print sys.path
# 添加新路径
sys.path.append("xxx dir")

导入包

# 假设有如下结构的包drawing
# /drawing/
# /drawing/__init__.py
# /drawing/a.py
# /drawing/b.py
import drawing
#只能使用__init__.py
import drawing.a
#可使用drawing.a.xxx()
from drawing import a, b
#可直接使用a.xxx()

探索包与模块
dir()
__all__
help()
__doc__
__file__

10.文件IO,异常 11.test,config,log

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/45403.html

相关文章

  • ApacheCN 人工智能知识树 v1.0

    摘要:贡献者飞龙版本最近总是有人问我,把这些资料看完一遍要用多长时间,如果你一本书一本书看的话,的确要用很长时间。为了方便大家,我就把每本书的章节拆开,再按照知识点合并,手动整理了这个知识树。 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=200); 贡献者:飞龙版...

    刘厚水 评论0 收藏0
  • SegmentFault 技术周刊 Vol.30 - 学习 Python 来做一些神奇好玩的事情吧

    摘要:学习笔记七数学形态学关注的是图像中的形状,它提供了一些方法用于检测形状和改变形状。学习笔记十一尺度不变特征变换,简称是图像局部特征提取的现代方法基于区域图像块的分析。本文的目的是简明扼要地说明的编码机制,并给出一些建议。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 开始之前,我们先来看这样一个提问: pyth...

    lifesimple 评论0 收藏0
  • ApacheCN 编程/大数据/数据科学/人工智能学习资源 2019.6

    摘要:请回复这个帖子并注明组织个人信息来申请加入。权限分配灵活,能者居之。数量超过个,在所有组织中排名前。网站日超过,排名的峰值为。导航归档社区自媒体平台微博知乎专栏公众号博客园简书合作侵权,请联系请抄送一份到赞助我们 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=...

    Bmob 评论0 收藏0
  • 学习笔记 | HTML 基本结构和基本标签 ——前端学习第一步!

    摘要:基本结构语言中,一个页面是由四个部分组成文档声明标签对标签对标签对图示文档声明这是一个文档声明,表示这是一个页面。标签标签表示页面内容的范围。 HTML HTML ...

    sPeng 评论0 收藏0
  • ApacheCN 学习资源汇总 2019.3

    摘要:主页暂时下线社区暂时下线知识库自媒体平台微博知乎简书博客园合作侵权,请联系请抄送一份到特色项目中文文档和教程与机器学习实用指南人工智能机器学习数据科学比赛系列项目实战教程文档代码视频数据科学比赛收集平台,,剑指,经典算法实现系列课本课本描述 【主页】 apachecn.org 【Github】@ApacheCN 暂时下线: 社区 暂时下线: cwiki 知识库 自媒体平台 ...

    array_huang 评论0 收藏0

发表评论

0条评论

amuqiao

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<