`

python入门笔记(三)

阅读更多
#抽象
#判断函数是否可调用
callable(x)	#python2
hasattr(func.__call__)	#python3
#文档字符串
def square(x):
	'这是......'
	return x*x
print square.__doc__
help(square)

n=['a','b','c']
def change(n):
	n[0]='v'
print n	#['v','b','c']	#列表会被改变,此类情况需要在函数内创建新的变量并赋值
#将值放在列表中,可被改变
def inc(x):x[0]=x[0]+1
a=[10]
inc(a)
print a	#11
#以上为未知参数,以下为关键字参数
def hello(greeting='a',name='b'):	#可以提供默认值
	print '%s,%s!'%(greeting,name)
hello(greeting='hello',name='world')	#这样就不影响传参顺序了
#位置参数和关键字参数可以混用
def hello(name,greeting='Hello',punctuatuin='!'):	#需要将位置参数放前边
	print '%s,%s%s'%(greeting,name,punctuatuin)
	
#收集参数
def print_params(title,*params):	#*的意思是收集其他位置参数,只能收集位置参数
	print title
	print params	#元组
	
def print_params(**params):	#**只收集关键字参数
	print params	#字典
	
#星号只在定义不定数目的参数或分割字典或序列时才有用

#变量
#变量存储在不可见字典中,vars()函数可以返回这个字典
x=1
scope=vars()
scope['x']
#1
scope['x']+=1
x
#2
#此类不可见字典叫做命名空间或作用域
globals()	#返回全局变量的字典
locals()	#获取局部变量的字典

#函数内声明全局变量
x=10
def change_global():
	global x
	x+=x
change_global()
x
#11

#python函数可以嵌套
def foo():
	def bar():
		print 'Hello'
	bar()
	
#map
map(str,range(10))	#将序列中的值全部传给函数,等价于[str[i] for i in range(10)]
#filter
def func(x):
	return x.isalnum()
seq=["foo","x41","?!","***"]
filter(func,seq)	#可以基于一个返回值为Boolean的函数过滤
['foo','x41']
#等价于
[x for x in seq if x.isalnum()]
#等价于
filter(lambda x:x.isalnum(),seq)	#lambda表达式
#reduce:处理序列中前两个值,其结果与第三个值再进行处理,依次,直到整个序列处理完
numbers=[1,2,3,4,5,6,7,8,9]
reduce(lambda x,y:x+y,numbers)	#返回序列中所有值的和
45
#等价于
sum(numbers)	#求和函数

apply(func[,args[,kwqrgs]])	#调用函数,可提供参数

#更加抽象
#创建类
__metaclass__=type	#确定使用新式类,3.0以后不存在旧式类
class persion:
	def setName(self,name):	#self用于访问本身,必须作为第一个参数
		self.name=name
	def getName(self):
		return self.name
	def greet(self):
		print "Hello,World!I`m %s."%self.name
#私有变量或方法
#在构造类时,变量或方法的名字前加上双下划线,即可成为私有方法或变量,实际上名字加上双下划线后,名字会被转换成(_类名__名字)的形式,通过此名字可以访问
#python没有真正的私有化支持
class a:
	def __aa():
		print "a"
	def b(self):
		self.__a()
a.__aa()	#报错
a._a__aa	#依然可以访问,不建议这么做
#带有单下划线的名字,不会被import *引入
#继承,a继承b
class a(b):
	def init():
		pass
#调查继承
issubclass(a,b)	#检查a是否b的子类
a.__bases__		#检查a的父类
o.__class__		#检查对象是哪个类的实例
isinstance(o,a)	#查看一个对象是否一个类的实例
types(s)			#查看对象是哪个类的实例,限新式类
#多重继承
class c(a,b):	#注意顺序,前边类中的方法会覆盖后边的,例如:若a中有k(),b中有k(),则c中的k()为a中的k()
	pass
	
random.choice(seq)	#从非空序列随机选择元素
hasattr(object,name)
getattr(object,name[,default])
setattr(object,name,value)

#异常
#自定义异常
class someException(Exception):pass

raise Exception

try:
	...
except someException:
	if ...:
		...
	else:
		raise
except (otherException,bException,cException):
	...
except (dException,eException),e:	#python 3.0为except (dException,eException) as e
	print e
except:
	print 'some wrong!'
else:
	print 'well'
finally:
	print 'finally'
	
#引入自己的模块
import sys
sys.path.append('c:/python')
import hello

#在模块中定义测试代码
#hello.py
def hello():
	...
def test():
	...
if __name__=='___main__':	#当作为模块时,__name__为hello
	test()
	
"""
引入自己的模块方法
1、将模块文件放在python库目录,推荐C:\\python\\lib\\site-package(pprint.pprint(sys.path))
2、告诉编译器去哪里找,bashshell如下:
	环境变量:.bashrc中加入 export PYTHONPATH=$PYTHONPATH:~python
"""

#包(__init__.py文件用于定义包)
#ds/__init__.py
PI=3.14
#将模块文件放入ds目录即可
import ds
print ds.PI
#引入
import drawing	#仅可以使用__init__.py中的内容,不可以使用模块
import drawing.colors	#可以通过全名drawing.colors使用模块
from drawing import shapes	#可以通过短名shapes使用模块
"""
探究模块(以copy为例)
1、>>>>import copy
	 >>>>[n for n in dir(copy) if not n.startswith('_')]
	 #说明copy模块一共有这些变量
2、>>>>copy.__all__
	 ["a","b","c","d"]
	 #说明copy模块定义的公有接口是这些
	 #from copy import *	只能导入copy.__all__中的变量
	 #若要使用其他变量,需要显性实现。如导入copy模块m后,使用m.a(),或者from m import a
	 #__all__指定需要的变量、函数、类,如果不设置__all__,import * 会把所有变量导入进去
3、>>>>help(copy.copy)
	 #若有__doc__变量
	 >>>>print copy.copy.doc
4、http://python.org/doc
5、源码(文件位置)
	 >>>>print copy.__file__
"""

#模块
#sys

 

0
0
分享到:
评论

相关推荐

    python入门笔记(强烈推荐).pdf

    python刚刚开始学习还没入门的,可以试一下这些例题,掌握快速

    python入门笔记(推荐)

    这篇“Python入门笔记”旨在帮助初学者快速掌握Python的基础知识,通过实践操作来加深理解。 首先,Python的语法特点是它的一大亮点。Python代码强调可读性,遵循“缩进决定代码块”的原则,避免了大括号带来的视觉...

    python入门笔记(强烈推荐).7z

    "Python入门笔记(强烈推荐).7z" 提供的是一份详细的Python学习资源,特别适合初学者。Jupyter版意味着这份笔记是用Jupyter Notebook编写的,这是一种交互式计算环境,允许用户结合代码、文本、数学公式和可视化来...

    python入门笔记

    本资源“python入门笔记”是针对初学者精心编写的教程,旨在帮助你快速掌握Python3的基础知识和核心概念。 1. **Python3基础知识**: Python3是Python的最新版本,它引入了许多改进,例如统一的 print 函数、新的...

    python入门笔记(强烈推荐).zip

    这份“python入门笔记(强烈推荐).zip”压缩包显然包含了帮助初学者掌握Python编程的基础资料。下面,我们将深入探讨Python编程的一些核心概念和重要知识点。 1. **变量与数据类型**:Python支持多种数据类型,...

    python核心笔记.pdf

    【第三章 Python基础】和【第四章 Python对象】详细阐述了Python的基础语法,包括变量、数据类型、操作符、控制结构等。Python中的基础数据类型如数字(【第五章】)、序列(如字符串、列表和元组,【第六章】)、...

    python入门笔记,简单好用

    python入门笔记,简单好用

    小白python入门笔记

    【Python入门笔记】这篇资源是针对初学者设计的,旨在帮助你快速掌握Python的基础知识,特别是使用turtle库进行图形绘制。Python是一种高级编程语言,它与Perl、C和Java等语言有共通之处,但也有自己的特点。让我们...

    python 入门笔记

    ### Python入门笔记知识点详解 #### 一、热身 - 为什么选择Python? Python是一种流行的、通用的编程语言,因其简洁的语法和强大的功能而受到广大程序员的喜爱。在选择Python作为学习对象时,以下几点特性非常突出...

    python入门笔记(强烈推荐)

    Python是一种高级编程语言,以其简洁明了的语法和强大...这个"python入门笔记(强烈推荐)"涵盖了Python的基础到进阶知识,结合实际例子和练习,将帮助你扎实地掌握Python编程技能,为后续深入学习和开发打下坚实基础。

    python入门笔记-李金(强烈推荐).zip

    **Python入门笔记——李金详解** 本篇笔记是基于作者李金的《python入门笔记-李金(强烈推荐)》的解析,旨在为初学者提供一份详尽的Python语言学习指南。这份笔记采用Jupyter Notebook的形式,使得学习过程更加...

    python入门笔记.rar

    中文 Python 笔记 笔记内容使用 `ipython notebook` 来展示。 目录: - [01. **Python 工具**](01-python-tools) - [02. **Python 基础**](02-python-essentials) - [03. **Numpy**](03-numpy) - [04. **Scipy**](04...

    Python学习笔记(干货) 中文PDF完整版.pdf

    这份笔记为Python初学者提供了全面而详细的入门教程,涵盖了从安装环境到编写简单程序,再到掌握核心语法的整个过程。通过学习这些内容,读者可以快速建立起对Python编程的理解,并为进一步深入学习和实践打下坚实...

    Python入门笔记-最详细的总结

    【Python入门笔记】这篇笔记是基于B站上的一套Python全栈开发教程的前133页内容编写的,旨在帮助初学者系统地学习Python编程。笔记内容包括实操代码、重点知识截图以及详细的注释,确保学习者能够清晰理解和实践每一...

    Python入门笔记.docx

    在"Python入门笔记.docx"中,我们看到了关于Python基础知识的详细介绍,包括程序语法元素、数据类型、字符串和列表的使用、输入输出以及函数的应用。 首先,我们要了解Python中的基本语法。在Python中,单一等号 (=...

    黑马python机器学习入门笔记

    《黑马Python机器学习入门笔记》是一份针对初学者编写的指南,旨在帮助读者掌握Python语言在机器学习领域的基本应用。这份笔记将带你踏入这个充满无限可能的领域,通过Python这门易学且强大的编程语言,开启你的数据...

    Python3萌新入门笔记

    Python3萌新入门笔记,萌新入门笔记是一系列真实的自学笔记。当然,它也是比较全面的入门教程,共包括 54 篇笔记。仍第一篇笔记开始,大半年的时间我都是在自学和组织教程内容。我觉得有必要,把我自己把我自己的学习...

    《Python3萌新入门笔记》清晰文字版

    根据提供的文件信息,以下知识点涵盖了《Python3萌新入门笔记》中提到的各个学习阶段和内容的详细描述。 一、Python入门准备 入门Python之前,学习者需要准备一些基础资源和工具。文档中提到的参考资料包括了经典的...

Global site tag (gtag.js) - Google Analytics