def

Python 类的魔术方法(定制类)

ⅰ亾dé卋堺 提交于 2020-11-16 00:22:38
今天一整个上午学习了一下Python中的双下划线方法(魔术方法)。这些方法的功能非常强大,也能使Python代码可读性更高,更加Pythonic。这篇文章包含了很多魔术方法,包括: __init__ __str__, __repr__ __iter__, __getitem__, __len__ __eq__, __lt__ __add__, __radd__ __call__ __enter__, __exit__ 运行环境:Python3.6 + Jupyter notebook。 下面就是 Jupyter notebook 笔记。 Python 类的魔术方法(定制类) ¶ __init__ ¶ In [3]: class Account : 'A simple account class' def __init__ ( self , owner , amount = 0 ): self . owner = owner self . amount = amount self . _transactions = [] In [4]: acc1 = Account ( 'zxzhu' ) acc1 Out[4]: <__main__.Account at 0x1e4581f96a0> 注:构造函数使我们可以从类中创建实例。 __str__, __repr__ ¶ In [5]:

问题解决:SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame

与世无争的帅哥 提交于 2020-11-15 20:42:00
在函数中修改: def countGroupWord(df_sentence): stop_words = list(stopwords.words( ' english ' )) .... df_sentence[ ' classId ' ]=df_sentence[ ' classId ' ] df_sentence['classId']=df_sentence['classId'] 会报错 SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy df_sentence['classId']=df_sentence['abstract'] 这个报警主要是说, 你当前对B的操作可能会改变另一个DataFrame A 我新建一个对象再赋值就不会报错了,如果不在函数里面可以直接写df_sentence[

OpenStack中的Multipath faulty device的成因及解决(part 2)

两盒软妹~` 提交于 2020-11-15 06:11:46
| 版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题,可以邮件:wangxu198709@gmail.com 简介 在上次的文章 OpenStack中的Multipath faulty device的成因及解决(part 1) 中,我详细解释了fault device的成因,这篇文章重点介绍下os-brick中是如何在并发的情况下,通过哪些具体的实现避免了faluty device的形成。 在讲具体实现前,有必要提到Linux上SCSI Block device(块设备)地址(寻址)的一些细节。 Linux kernel中通过如下的层次来定位特定的LUN: SCSI adapter number [host] channel number [bus] id number [target] lun [lun] 更多细节可以参考[ SCSI Addressing ],也就是说, 一个LUN可以用 [host-bus(channel)-target-lun] 来表示 。 Linux每连接一个iscsi target,kernel都会在本地的 /sys/class/iscsi_host/host*/device/session 建立对应的目录结构,用来表示一个SCSI的设备。 $ ls -l /sys/class

使用python实现离散时间傅里叶变换

允我心安 提交于 2020-11-15 05:56:36
以下内容引用链接:https://blog.csdn.net/baidu_37352210/article/details/79596633 ( 注意:通过如下内容可知,将序列信号进行傅里叶变换后,得到的频谱图上各k值(1~N/2)对应的振幅,观察主要振幅,并得到其信号主要分量的周期N/k ) # 离散时间傅里叶变换的python实现 import numpy as np import math import pylab as pl import scipy.signal as signal import matplotlib.pyplot as plt sampling_rate=1000 t1=np.arange(0, 10.0, 1.0/sampling_rate) x1 =np.sin(15*np.pi*t1) # 傅里叶变换 def fft1(xx): # t=np.arange(0, s) t=np.linspace(0, 1.0, len(xx)) f = np.arange(len(xx)/2+1, dtype=complex) for index in range(len(f)): f[index]=complex(np.sum(np.cos(2*np.pi*index*t)*xx), -np.sum(np.sin(2*np.pi*index*t)*xx))

Scrapy & Django项目

廉价感情. 提交于 2020-11-15 04:59:11
# 需求: 编写爬虫项目与Django项目详解和, 将爬取到的数据展示到前端页面上 # spider编写: import scrapy from dl.items import DlItem class PSpider(scrapy.Spider): name = 'p' # allowed_domains = ['www.baidu.com'] start_urls = ['https://www.kuaidaili.com/free/'] def parse(self, response): # print(response) tr_list = response.xpath('//*[@id="list"]/table/tbody/tr') # print(tr_list) for tr in tr_list: ip = tr.xpath('./td[1]/text()').extract_first() port = tr.xpath('./td[2]/text()').extract_first() typ = tr.xpath('./td[3]/text()').extract_first() protocal = tr.xpath('./td[4]/text()').extract_first() position = tr.xpath('./td[5]/text()

机器学习实战-朴素贝叶斯垃圾邮件分类

佐手、 提交于 2020-11-15 04:58:36
朴素贝叶斯 概念 对朴素贝叶斯的概念存在疑惑的,可以依此理解条件概率,全概率公式和贝叶斯公式。 附链接帮助理解: 链接1 https://blog.csdn.net/Hearthougan/article/details/75174210 链接2 https://www.cnblogs.com/hellcat/p/7195843.html 朴素贝叶斯分类是一种十分简单的分类算法,叫它朴素贝叶斯分类是因为这种方法的思想真的很朴素,朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。 实战 此实例为"朴素贝叶斯实现垃圾邮件分类"。 数据集样例: Data->normal文件夹下数据样例: 200.txt: Return-Path: <cai@tsinghua.edu.cn> Received: from mail.tsinghua.edu.cn (mail.tsinghua.edu.cn [166.111.8.18]) by home.ccert.edu.cn (8.13.1/8.13.1) with SMTP id i9S1aCPt007420 for <jiang@ccert.edu.cn>; Thu, 28 Oct 2004 09:36:12 +0800 Received: (eyou send

Python中命名空间与作用域使用总结

…衆ロ難τιáo~ 提交于 2020-11-15 04:45:51
1 引言 命名空间与作用域是程序设计中的基础概念,深入理解有助于理解变量的生命周期,减少代码中的莫名其妙bug。Python的命名空间与作用域与Java、C++等语言有很大差异,若不注意,就可能出现莫名其妙的问题。 2 命名空间 2.1 什么是命名空间 命名空间,即Namespace,也成为名称空间或名字空间,指的是从名字到对象的一个映射关系,类似于字典中的键值对,实际上,Python中很多命名空间的实现用的就是字典。   不同命名空间是相互独立的,没有任何关系的,所以同一个命名空间中不能有重名,但不同的命名空间是可以重名而没有任何影响。 2.2 命名空间的类型 Python命名空间按照变量定义的位置,可以划分为以下3类:   Built-in,内置命名空间,python自带的内建命名空间,任何模块均可以访问,存放着内置的函数和异常。   Global,全局命名空间,每个模块加载执行时创建的,记录了模块中定义的变量,包括模块中定义的函数、类、其他导入的模块、模块级的变量与常量。   Local,局部命名空间,每个函数、类所拥有的命名空间,记录了函数、类中定义的所有变量。   一个对象的属性集合,也构成了一个命名空间。但通常使用objname.attrname的间接方式访问属性,而不是 直接访问 ,故不将其列入命名空间讨论。(直接访问:直接使用名字访问的方式,如name

Python入门篇-返回值和作用域

烂漫一生 提交于 2020-11-15 00:18:46
               Python入门篇-返回值和作用域                                       作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 一.返回值 1>.返回值概述 Python函数使用return语句返回“返回值” 所有函数都有返回值,如果没有return语句,隐式调用return None return 语句并不一定是函数的语句块的最后一条语句 一个函数可以存在多个return语句,但是只有一条可以被执行。如果没有一条return语句被执行到,隐式调用return None 如果有必要,可以显示调用return None,可以简写为return 如果函数执行了return语句,函数就会返回,当前被执行的return语句之后的其它语句就不会被执行了 作用:结束函数调用、返回值 2>.函数单个值 1 # !/usr/bin/env python 2 # _*_coding:utf-8_*_ 3 # @author :yinzhengjie 4 # blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ 5 # EMAIL

[LeetCode] 81. Search in Rotated Sorted Array II 在旋转有序数组中搜索 II

隐身守侯 提交于 2020-11-14 13:07:37
Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this affect the run-time complexity? How and why? Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2 ). Write a function to determine if a given target is in the array. The array may contain duplicates. 33. Search in Rotated Sorted Array 的拓展,数组中允许出现重复数字,这个也会影响我们选择哪半边继续搜索,之前判断左右部分是否有序的方法就失效了,因为可能有这种58555情况,虽然起点小于等于中间,但不代表右边就不是有序的,因为中点也小于等于终点,所有右边也是有序的。所以,如果遇到这种中点和两边相同的情况,我们两边都要搜索。 Java: public class Solution { public

python接口自动化(二十九)--html测试报告通过邮件发出去——上(详解)

最后都变了- 提交于 2020-11-14 10:20:51
简介   前边几篇,已经教小伙伴们掌握了如何生成HTML的测试报告,那么生成测试报告,我们也不能放在那里不管了,这样即使你报告在漂亮,领导也看不到。因此如果想向领导汇报工作,不仅需要提供更直观的测试报告。而是我们需要将生 成测试报告发个相关的负责人,需要他们看一下测试结果,把控一下项目的接口有风险,会不会影响项目进度等等一些事吧。   发邮件需要用到python两个模块,smtplib和email,这俩模块是python自带的,只需import即可使用。smtplib模块主要负责发送邮件,email模块主要负责构造邮件。其中MIMEText()定义邮件正文,Header()定义邮件标题。MIMEMulipart模块构造带附件。 大致思路流程 1、通过unittest框架的discover()找到匹配的测试用例,由HTMLTestRunner的run()方法执行测试用例并生成最新的测试报告。 2、调用new_report()函数找到测试报告目录下最新生成的测试报告,返回测试报告的路径。 3、将得到的最新测试报告的完整路径传给send_mail()函数,实现发邮件功能。 4、第一步,前边几篇,我们都详细介绍了,所以这篇就不在赘述了,直接从第二步、第三步开始讲解。 查找最新测试报告 定义发送邮件 1、查看一下,源码如下: 2、仿照源码进行改造 参考代码 # coding=utf- 8 #