python 关键 贰

本文介绍了Python中的对象引用概念、序列的切片与索引操作、备份脚本编写、类的初始化方法、文件操作方法、对象持久化技术和代码执行技巧等关键知识点。

1:参考与对象

      当你创建一个对象并给它赋一个变量的时候,这个变量仅仅 参考 那个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑定

例如:

shoplist = ['apple''mango''carrot''banana']
mylist = shoplist 

del shoplist[0]

#shoplist is ['mango', 'carrot', 'banana']
#mylist is ['mango', 'carrot', 'banana']

//拷贝

print 'Copy by making a full slice'
mylist = shoplist[:] # make a copy by doing a full slice
del mylist[0

#shoplist is ['mango', 'carrot', 'banana']
#mylist is ['carrot', 'banana']

注意:记住列表的赋值语句创建拷贝。你得使用切片操作符来建立序列的拷贝。

2:切片和索引: Python从0开始计数

  2.1 索引同样可以是负数,在那样的情况下,位置是从序列尾开始计算的。因此,shoplist[-1]表示序列的最后一个元素而shoplist[-2]抓取序列的倒数第二个项目。

   2.2切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割。注意这与你使用的索引操作符十分相似。记住数是可选的,而冒号是必须的。同样负数也是从后面开始计算

例如:

shoplist = ['apple''mango''carrot''banana']

print 'Item 0 is', shoplist[0]

print 'characters 1 to -1 is', name[1:-1]
print 'characters start to end is', name[:]


3:备份脚本 

例子:

import os
import time

source=[r'D:\desktop',r'D:\wifi']

target_dir = "D:\\pythonZip\\"

target = target_dir+time.strftime('%Y%m%d%H%M%S')+'.zip'

zip_command = "zip -qr %s %s" % (target, " ".join(source))

print(zip_command)

if os.system(zip_command) == 0:
    print('Successful backup to', target)
else:
    print('Backup FAILED')
注意1:

首先在命令行下看是否安装了ZIP包。windows下默认是不安装的。如果未安装,下载地址:https://sourceforge.net/projects/gnuwin32/files/zip/3.0/zip-3.0-setup.exe/download?use_mirror=nchc

然后配置环境变量。

注意2:-q选项用来表示zip命令安静地工作。-r选项表示zip命令对目录递归地工作

zip_command = "zip -qr %s %s" % (target, " ".join(source))

命令字符串现在将称为:

tar = 'tar -cvzf %s %s -X /home/swaroop/excludes.txt' % (target, ' '.join(srcdir))

选项解释如下:

  • -c表示创建一个归档。

  • -v表示交互,即命令更具交互性。

  • -z表示使用gzip滤波器。

  • -f表示强迫创建归档,即如果已经有一个同名文件,它会被替换。

  • -X表示含在指定文件名列表中的文件会被排除在备份之外。例如,你可以在文件中指定*~,从而不让备份包括所有以~结尾的文件。

4:__init__方法:__init__方法在类的一个对象被建立时,马上运行
例子:
class Person:
    def __init__(self, name):         self.name = name
    def sayHi(self):
        print 'Hello, my name is', self.name

p = Person('Swaroop') p.sayHi()
说明:self 区分类和普通函数 不用赋值

self:类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是self

5:文件操作

file类的对象来打开一个文件,分别使用file类的readreadlinewrite方法来恰当地读写文件,模式可以为读模式('r')、写模式('w')或追加模式('a'),首先用写模式打开文件,然后使用file类的write方法来写文件,最后我们用close关闭这个文件。

例子:

poem="hello,world"

f = file('poem.txt''w'# open for 'w'riting
f.write(poem) # write text to file
f.close() # close the file

f = file('poem.txt')
# if no mode is specified, 'r'ead mode is assumed by default
while True:
    line = f.readline()

    if len(line) == 0# Zero length indicates EOF
        break
    print line,
    # Notice comma to avoid automatic newline added by Python
f.close()


6:存储器

Python提供一个标准的模块,称为pickle和cPickle ,cPickle比Pickle快1000倍。

首先以写模式打开一个file对象,然后调用储存器模块的dump函数,把对象储存到打开的文件中。这个过程称为 储存 。

接下来,我们使用pickle模块的load函数的返回来取回对象。这个过程称为 取储存 。

 基本接口:

  pickle.dump(obj, file, [,protocol])
  注解:将对象obj保存到文件file中去。
     protocol为序列化使用的协议版本,0:ASCII协议,所序列化的对象使用可打印的ASCII码表示;1:老式的二进制协议;2:2.3版本引入的新二进制协议,较以前的更高效。其中协议0和1兼容老版本的python。protocol默认值为0。
     file:对象保存到的类文件对象。file必须有write()接口, file可以是一个以'w'方式打开的文件或者一个StringIO对象或者其他任何实现write()接口的对象。如果protocol>=1,文件对象需要是二进制模式打开的。

  pickle.load(file)
  注解:从file中读取一个字符串,并将它重构为原来的python对象

例子:

import pickle as p

storage = ['hello', 'world', 'test']

filepath1 = 'D:\\pythonZip\\a.txt'

f = open(filepath1, "wb+")

p.dump(storage, f, 0)

f.close()

del storage

f = open(filepath1, "rb")

storage1=p.load(f)

print(storage1)

:7:exec和eval语句

exec语句用来执行储存在字符串或文件中的Python语句

例如:

>>> exec 'print "Hello World"'
Hello World

eval语句用来计算存储在字符串中的有效Python表达式

例如:

>>> eval('2*3')
6






【轴承故障诊断】基于融合鱼鹰和柯西变异的麻雀优化算法OCSSA-VMD-CNN-BILSTM轴承诊断研究【西储大学数据】(Matlab代码实现)内容概要:本文提出了一种基于融合鱼鹰和柯西变异的麻雀优化算法(OCSSA)优化变分模态分解(VMD)参数,并结合卷积神经网络(CNN)与双向长短期记忆网络(BiLSTM)的轴承故障诊断模型。该方法利用西储大学公开的轴承数据集进行验证,通过OCSSA算法优化VMD的分解层数K和惩罚因子α,有效提升信号分解精度,抑制模态混叠;随后利用CNN提取故障特征的空间信息,BiLSTM捕捉时间序列的动态特征,最终实现高精度的轴承故障分类。整个诊断流程充分结合了信号预处理、智能优化与深度学习的优势,显著提升了复杂工况下轴承故障诊断的准确性与鲁棒性。; 适合人群:具备一定信号处理、机器学习及MATLAB编程基础的研究生、科研人员及从事工业设备故障诊断的工程技术人员。; 使用场景及目标:①应用于旋转机械设备的智能运维与故障预警系统;②为轴承等关键部件的早期故障识别提供高精度诊断方案;③推动智能优化算法与深度学习在工业信号处理领域的融合研究。; 阅读建议:建议读者结合MATLAB代码实现,深入理解OCSSA优化机制、VMD参数选择策略以及CNN-BiLSTM网络结构的设计逻辑,通过复现实验掌握完整诊断流程,并可进一步尝试迁移至其他设备的故障诊断任务中进行验证与优化。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值