python中的相关帮助命令

假设s是一个字符串,

那么dir(s)可以列出字符串对象的所有属性(方法也是函数属性),其中有下划线的部分与类重 载有关,用来表示python实现细节,没有下划线的属性是对象可以调用的方法。查询具体的函数用法可以使用help(s.replace)的方式

文档字符串:module.class.method._doc__可以查看模块的文档注释,自己敲代码的时候也可以如此编写可查看的注释文档。当然也可以使用help方法。

字符串相关:

1,python中字符串可以进行逆向索引,相乘表示重复

2,可作用于多种类型的通用型操作都是以内置函数或表达式的形式出现的【例如,len(x),x【0】】;但是类型特定的操作是以方法调用的形式出现的。如s.upper()

3,python中字符串可以用单引号或者双引号包括,也允许在三个引号中包括多行字符串常量,采用这种方式的时候,所有行合并在一起,并在每一行的末尾加上换行符。

三个引号还可以用来构成python的文档字符串。

4,空白行在模块中被忽略,然而在交互模式下是结束标志。

4,字符串的模式匹配大多在re库中,可以进行正则匹配,查找等。

5,r用来路径中取消转义。

6,将列表转换为字符串的方法:''.join(l)

 python比较

“==”测试值的相等性,

is 测试对象的一致性

python中真和假的比较

python中将0是做为假,并且也把任意的空数据结构视为假,任何非空数据结构视为真

python中的集合类型(set)

和元祖一样,集合是唯一的、不可变的对象的一个无序集合,集合从外观上看起来就像是无值的字典,集合的项是无序的,唯一的,不可变的,因此,它们的行为和字典的键很像。

,字典可以视作键值的列表进行迭代
,表达式可以用括号括起来(),如果想建立单元素的元祖使用(,)
,文件最好的读取方法是使用迭代器,这种方式容易编写,并且对内存使用很好,而且较快。
,文件读取的内容是字符串,而不是对象。
,交互方式的回显能够显示给胡正确的字节内容,然而print语句则会解释内嵌行终止符来给予用户满意的结果。(一个使用repr实现,一个使用str实现)
,eval能把字符串当作可执行代码进行处理
,pickle模块能够直接在文件中存储几乎任何python对象的高级工具,不要求把字符串转换来转换去。
shelve则可以实现键值:对象的存储。
,赋值生成的是引用,而不是拷贝,此时考虑使用分片
10,map()能将对应函数作用于参数
11,不要指望在远处修改对象的函数会返回结果
list.sort();list().append()返回的对象都是None

python中实现循环迭代:

在python中实现循环迭代的方法从优到劣依次是:

列表解析>for(c实现)>while(python字节码实现)

可迭代对象:一代实现迭代协议,具有__next__方法的都可以认为是可迭代的,并且通过捕捉stopIteration异常来确定何时离开。

文件本身就是自己的迭代器,而列表以及其他的内置对象,则需要启用iter来启动迭代。迭代对象可通过next()来读取下一个值。

列表解析和for循环不同之处在于,前者产生一个新的列表对象。

sorted返回一个新的排序后的列表,而sort则是进行原地排序。

1,range返回一系列连续增加(当然也可以减少的数)

x='adjsdojfoeoi'
for i in range(0,len(x),2):
print(x[i],end=' ') print()
等价于
for c in x[::2]:
print(c,end=' ')

2,zip用于实现并行遍历

keys=['key1','key2','key3']
values=['val1','val2','val3']
l=list(zip(keys,values))
print(l) dic=dict(zip(keys,values))
print(dic)
等价于:
dic={}
for (k,v) in zip(keys,values):
dic[k]=v
print(dic)

3,enumerate产生偏移和元素

s=[0,1,2,3]
s='sdfkweoo'
for (offset,item) in enumerate(s):
print('offset:'+str(offset)+',item:'+str(item))

4,map把一个函数调用应用到传入的可迭代对象的每一项:list(map(str.upper,open('script.py')))

在python3.0中,zip,map,filter,reduce,字典的keys,values等返回可迭代的对象,而不是内存中的一个结果列表(在for循环中可以直接使用),如果需要这么一个列表,需要使用list(range(。。。))来产生一个真正的列表对象。

range对象可以支持多个迭代器,每一个迭代器能够记住自己的位置,而其他的zip,file类型,map,filter不支持多个活跃的迭代器。

 python中变量的作用域问题

和其他语言的作用域类似

LEGB原则:首先是本地,之后是函数内(如果有的话),之后全局,最后的python的内置变量。

全局变量:

(1)位于模块内部的顶层的文件名

(2)global:全局变量如果是在函数内部被赋值的话,必须通过声明。

(3)nonlocal:只能应用于一个嵌套的函数的作用域中的一个名称,而不是def之外的全局模块作用域。

函数参数

函数可以返回多个值,如果封装为元组,那么圆括号是可选的。、

*/**在函数定义的头部意味着收集任意数量的参数,**允许将关键字参数转换为字典。然而作为函数调用时,代表解包任意数量的参数。

关键字参数:出现在参数*args之后,所有这些参数都必须在调用中使用关键字语法来传递。

yield

生成器函数;生成器yields一个值,而不是返回一个值,yield语句挂起该函数并向调用者发送回一个值,但是,保留足够的状态以使得函数能够从它离开的地方继续。

生成器表达式,就像一般的列表解析一样,但是它们是括在圆括号而不是方括号里面的。

python模块儿相关话题

1,和导入相关的语句有:

import、import...from...、reload

2,_x在变量名前面加下划线,可以防止客户端使用from * 语句导入模块儿名时,将其中的变量名复制出去。有时候程序员对于不想用作其他用途的方法也添加一个下划线来减少命名冲突的可能性。

也可以在模块顶层将变量名的字符串变量赋给变量__all__

两种管理恰好相反,__all__是指出要复制的变量名,_x是指出不被复制的变量名。python模块会先寻找模块中的__all__列表,如果没有定义的话,from * 就会复制开头没有下划线的那些变量。

__name__每个模块都有一个__name__属性,如果文件是以顶层程序文件启动时,__name__就会设置为字符串“__name__“,如果仅是文件被导入,__name__就会改为客户端所了解的模块名。

这一点在测试的时候很有用。

 python的类:

python中的类中__()__的属性和运算符重载有关,因为python的运算符重载是提供特殊命名的方法来拦截运算,python语言提每种运算和特殊命名的方法之间,定义了固定的映射方法。

例如+对应__add__;打印对应__str__;几乎每个实际的类都会重载的方法是:__init__

对于python中的方法:

客户端调用的instance.method(args...)会被系统自动转换为如下的等价形式:class.method(instance,args...)

和类自省相关的方法:

instance.__class__提供了一个从实例到创建它的类的链接

反过来__name__,以及__bases__提供了超类的访问

内置的object.__dict__提供了一个字典能够呈现类的所有属性

@abstractmethod用于声明一个抽象方法(元类声明)。带有抽象方法的类是不能够继承的。

__dict__属性详细解释

模块的命名空间实际上是通过字典的形式实现的,并且可以通过内置属性__dict__显示这一点,属性点号运算实际上就是字典的索引运算,属性继承实际上就是搜索链接的字典而已。

>>> class super:
def hello(self):
self.data='spam' >>> class sub(super):
def hola(self):
self.data2='eggs'
x.__class__
<class '__main__.sub'>
>>> x.__base__
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
x.__base__
AttributeError: 'sub' object has no attribute '__base__'
>>> sub.__bases__
(<class '__main__.super'>,)
>>> super.__class__
<class 'type'>
>>> y=sub()
>>> x.hello()
>>> x.__dict__
{'data': 'spam'}
>>> x.__dict__['data']
'spam'
>>> x.hola()
>>> x.__dict__
{'data': 'spam', 'data2': 'eggs'}
>>> sub.__dict__.keys()
dict_keys(['__module__', 'hola', '__doc__'])
可见,每一个实例都有独立的命名空间字典,一开始是空的,随着调用和复制而进行增添。
属性其实是python的字典键,所有其实有两种方法可以进读取,通过点号运算和键的索引运算。
dir(className)将显示所有类的方法和系统属性
dir(object)将显示所有实例的方法,属性和系统属性
object__dict__.keys()显示对象的属性(无方法、以及系统属性)
其他属性:
__name__用来显示当前运行的类的名称,如果是顶层文件调用,那么显示main
__bases__用来显示超类的名称
__doc__是注释功能,可视化的文档字符串

python相关遗漏知识点补充的更多相关文章

  1. 【学习笔记】--- 老男孩学Python,day8 知识点补充 join,列表不能循环删除,深浅copy

    1. 补充基础数据类型的相关知识点 1. str. join() 把列表变成字符串 2. 列表不能再循环的时候删除. 因为索引会跟着改变 3. 字典也不能直接循环删除. 把要删除的内容记录在列表中. ...

  2. 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸

    类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...

  3. Day8 Python基础之遗漏知识点(六)

    1. 遗漏知识点 深.浅拷贝:   http://www.cnblogs.com/yuanchenqi/articles/5782764.html a=b: 浅拷贝: 深拷贝 集合(set) 集合的定 ...

  4. python day4 元组/字典/集合类知识点补充

    目录 python day4 元组/字典/集合类知识点补充 1. 元组tuple知识点补充 2. 字典dict的知识点补充 3. 基本数据类型set 4. 三元运算,又叫三目运算 5. 深复制浅复制 ...

  5. python 知识点补充

    python 知识点补充 简明 python 教程 r 或 R 来指定一个 原始(Raw) 字符串 Python 是强(Strongly)面向对象的,因为所有的一切都是对象, 包括数字.字符串与 函数 ...

  6. python遇到的知识点

    python遇到的知识点,记录一下.方便学习. 文件相关操作 查了资料,关于open()的mode参数: 'r':读 'w':写 'a':追加 'r+' == r+w(可读可写,文件若不存在就报错(I ...

  7. Python数据分析--Pandas知识点(三)

    本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) Python数据分析--Pandas知识点(二) 下面将是在知识点一, ...

  8. set集合,深浅拷⻉以及部分知识点补充

    set集合,深浅拷⻉以及部分知识点补充内容:1. 基础数据类型补充2. set集合3. 深浅拷⻉主要内容: ⼀. 基础数据类型补充⾸先关于int和str在之前的学习中已经讲了80%以上了. 所以剩下的 ...

  9. 计算机开放电子书汇总(包括二十多本python相关的图书教程)

    计算机开放电子书汇总(包括二十多本python相关的图书教程) https://github.com/it-ebooks/it-ebooks-archive 这个汇总包含了各种计算机相关的开放图书和文 ...

随机推荐

  1. python网络爬虫(2)回顾Python编程

    文件写入 def storFile(data,fileName,method='a'): with open(fileName,method,newline ='') as f: f.write(da ...

  2. 吴恩达深度学习:2.12向量化logistic回归

    1.不使用任何for循环用梯度下降实现整个训练集的一步迭代. (0)我们已经讨论过向量化如何显著加速代码,在这次视频中我们会设计向量化是如何实现logistic回归,这样酒桶同时处理m个训练集,来实现 ...

  3. 十二、LaTex中数学公式多行排版

  4. 从零开始学MySQL(一)

    如果您浏览过许多IT类的招聘职位,那么掌握数据库技能的重要性便不言自明了.因JAVA常常与MySQL所挂钩,因此兴起了写博客记载学习的念头,盼与君共勉.然,在进行MySQL语法的学习之前,我们无不面临 ...

  5. GDAL栅格矢量化

    在这里主要提供直接能用的栅格矢量化代码,这个函数中路径输入为QStrng,如果是其他类型的,请直接转成const char *: bool Polygonize(const QString& ...

  6. 9- 基于6U VPX的 XC7VX690T+C6678的双FMC接口雷达通信处理板 C6678板卡

    基于6U VPX的 XC7VX690T+C6678的双FMC接口雷达通信处理板   一.板卡概述 高性能VPX信号处理板基于标准6U VPX架构,提供两个标准FMC插槽,适用于电子对抗或雷达信号等领域 ...

  7. win 与Linux 的hosts文件地址

    win(phpstudy):C:/Windows/System32/drivers/etc/hosts linux:  /etc/hosts

  8. windows pip使用国内源

    在这里我使用清华源来做示范 win+R 打开用户目录%HOMEPATH%,在此目录下创建 pip 文件夹,在 pip 目录下创建 pip.ini 文件, 内容如下, 在pip文件夹里新建的pip.in ...

  9. 如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。否则,请按“取消(C)”按钮以防损坏

    ---恢复内容开始--- 解决办法:打开放此台Vmware虚拟机虚拟磁盘文件及配置文件存放的位置(也就是弹出提示窗口上的路径),删除后缀为.lck的文件夹 ---恢复内容结束---

  10. robotframework 使用Chrome手机模拟器两种方法

    Open Google Simulator1 ${device metrics}= Create Dictionary width=${360} height=${640} pixelRatio=${ ...