- 博客(51)
- 收藏
- 关注
原创 python功能驱动,详解argparser模块的使用播报
我们知道,在windows、linux、macos这样一些操作系统中,除了提供一些傻瓜式的用户界面方便用户操作外,这些系统很大程度上都留给一些系统爱好者(或深度学习的用户)一些命令行接口。cmd和shell通过一些简单的系统命令,实现同界面一样的操作效果,甚至可以实现一些用户界面无法实现的功能。01不同系统的命令行工具不同系统命令行调用方式存在差异。【Windows系统】windows系统对于windows用户,按下“win” + ‘r’键,在弹出对话框中输入cmd,可以进入这样的交互界面
2021-12-27 20:36:25 727
原创 Python 跟 Java 学习哪个强一些呢?
Java更适合企业级系统开发方向,Python适合数据分析类方向,而且Python在自动化运维和自动化测试方向有很多贡献。尽管如此,Java依旧是市场需求量最大的语言。哪个语言更香呢?原来我总会说,不管什么语言都是工具。后来经过很多人提问,我想了想,小白可能就是更在乎哪个更好的问题。从下面几个维度给大家说说。一、入门的难易度很多人说Java会比Python入门难,但其实我觉得对于一个完全没有接触过编程的小白来说,接受新知识都很难。Python相对比Java入门简单一些。1.1 Java的学习曲线
2021-12-24 21:00:29 186
原创 python:用python断你的网,没商量!领取python基础项目练习题
链接:https://pan.baidu.com/s/1IoRy5Yky6wCq9B1g1mkMfQ提取码:iww4———文章仅供娱乐,请勿滥用———在断网攻击之前,我们先了解一下预备知识。断网攻击分为很多种,比如DOS,SYN泛洪,ARP欺骗等等。我以最有趣的ARP欺骗为例,简单介绍一下。#ARP欺骗#ARP欺骗——主机型欺骗主机型欺骗主机型欺骗:在同一个网关下,欺骗者不断地向一个主机(图中PC 1)发送“我是网关”的ARP数据包,导致PC1抛弃了之前真正的网关的MAC地址,转而相信欺
2020-07-30 21:14:20 222
原创 用Python帮你选注双色球号码
描述用Python帮你选注双色球号码双色球,简单来说,就是两种颜色的球,红色和蓝色。规则很简单,红球从1-33中选取不同的6个数。篮球从1-16中选取1个数。注意,红球不能有重复的。那么,带大家用Python来选取一注双色球号码。其实很简单,只要用到一个随机数模块。先说红球共六个,每次从1-33个数中随机选择一个,且不重复的情况下,添加到一个列表中;篮球从1-16个数中随机选择一个即可。直接上代码:import randomred_ball = []while True:# 生成一位随机
2020-05-25 21:11:33 1325
原创 43-json模块
jsonJson是一种轻量级的数据交换格式。Json源自JavaScript语言,易于人类的阅读和编写,同时也易于机器解析和生成,是目前应用最广泛的数据交换格式。Json是跨语言,跨平台的,但只能对Python的基本数据类型做操作,对Python的类就无能为力。JSON格式和Python中的字典非常像。但是,json的数据要求用双引号将字符串引起来,并且不能有多余的逗号。这是因为在别的语言中,...
2019-08-30 21:06:59 104
原创 42-hashlib模块
hashlibHash,译做“散列”,也有直接音译为“哈希”的。把任意长度的输入,通过某种hash算法,变换成固定长度的输出,该输出就是散列值,也称摘要值。该算法就是哈希函数,也称摘要函数。MD5是最常见的摘要算法,速度很快,生成结果是固定的16字节,通常用一个32位的16进制字符串表示。SHA1算法更安全点,它的结果是20字节长度,通常用一个40位的16进制字符串表示。而比SHA1更安全的...
2019-08-30 21:05:34 137
原创 41-random模块
randomrandom模块用于生成伪随机数。真正意义上的随机数(或者随机事件)是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的。而计算机中的随机数是所谓的随机函数按照一定算法模拟产生的,其结果是确定的,是可预测的。所以用计算机随机函数所产生的“随机数”并不随机,是伪随机数,绝对不可以用来生成密码。1.计算机的伪随机数是由随机种子根据一定的计算方法计算出来的数值。所以,只要计算方...
2019-08-30 21:04:06 171
原创 40-sys模块
yssys模块主要是针对与Python解释器相关的变量和方法,不是主机操作系统。导入方式:import sys属性及方法 使用说明sys.argv 获取命令行参数列表,第一个元素是程序本身sys.exit(n) 退出Python程序,exit(0)表示正常退出。当参数非0时,会引发一个SystemExit异常,可以在程序中捕获该异...
2019-08-28 21:15:31 167
原创 39-os模块
OS模块导入方式: import osos模块是Python标准库中的一个用于访问操作系统相关功能的模块,os模块提供了一种可移植的使用操作系统功能的方法。使用os模块中提供的接口,可以实现跨平台访问。但是,并不是所有的os模块中的接口在全平台都通用,有些接口的实现是一来特定平台的,比如linux相关的文件权限管理和进程管理。os模块的主要功能:系统相关、目录及文件操作、执行命令和管理进程...
2019-08-28 21:14:47 165
原创 38-包
包(Package)__all__的作用python模块中的all属性,可用于模块导入时限制,如:from module import *此时被导入模块若定义了all属性,则只有all内指定的属性、方法、类可被导入。若没定义,则导入模块内的所有公有属性,方法和类sendmsg.pyall = [‘stest’]def stest():print(“stest”)def sste...
2019-08-28 21:13:58 183
原创 37-模块
模块与包在Python中,一个.py文件就是一个模块,模块是比类更高一级的封装。在其他语言,被导入的模块也通常称为库。模块可以分为自定义模块、内置模块和第三方模块。自定义模块就是你自己编写的模块,如果你自认水平很高,也可以申请成为Python内置的标准模块之一!如果你在网上发布自己的模块并允许他人使用,那么就变成了第三方模块。使用模块有什么好处?首先,提高了代码的可维护性。其次,编写代码...
2019-08-28 21:12:36 301
原创 36-@property装饰器
@property装饰器Python内置的@property装饰器可以把类的方法伪装成属性调用的方式 。class People:def init(self, name, age):self.__name = nameself.__age = age@propertydef age(self): return self.__age@age.setterdef age(s...
2019-08-28 21:11:33 84
原创 35-异常处理
异常处理在程序运行过程中,总会遇到各种各样的问题和错误。有些错误是我们编写代码时自己造成的,比如语法错误、调用错误,甚至逻辑错误。还有一些错误,则是不可预料的错误,但是完全有可能发生的,比如文件不存在、磁盘空间不足、网络堵塞、系统错误等等。这些导致程序在运行过程中出现异常中断和退出的错误,我们统称为异常。大多数的异常都不会被程序处理,而是以错误信息的形式展现出来。异常有很多种类型,Python...
2019-08-26 20:58:40 590
原创 34-单例模式
单例模式python的单例模式就是一个类的实例只能自始自终自能创建一次。应用场景比如说数据库的连接池。单例设计模式是怎么来的?在面向对象的程序设计中,当业务并发量非常大时,那么就会出现重复创建相同的对象,每创建一个对象就会开辟一块内存空间,而这些对象其实是一模一样的,那么有没有办法使用得内存对象只创建一次,然后再随处使用呢?单例模式就是为了解决这个问题而产生的。实现方式1、创建一个类静态...
2019-08-26 20:57:33 96
原创 33-reflect反射
reflect反射对编程语言比较熟悉的同学,应该听说过“反射”这个机制。Python作为一门动态语言,当然不会缺少这一重要功能。下面结合一个web路由的实例来阐述Python反射机制的使用场景和核心本质。首先,我们要区分两个概念——“标识名”和看起来相同的“字符串”。两者字面上看起来一样,却是两种东西,比如下面的func函数和字符串func:def func():print(“func是这...
2019-08-19 16:31:52 157
原创 32-特殊成员和魔法方法
特殊成员和魔法方法Python中有大量类似__doc__这种以双下划线开头和结尾的特殊成员及“魔法方法”,它们有着非常重要的地位和作用,也是Python语言独具特色的语法之一!init : 构造函数,在生成对象时调用del : 析构函数,释放对象时使用repr : 打印,转换setitem : 按照索引赋值getitem: 按照索引获取值le...
2019-08-19 16:30:57 102
原创 31-封装、继承、多态
封装、继承、多态面向对象编程有三大重要特征:封装、继承和多态。继承继承机制实现了代码的复用,多个类公用的代码部分可以只在一个类中提供,而其他类只需要继承这个类即可。在OOP程序设计中,当我们定义一个新类的时候,新的类称为子类(Subclass),而被继承的类称为基类、父类或超类(Base class、Super class)。继承最大的好处是子类获得了父类的全部变量和方法的同时,又可以根...
2019-08-17 20:15:27 136
原创 30-类属性、实例属性
类属性、实例属性class Tool(object):类属性num = 0方法def init(self,name):# 实例属性self.name = nameTool.num += 1tool1 = Tool(“a”) # 实例对象tool2 = Tool(“b”) # 实例对象tool3 = Tool(“c”) ...
2019-08-17 15:59:47 106
原创 29-成员保护和访问限制
成员保护和访问限制隐藏属性class Dog:def set_age(self,new_age):if new_age>0 and new_age<=100:self.age = new_ageelse:self.age = 0def get_age(self): return self.agedog = Dog()dog.age = 10print(...
2019-08-17 15:58:42 231
原创 28-类和实例
类类是抽象的模板,用来描述具有相同属性和方法的对象的集合,比如Animal类。 类名通常采用驼峰式命名方式,尽量让字面意思体现出类的作用。Python使用class关键字来定义类,其基本结构如下:class 类名(父类列表):pass类的构成类(class)由3个部分构成类的名称:类名类的属性:一组数据类的方法:允许对进行操作的方法人类的设计:事物名称(类名):人(Perso...
2019-08-17 15:57:41 111
原创 27-面向对象编程
面向对象编程面向对象编程:Object Oriented Programming,简称OOP,是一种程序设计方法。面向对象面向过程区别完成自我介绍功能,面向过程完成功能stu_a = {“name”:“A”“age”:18,“hometown”:“东北”}stu_b = {“name”:“B”“age”:19,“hometown”:“山东”}stu_c = {“nam...
2019-08-17 15:56:43 71
原创 26-文件读写
文件的作用就是把一些存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力文件的基础操作打开文件Python内置了一个open()方法,用于对文件进行读写操作。使用open()方法操作文件就像把大象塞进冰箱一样,可以分三步走,一是打开文件,二是操作文件,三是关闭文件。open()方法的返回值是一个file对象,可以将它赋值给一个变量(文件句柄)。其基本语法格式为:...
2019-08-17 15:55:57 137
原创 25-内置函数
内置函数前面使用过一些函数,有的同学会疑问我没有导入这个函数,为什么可以直接使用?因为这些函数都是一个叫做builtins模块中定义的函数,而builtins模块默认在Python环境启动的时候就自动导入,所以你可以直接使用这些函数。我们可以在IDLE 进行输出globals(){‘name’: ‘main’, ‘doc’: None, ‘package’: None, ‘loader’...
2019-08-17 15:54:15 236
原创 24-生成器
生成器有时候,序列或集合内的元素的个数非常巨大,如果全制造出来并放入内存,对计算机的压力是非常大的。比如,假设需要获取一个10**20次方如此巨大的数据序列,把每一个数都生成出来,并放在一个内存的列表内,这是粗暴的方式,有如此大的内存么?如果元素可以按照某种算法推算出来,需要就计算到哪个,就可以在循环的过程中不断推算出后续的元素,而不必创建完整的元素集合,从而节省大量的空间。在Python中,这...
2019-08-17 15:53:00 291
原创 23-迭代器
迭代器在介绍迭代器之前,先说明下迭代的概念:迭代:通过for循环遍历对象的每一个元素的过程。Python的for语法功能非常强大,可以遍历任何可迭代的对象。在Python中,list/tuple/string/dict/set/bytes都是可以迭代的数据类型。可以通过collections模块的Iterable类型来判断一个对象是否可迭代:from collections impor...
2019-08-16 20:55:18 93
原创 22-推导式
推导式Python语言有一种独特的推导式语法,相当于语法糖的存在,可以帮你在某些场合写出比较精简酷炫的代码。列表推导式列表推导式是一种快速生成列表的方式。其形式是用方括号括起来的一段语句lis = [x * x for x in range(1, 10)]print(lis)结果:[1, 4, 9, 16, 25, 36, 49, 64, 81]如果不用推导式,如何完成这个功能li...
2019-08-16 20:53:10 99
原创 21-匿名函数
匿名函数当我们在创建函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。这省去了我们挖空心思为函数命名的麻烦,也能少写不少代码,很多编程语言都提供这一特性。Python语言使用lambda关键字来创建匿名函数。所谓匿名,即不再使用def语句这样标准的形式定义一个函数。lambda只是一个表达式,而不是一个代码块,函数体比def简单很多。仅仅能在lambda表达式中封装有限的逻...
2019-08-16 19:07:12 121
原创 20-递归函数
递归函数如果一个函数在内部调用了自身,这个函数就被称为递归函数。 接下来看一个经典的案例,求阶乘。i = 1result = 1while i<=4:result = result * ii+=1print(result)求1-100的和totle = 0for i in range(1,101):totle = i + totleprint(totle)这是最普通...
2019-08-16 19:06:08 640
原创 19-range()函数
range()函数在其他语言中,如果想要循环一个变量从1到100,要怎么写呢?for(i = 1,i<=100,i++){}python怎么实现这个功能呢?python设计了range()函数,直接实现了上面的功能。range是内置函数,无须导入。在任何地方都可以直接使用它。for i in range(5):print(i)01234从上面的执行结果,也可以看出来ra...
2019-08-16 19:04:23 241
原创 18-循环控制
循环控制循环控制,就是让程序循环运行某一段代码直到满足退出的条件,才退出循环。Python用关键字for和while来进行循环控制,但是没有其它语言的do…while语句(在Java和PHP中都有do while)。while循环while循环语句的控制结构图如下所示:while 判断表达式:内部代码块接下来看一个具体的案例,求1-100之间的总和n = 100sum = 0...
2019-08-15 18:54:05 121
原创 17-条件判断
条件判断条件判断是通过一条或多条判断语句的执行结果(True或者False)来决定执行的代码块。在Python语法中,使用if、elif和else三个关键字来进行条件判断。if语句的一般形式如下所示if condition1: # condition1为True 执行statement_block_1statement_block_1elif conditi...
2019-08-15 18:52:59 162
原创 16-set集合
集合setset集合是一个无序不重复元素的集,基本功能包括关系测试和消除重复元素。集合使用大括号({})框定元素,并以逗号进行分隔。但是注意:如果要创建一个空集合,必须用 set() 而不是 {} ,因为后者创建的是一个空字典。集合数据类型的核心在于自动去重。s = set([1,1,2,3,3,4])s{1, 2, 3, 4} # 自动去重set(“this is...
2019-08-15 18:50:57 299
原创 socket编程
socket编程什么是socket?简称套接字,是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多数是基于socket来完成通信的。socket是基于C/S架构的,也就是说socket网络编程,通常需要写两个文件,一个服务端,一个客户端Python中的socket通信逻辑如下图所示在python中,用socket....
2019-08-15 18:49:59 74
原创 15-字典
字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值的类型也可以是其它任何数据类型!字典的key必须是不可变的对象,例如整数、字符串、bytes和元组,但使用最多的还是字符串。 列表、字典、集合等就不可以作为key。同时,同一个字典内的key必须是...
2019-08-15 18:48:35 80
原创 14-元组
元组我们知道,用方括号括起来的是列表,那么用圆括号括起来的是什么,是元组。元组也是序列结构,但是是一种不可变序列,你可以简单的理解为内容不可变的列表。除了在内部元素不可修改的区别外,元组和列表的用法差不多。元组与列表相同的操作:使用方括号加下标访问元素切片(形成新元组对象)count()/index()len()/max()/min()/tuple()元组中不允许的操作,确切的说是...
2019-08-15 18:46:18 96
原创 13-列表
列表列表是Python中最基本也是最常用的数据结构之一。列表中的每个元素都被分配一个数字作为索引,用来表示该元素在列表内所排在的位置。第一个元素的索引是0,第二个索引是1,依此类推。Python的列表是一个有序可重复的元素集合,可嵌套、迭代、修改、分片、追加、删除,成员判断。从数据结构角度看,Python的列表是一个可变长度的顺序存储结构,每一个位置存放的都是对象的指针。对于这个列表 al...
2019-08-15 18:45:06 102
原创 12-布尔类型
布尔类型对于错、0和1、正与反,都是传统意义上的布尔类型。但在Python语言中,布尔类型只有两个值,True与False。请注意,是英文单词的对与错,并且首字母要大写,不能其它花式变型。布尔值通常用来判断条件是否成立。 例如:a = 1if a > 3:print(“a是一个大于3的数字”)else:print(“a不是一个大于3的数字”)Python内置的bool()函...
2019-08-15 18:43:38 427
原创 11-数字类型
数字类型数字类型是不可变类型。所谓的不可变类型,指的是类型的值一旦有不同了,那么它就是一个全新的对象。数字1和2分别代表两个不同的对象,对变量重新赋值一个数字类型,会新建一个数字对象。还是要强调一下Python的变量和数据类型的关系,变量只是对某个对象的引用或者说代号、名字、调用等等,变量本身没有数据类型的概念 。只有1,[1,2],"hello"这一类对象才具有数据类型的概念。Python...
2019-08-15 18:42:15 135
原创 10-数据类型
数据类型在python这门语言中,数据类型分为两种。 内置的和自定义的。内置的包括数字、字符串、布尔、列表、元组、字典、Bytes、集合这些常用的以及一些不太常用的数据类型。而自定义的,一般以类的形式,根据需要组合以上内置类型成为独特的数据类型。数据类型是Python语言非常重要的部分(哪部分不重要?),尤其是不同数据类型所支持的原生操作,更是重中之重,需要熟练的背在脑海里。很多时候,写大型...
2019-08-15 18:40:51 244
原创 9-运算符
运算符运算符:以1 + 2为例,1和2被称为操作数,“+” 称为运算符。Python语言支持以下类型的运算符:1.算术运算符2.比较(关系)运算符3.赋值运算符4.逻辑运算符5.位运算符6.成员运算符7.身份运算符8.三目运算符9.算术元运算符以下假设变量: a=10,b=20:python中,有三种除法,分别是10/3 3.3333333331.计算结果是浮...
2019-08-14 21:13:12 354
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人