任意参数*当我们的函数接收参数为任意个,或者不能确定参数个数时,我们,可以利用*来定义任意数目的参数,这个函数调用时,其所有不匹配的位置参数会被赋值为元组,我们可以在函数利用循环或索引进行使用deff(*args):#直接打印元组参数print(args)print('-'*20)#循环打印元组参数[print(i)foriinargs]...#传递一个参数f(1)print('='*20)#传递5个参数f(1,2,3,4,5)示例结果:(1,)-----
系统 2019-09-27 17:55:16 2076
使用Python内置的tkinter写界面里面的爬虫代码是爬取网易云音乐的电台专栏,代码讲解链接在我上一篇博客:https://blog.csdn.net/congcong7267/article/details/95625653代码#-*-coding:utf-8-*-importtkinter.messageboxfromtkinterimport*fromtkinterimportttkfromPILimportImage,ImageTkimport
系统 2019-09-27 17:53:25 2076
环境:python3.7.3简介:map()是python中的内置函数,可以直接使用功能:将一个可迭代对象,通过一个函数生成另一个迭代器(但只能迭代一次),函数自定义(或者匿名函数)。用法:map(函数,可迭代对象)示例:defmap_fun(x):returnx**2#返回b的类型是map类型,(map类型只能迭代一次,再次迭代为空)b=map(map_fun,ran)注意:map()函数生成的对象是一个迭代器,但只能迭代一次。可以转化成其他数据类型(如
系统 2019-09-27 17:48:43 2076
range函数可创建一个整数列表。如果需要知道当前元素在列表中的索引,推荐用enumerate代替range。zip函数用于同时遍历多个迭代器。一、range函数range函数可创建一个整数列表,一般用在for循环中。语法:range([start,]stop[,step])参数:start:计数从start开始。默认是从0开始。例如range(5)等价于range(0,5);stop:计数到stop结束,但不包括stop。例如:range(0,5)是[0
系统 2019-09-27 17:47:12 2076
1.逆转字符串的三种方法1.1.模拟C++中方法,定义一个空字符串来实现通过设置一个空字符串,然后讲参数中的字符串从后往前遍历,使用字符串的加法合并为新的字符串复制代码代码如下:defreverse(text):str=''index=len(text)-1whileindex>=0:str+=text[index]index-=1returnstr1.2.使用切片法这个是Python中的一个特性,切片可以取负值,这是采用切片的方法,设置步长为-1,这样就
系统 2019-09-27 17:46:56 2076
BeautifulSoup库解析器解析器使用方法条件bs4的HTML解析器BeautifulSoup(mk,'html.parser')安装bs4库lxml的HTML解析器BeautifulSoup(mk,'xml')pipinstalllxmllxml的XML解析器BeautifulSoup(mk,'xml')pipinstalllxmlhtml5lib的解析器BeautifulSoup(mk,'htm5lib')pipinstallhtm151ibBe
系统 2019-09-27 17:46:52 2076
迪杰斯特拉(Dijkstra)算法主要是针对没有负值的有向图,求解其中的单一起点到其他顶点的最短路径算法。1算法原理迪杰斯特拉(Dijkstra)算法是一个按照路径长度递增的次序产生的最短路径算法。下图为带权值的有向图,作为程序中的实验数据。其中,带权值的有向图采用邻接矩阵graph来进行存储,在计算中就是采用n*n的二维数组来进行存储,v0-v5表示数组的索引编号0-5,二维数组的值表示节点之间的权值,若两个节点不能通行,比如,v0->v1不能通行,那么
系统 2019-09-27 17:46:36 2076
1、背景介绍在采用通常的socket抓包方式下,操作系统会自动将收到包的VLAN信息剥离,导致上层应用收到的包不会含有VLAN标签信息。而libpcap虽然是基于socket实现抓包,但在收到数据包后,会进一步恢复出剥离的VLAN信息,能够满足需要抓取带VLAN标签信息的数据包的需求场景。python-pypcap包是对libpcap库的python语言封装,本文主要介绍如果利用python-pypcap在网络接口抓取带VLAN标签的数据包。2、环境准备l
系统 2019-09-27 17:46:15 2076
一直以来被Linux的hostname和fqdn(FullyQualifiedDomainName)困惑了好久,今天专门抽时间把它们的使用细节弄清了。一、设置hostname/fqdn在Linux系统内设置hostname很简单,如:$hostnameflorian如果要设置fqdn的话,需要对/etc/hosts进行配置。$cat/etc/hosts127.0.0.1localhost192.168.1.1florian.test.comflorian/
系统 2019-09-27 17:38:33 2076
在python中可以根据字符串来调用函数:1、使用getattr从字符串来调用函数在多进程中,可能传递过来的是一个字符串,那么我怎么来调用一个已经存在的函数呢,主要就是使用到getattr函数的作用,这个函数就是在使用字符串得到这个字符串对应的函数的对象,然后就可以进行执行,如下所示:在模块中,存在两个函数:[root@python530]#catattr.py#!/usr/bin/envpythondefkel():print'thisisakelfun
系统 2019-09-27 17:38:23 2076
基本语句结构复制代码代码如下:if判断条件1:执行语句1……elif判断条件2:执行语句2……elif判断条件3:执行语句3……else:执行语句4……只有当“判断条件”的值是True的时候,才执行下面的执行语句。那么,在python中,怎么知道一个判断条件是不是真呢?这个问题我们在眼花缭乱的运算符中已经讲解了一种数据类型:布尔类型。可以通过一个内置函数bool()来判断一个条件的结果True还是False。看看下面的例子,是不是能够理解bool()的判断
系统 2019-09-27 17:38:15 2076
假设要开发一个自动化脚本工具,工程结构如下,Common这个package是框架功能的实现,Scripts目录是我们编写的测试用例脚本(请忽略其他不相关的目录)。我们对日志功能的需求如下:1为了便于日志的查看,每个脚本对应一个日志文件,日志文件以脚本的名字命名2日志路径以及每个脚本保存的日志容量可以设置,比如设置为5MB,则超过后最老日志被自动覆盖3日志功能要使用方便,减少与框架业务功能的耦合现在来逐一分析上述需求。1要实现每个脚本一个日志文件,则需要在日
系统 2019-09-27 17:37:37 2076
导语由于之前遇到过几次有关于参数类型的坑,以及经常容易把一些参数类型搞混淆,现在做一下有关参数类型的总结记录以及对之前踩坑经历的分析。参数类型首先我们列举一下有关于Python的参数类型,以及实际上的运用和原理。位置参数(必选参数)默认参数可变参数关键字参数位置参数(必选参数)首先是位置参数,同时也被称作必选参数,位置参数很好理解,只要记住这点:在函数定义时直接给定的此参数名称,调用时按照参数的位置顺序,依次赋予参数值。示例:defperson_info(
系统 2019-09-27 17:57:36 2075
MinMaxScaler.fit_transform()Initsignature:MinMaxScaler(feature_range=(0,1),copy=True)Docstring:Transformsfeaturesbyscalingeachfeaturetoagivenrange.Thisestimatorscalesandtranslateseachfeatureindividuallysuchthatitisinthegivenrangeo
系统 2019-09-27 17:52:51 2075
打印generator数组(列表)中的内容(python3)循环中不适用数组定义封装而直接用函数调用,(…)会使用元组,则会出现generator对象defsentence_to_id(self,sentence):word_ids=(self.word_to_id(cur_word)forcur_wordinsentence.split())returnword_ids如果直接打印generator对象的话,会出现类似试试使用print(word_ids
系统 2019-09-27 17:51:43 2075