`

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
分享到:
评论

相关推荐

    受激拉曼散射计量【Stimulated-Raman-Scattering Metrology】 附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    MMC整流器技术解析:基于Matlab的双闭环控制策略与环流抑制性能研究,Matlab下的MMC整流器技术文档:18个子模块,双闭环控制稳定直流电压,环流抑制与最近电平逼近调制,优化桥臂电流波形,高效

    MMC整流器技术解析:基于Matlab的双闭环控制策略与环流抑制性能研究,Matlab下的MMC整流器技术文档:18个子模块,双闭环控制稳定直流电压,环流抑制与最近电平逼近调制,优化桥臂电流波形,高效并网运行。,MMC整流器(Matlab),技术文档 1.MMC工作在整流侧,子模块个数N=18,直流侧电压Udc=25.2kV,交流侧电压6.6kV 2.控制器采用双闭环控制,外环控制直流电压,采用PI调节器,电流内环采用PI+前馈解耦; 3.环流抑制采用PI控制,能够抑制环流二倍频分量; 4.采用最近电平逼近调制(NLM), 5.均压排序:电容电压排序采用冒泡排序,判断桥臂电流方向确定投入切除; 结果: 1.输出的直流电压能够稳定在25.2kV; 2.有功功率,无功功率稳态时波形稳定,有功功率为3.2MW,无功稳定在0Var; 3.网侧电压电流波形均为对称的三相电压和三相电流波形,网侧电流THD=1.47%<2%,符合并网要求; 4.环流抑制后桥臂电流的波形得到改善,桥臂电流THD由9.57%降至1.93%,环流波形也可以看到得到抑制; 5.电容电压能够稳定变化 ,工作点关键词:MMC

    Boost二级升压光伏并网结构的Simulink建模与MPPT最大功率点追踪:基于功率反馈的扰动观察法调整电压方向研究,Boost二级升压光伏并网结构的Simulink建模与MPPT最大功率点追踪:基

    Boost二级升压光伏并网结构的Simulink建模与MPPT最大功率点追踪:基于功率反馈的扰动观察法调整电压方向研究,Boost二级升压光伏并网结构的Simulink建模与MPPT最大功率点追踪:基于功率反馈的扰动观察法调整电压方向研究,Boost二级升压光伏并网结构,Simulink建模,MPPT最大功率点追踪,扰动观察法采用功率反馈方式,若ΔP>0,说明电压调整的方向正确,可以继续按原方向进行“干扰”;若ΔP<0,说明电压调整的方向错误,需要对“干扰”的方向进行改变。 ,Boost升压;光伏并网结构;Simulink建模;MPPT最大功率点追踪;扰动观察法;功率反馈;电压调整方向。,光伏并网结构中Boost升压MPPT控制策略的Simulink建模与功率反馈扰动观察法

    STM32F103C8T6 USB寄存器开发详解(12)-键盘设备

    STM32F103C8T6 USB寄存器开发详解(12)-键盘设备

    2011-2020广东21市科技活动人员数

    科技活动人员数专指直接从事科技活动以及专门从事科技活动管理和为科技活动提供直接服务的人员数量

    Matlab Simulink仿真探究Flyback反激式开关电源性能表现与优化策略,Matlab Simulink仿真探究Flyback反激式开关电源的工作机制,Matlab Simulimk仿真

    Matlab Simulink仿真探究Flyback反激式开关电源性能表现与优化策略,Matlab Simulink仿真探究Flyback反激式开关电源的工作机制,Matlab Simulimk仿真,Flyback反激式开关电源仿真 ,Matlab; Simulink仿真; Flyback反激式; 开关电源仿真,Matlab Simulink在Flyback反激式开关电源仿真中的应用

    基于Comsol的埋地电缆电磁加热计算模型:深度解析温度场与电磁场分布学习资料与服务,COMSOL埋地电缆电磁加热计算模型:温度场与电磁场分布的解析与学习资源,comsol 埋地电缆电磁加热计算模型

    基于Comsol的埋地电缆电磁加热计算模型:深度解析温度场与电磁场分布学习资料与服务,COMSOL埋地电缆电磁加热计算模型:温度场与电磁场分布的解析与学习资源,comsol 埋地电缆电磁加热计算模型,可以得到埋地电缆温度场及电磁场分布,提供学习资料和服务, ,comsol;埋地电缆电磁加热计算模型;温度场分布;电磁场分布;学习资料;服务,Comsol埋地电缆电磁加热模型:温度场与电磁场分布学习资料及服务

    ibus-table-chinese-yong-1.4.6-3.el7.x64-86.rpm.tar.gz

    1、文件内容:ibus-table-chinese-yong-1.4.6-3.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/ibus-table-chinese-yong-1.4.6-3.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊

    基于51单片机protues仿真的汽车智能灯光控制系统设计(仿真图、源代码)

    基于51单片机protues仿真的汽车智能灯光控制系统设计(仿真图、源代码) 一、设计项目 根据本次设计的要求,设计出一款基于51单片机的自动切换远近光灯的设计。 技术条件与说明: 1. 设计硬件部分,中央处理器采用了STC89C51RC单片机; 2. 使用两个灯珠代表远近光灯,感光部分采用了光敏电阻,因为光敏电阻输出的是电压模拟信号,单片机不能直接处理模拟信号,所以经过ADC0832进行转化成数字信号; 3. 显示部分采用了LCD1602液晶,还增加按键部分电路,可以选择手自动切换远近光灯; 4. 用超声模块进行检测距离;

    altermanager的企业微信告警服务

    altermanager的企业微信告警服务

    MyAgent测试版本在线下载

    MyAgent测试版本在线下载

    Comsol技术:可调BIC应用的二氧化钒VO2材料探索,Comsol模拟二氧化钒VO2的可调BIC特性研究,Comsol二氧化钒VO2可调BIC ,Comsol; 二氧化钒VO2; 可调BIC

    Comsol技术:可调BIC应用的二氧化钒VO2材料探索,Comsol模拟二氧化钒VO2的可调BIC特性研究,Comsol二氧化钒VO2可调BIC。 ,Comsol; 二氧化钒VO2; 可调BIC,Comsol二氧化钒VO2材料:可调BIC技术的关键应用

    C++学生成绩管理系统源码.zip

    C++学生成绩管理系统源码

    基于Matlab与Cplex的激励型需求响应模式:负荷转移与电价响应的差异化目标函数解析,基于Matlab与CPLEX的激励型需求响应负荷转移策略探索,激励型需求响应 matlab +cplex 激励

    基于Matlab与Cplex的激励型需求响应模式:负荷转移与电价响应的差异化目标函数解析,基于Matlab与CPLEX的激励型需求响应负荷转移策略探索,激励型需求响应 matlab +cplex 激励型需求响应采用激励型需求响应方式对负荷进行转移,和电价响应模式不同,具体的目标函数如下 ,激励型需求响应; matlab + cplex; 负荷转移; 目标函数。,Matlab与Cplex结合的激励型需求响应模型及其负荷转移策略

    scratch介绍(scratch说明).zip

    scratch介绍(scratch说明).zip

    深度学习模型的发展历程及其关键技术在人工智能领域的应用

    内容概要:本文全面介绍了深度学习模型的概念、工作机制和发展历程,详细探讨了神经网络的构建和训练过程,包括反向传播算法和梯度下降方法。文中还列举了深度学习在图像识别、自然语言处理、医疗和金融等多个领域的应用实例,并讨论了当前面临的挑战,如数据依赖、计算资源需求、可解释性和对抗攻击等问题。最后,文章展望了未来的发展趋势,如与量子计算和区块链的融合,以及在更多领域的应用前景。 适合人群:对该领域有兴趣的技术人员、研究人员和学者,尤其适合那些希望深入了解深度学习原理和技术细节的读者。 使用场景及目标:①理解深度学习模型的基本原理和结构;②了解深度学习模型的具体应用案例;③掌握应对当前技术挑战的方向。 阅读建议:文章内容详尽丰富,读者应在阅读过程中注意理解各个关键技术的概念和原理,尤其是神经网络的构成及训练过程。同时也建议对比不同模型的特点及其在具体应用中的表现。

    day02供应链管理系统-补充.zip

    该文档提供了一个关于供应链管理系统开发的详细指南,重点介绍了项目安排、技术实现和框架搭建的相关内容。 文档分为以下几个关键部分: 项目安排:主要步骤包括搭建框架(1天),基础数据模块和权限管理(4天),以及应收应付和销售管理(5天)。 供应链概念:供应链系统的核心流程是通过采购商品放入仓库,并在销售时从仓库提取商品,涉及三个主要订单:采购订单、销售订单和调拨订单。 大数据的应用:介绍了数据挖掘、ETL(数据抽取)和BI(商业智能)在供应链管理中的应用。 技术实现:讲述了DAO(数据访问对象)的重用、服务层的重用、以及前端JS的继承机制、jQuery插件开发等技术细节。 系统框架搭建:包括Maven环境的配置、Web工程的创建、持久化类和映射文件的编写,以及Spring配置文件的实现。 DAO的需求和功能:供应链管理系统的各个模块都涉及分页查询、条件查询、删除、增加、修改操作等需求。 泛型的应用:通过示例说明了在Java语言中如何使用泛型来实现模块化和可扩展性。 文档非常技术导向,适合开发人员参考,用于构建供应链管理系统的架构和功能模块。

    清华大学104页《Deepseek:从入门到精通》

    这份长达104页的手册由清华大学新闻与传播学院新媒体研究中心元宇宙文化实验室的余梦珑博士后及其团队精心编撰,内容详尽,覆盖了从基础概念、技术原理到实战案例的全方位指导。它不仅适合初学者快速了解DeepSeek的基本操作,也为有经验的用户提供了高级技巧和优化策略。

    MXTU MAX仿毒舌自适应主题源码 苹果CMSv10模板.zip

    主题说明: 1、将mxtheme目录放置根目录 | 将mxpro目录放置template文件夹中 2、苹果cms后台-系统-网站参数配置-网站模板-选择mxpro 模板目录填写html 3、网站模板选择好之后一定要先访问前台,然后再进入后台设置 4、主题后台地址: MXTU MAX图图主题,/admin.php/admin/mxpro/mxproset admin.php改成你登录后台的xxx.php 5、首页幻灯片设置视频推荐9,自行后台设置 6、追剧周表在视频数据中,节目周期添加周一至周日自行添加,格式:一,二,三,四,五,六,日

    基于matlab平台的数字信号处理GUI设计.zip

    运行GUI版本,可二开

Global site tag (gtag.js) - Google Analytics