模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。 模块可以从其他程序 输入 以便利用它的功能。这也是我们使用Python标准库的方法。...如果找到了这个文件,这个模块的主块中的语句将被运行,然后这个模块将能够被你 使用 。注意,初始化过程仅在我们 第一次 输入模块的时候进行。另外,“sys”是“system”的缩写。...sys模块中的argv变量通过使用点号指明——sys.argv——这种方法的一个优势是这个名称不会与任何在你的程序中使用的argv变量冲突。另外,它也清晰地表明了这个名称是sys模块的一部分。...当你为dir()提供一个模块名的时候,它返回模块定义的名称列表。...概括 ---- 模块的用处在于它能为你在别的程序中重用它提供的服务和功能。Python附带的标准库就是这样一组模块的例子。我们已经学习了如何使用这些模块以及如何创造我们自己的模块。
我在控制台写了一段无效的代码,将print()的括号去掉,在执行这条语句的时候,系统提示语法错误,无效的语句(我百度翻译的)。这就是错误处理器所作的工作。 再换一种方式写错误: ?...我们通常把容易产生异常的语句放置在try块中,把做异常处理的语句放在except块中。...你需要指明错误/异常的名称和伴随异常触发的异常对象。这个异常应该是Error和Exception类的子类。这就用到了继承的思想,使用__init__方法初始一些方法和参数。...while True: # our usual file-reading idiom line = f.readline() if len(line) == 0:...这里使用了time的sleep函数,里面的参数是它的运行间隔。 ? 这样我们就有时间去使用CTRL+c使程序发生异常。这时候我们发现finally块中的语句还是运行的,文件正常关闭了。
序列有两种 tuple(定值表; 也有翻译为元组) 和 list (表)。 ?...从含义可以看出和数学的开区间,闭区间正好相反。所以这个地方容易记错。 ?...a3 = [1,[2,3]] #空序列 a4 = [] print(a3,type(a3)) print(a4) 序列元素的引用 这点和数组有点像了,我们可以通过下标(从0开始)去获取元素。...: 基本样式[下限:上限:步长] print(a1[:5]) # 从开始到下标4 (下标5的元素 不包括在内) print(a1[2:]) # 从下标2到最后...print(a1[0:5:2]) # 从下标0到下标4 (下标5不包括在内),每隔2取一个元素 (下标为0,2,4的元素) print(a1[2:0:-1]) # 从下标
默认参数 ---- 对于参数有时候我们希望他是可选的,前面介绍了函数柯里化,当然还有其他的解决方案。如果不想给某些参数提供值的话,就让这写参数使用默认值。...在函数定义的时候给参数赋值使用(参数,参数=值......),从而给形参指定默认值。 注意默认参数的值是一个不可变的参数(也就是说默认参数是一个确定的值)。...使用的方法就是在函数定义形参的时候写上(形参=默认值)即可 #注意默认值的参数不可变 def say(message,times = 1): print(message*times) say(...重要 只有在形参表末尾的那些参数可以有默认参数值,即你不能在声明函数形参的时候,先声明有默认值的形参而后声明没有默认值的形参。 这是因为赋给形参的值是根据位置而赋值的。...我们是使用关键字(参数名)而不是参数的位置来给函数指定实参。 优势 1.不用担心参数的顺序,使使用函数变得简单。 2.假设其他的参数都有默认值,我们可以只给我们想要的参数赋值。
7.从0开始品牌的查询 商品分类完成以后,自然轮到了品牌功能了。 先看看我们要实现的效果: ? 接下来,我们从0开始,实现下从前端到后端的完整开发。...7.1.设计前端页面 为了方便看到效果,我们新建一个MyBrand.vue(注意先停掉服务器),从0开始搭建。 ?...,数组的每个元素是一行数据的对象,对象的key要与表头的value一致 loading:是否显示加载数据的进度条,默认是false no-data-text:当没有查询到数据时显示的提示信息...,number类型,无默认值 select-all :是否显示每一行的复选框,Boolean类型,无默认值 value:当表格可选的时候,返回选中的行 我们向下翻,找找有没有看起来牛逼的案例...加上.sync代表服务端排序,当用户点击分页条时,该对象的值会跟着变化。监控这个值,并在这个值变化时去服务端查询,即可实现页面数据动态加载了。
首先,我们来复习下数组的定义 数组是一组连续内存空间存储的具有相同类型的数据,整个排列像一条线一样,是一种线性表数据结构。 ? 那么,问题来了,数组的下标为什么要从 0 开始?从 1 开始行不行?...【0】位置的 `微` ② 读取上面数组的 【9999】位置的 `注` 由于基于计算的内存地址读取数据,上面两种情况的耗费的时间是一样,时间复杂度为 O(1) 注意:想要使用随机访问,一定要满足两个条件...: 1、连续的内存空间 2、相同类型的数据 知识补充: 与随机访问对应的是顺序访问 顺序访问:链表在内存中不是按顺序存放的,而是通过指针连在一起,访问某一元素,必须从链头开始顺着指针才能找到某一个元素...突然,一个奇怪的念头冒了出来,假如我们将数组的首个下标从 1 开始 ,会怎么样? ?...我们读取 下标为n 的数据 公式: Tom哥[n] = base_address + (n-1) * data_size 与上面的公式的区别,多了一次 n-1 操作 虽然也能读取数组中的值,但是多了一次减法的指令运算
对等网与客户/服务器结构网络 对等网不但方便连接两台以上的电脑,而且更关键的是它们之间的关系是对等的,连接后双方可以互相访问,没有主客阶级差异;对等网不能共享可执行程序 客户/服务器结构的局域网,能共享服务器上的可执行程序...网络拓扑结构的定义 计算机网络中的拓扑结构是指网络中的计算机、线缆,以及其他组件的物理布局。...在结构化网络模型中,节点维护的邻居都是有规律的,P2P网络的拓扑结构是严格受到控制的,信息资源将有规则的组织存放到合适的节点,查询以较少的跳数 【跳数实际上是一个数值(振幅),简单的说就是指一个数(空间...)可以被等分成多少个另一个数(相互隔离的或抽象的或连续的空间)的值。】...|2|数据链路层|互联设备传送和识别数据帧|数据帧和比特流之间的转化| |1|物理层|以0、1来表示部分物理信息|电压高低、灯光闪灭|
局部变量 ---- 在我们定义函数的过程中,函数内外具有相同名称的变量是没有任何关系的。变量的名称对于函数来说是局部的,而它所在的代码块就是它的作用域。...使用global语句 ---- 如果想要在函数中为函数外的变量赋值,我们就要声明这个变量是全局的。 但是要尽量避免这么做,这样会使你的代码模糊。...#全局变量global #global定义的变量是全局的并且定义在函数内的变量可以为在函数外的变量赋值 def func(): global x print('x is',x)...前三行是局部变量,后三行是全局变量,可以看出明显的区别就是,局部变量无论你怎么改变它都不影响除了它代码块以外的变量值,而全局变量在函数内的变量的改变,其他作用域的变量值也会发生改变。
这就需要根据实际的项目,将程序文件进行归类,不同的功能放在不同的目录。这就是包的作用之一,Golang中的包就像PHP中的命名空间类似。...包名不能使用Golang自带的关键字。 包名必须放在程序文件的第一行,在定义包之前不能有任何内容。...下面这种写法是正确的。...❞ 导包的注意事项 导入的包,根据包的类型进行分组。一般我们把包分为Golang内置包和第三方包。推荐使用下面的导包风格。中间多一空行,增加代码的可阅读性。...当main.go去调用pack1和pack2的时候,发现pack1调用了pack3,于是最先调用的包应该就是pack3中的init()函数。 main.go文件。
特殊的方法 ---- 之前学习的都是一些常用的方法,为了使我们的学习更加的完整,我们在这里学习一些特殊的方法。 一般说来,特殊的方法都被用来模仿某个行为。...然而这在大多数情况下是正确的,但是并非100%的准确。如果你的语句块只包含一句语句,那么你可以在条件语句或循环语句的同一行指明它。...在函数中接收元组和列表 ---- 当要使函数接收元组或字典形式的参数的时候,有一种特殊的方法,它分别使用*和**前缀。这种方法在函数需要获取可变数量的参数的时候特别有用。...total = 0 for i in args: total += pow(i,power) return total 运行结果 ?...由于在args变量前有*前缀,所有多余的函数参数都会作为一个元组存储在args中。如果使用的是**前缀,多余的参数则会被认为是一个字典的键/值对。
TIP:数据库的名称可以是满足以下条件的任意UTF-8字符串 1. 不能是空字符串 2. 不得含有' '(空格)和.和$和/和\和\0 (空字符) 3. 应全部小写 4....show dbs没有显示刚创建的数据库 可以看到,虽然 use noc创建了数据库noc,但是在显示的时候并没有这个数据库。...,则需要使用投影查询(不显示所有字段,只显示指定的字段),就好像MySQL中的as关键字的使用。...$pull如果匹配指定的值,从数组中删除相应的对象$pullAll如果匹配任意的值,从数据中删除相应的对象$addToSet如果不存在则增加一个到数组$set修改对象属性值 e.g. db.shop.insert...聚合操作将多个文档中的值 分组 在一起,并可以对分组后的数据进行各种操作,以返回一个结果。
while语句 在条件为真的情况下while语句会执行一次块语句,while语句有一块可选的else语句会在条件为假的时候执行。...while 条件: 执行语句 else:#可选的语句块 执行语句 单独使用if只能进行一次判断,所以我们的小游戏还不完整,使用while语句就能达到想要的效果,猜错继续循环输入,直到猜对为止...for循环 for...in是另一种循环方式,它在一个序列的对象上递归的使用每一个元素。...for i in range(1, 5): print i else: print 'The for loop is over' range函数生成一个从1开始到4结束的序列。...概括 我们已经学习了如何使用三种控制流语句——if、while和for以及与它们相关的break和continue语句。它们是Python中最常用的部分,熟悉这些控制流是应当掌握的基本技能。
简介 ---- 在之前的编程中,我们的信息打印,数据的展示都是在控制台(命令行)直接输出的,信息都是一次性的没有办法复用和保存以便下次查看,今天我们将学习Python的输入输出,解决以上问题。...type(f) print(f) f = open('poem.txt','r') while True: line = f.readline() if len(line) == 0:...如何工作 open方法第一个参数是你的文件名和路径,我的文件和程序在同一个文件夹下所以只需要填写文件名即可,第一个参数后面可以跟很多参数来完成不同的操作,而且很多参数是由默认值的,通过我们之前对函数的学习知道这样做的好处...读文件的时候使用的是循环读取,使用包装类的readline()方法,读取每一行,当方法返回0时,表示文件读取完成,破坏循环条件,关闭IO。 ? 自动创建的文件。...这里使用的就是二进制的写入,读取的时候也使用的二进制,和写入的数据有关,这个大家多多留意。 Python的输入与输出就写到这里,大家多多探索会有更多的知识等待你发掘。
假设大家已经安装好python的环境了。...Windows检查是否可以运行python脚本 Ctrl+R 输入 cmd 在命令行中输入python 如果出现下面结果,我们就可以开始python的学习了。...第一个python脚本 我使用的python自带的python shell学习的代码 打开的窗口如图 这个窗口主要是用来展示运行结果,编辑窗口通过“File——》new File”。...快速上手已经结束,新手司机开始上车。
确定目标 在一切系统开始以前,我们应该搞清楚我们的系统在完成以后,应该有一个什么样的负载能力。 ?...算法很容易实现:假设有100万用户,则用户id 为0-999999.要求的QPS为5万, 客户端得知QPS为5万,总用户数为100万,它计算 100万/5万=20,所有的用户应该分为20组,如果 time...为此,我利用python脚本 结合ethtool 工具编写了一个简单的工具,通过它我们可以直观的监视到网络的数据包通过情况如何。它可以客观的显示出我们的网络有如此多的数据传输在发生。...同时还会把日志记录下来,给以后的分析提供原始数据。线上系统更多使用opentsdb这样的时序数据库,这里资源有限,所以用了一个原始的方案。 监控显示日志大概这样: ? 6....对于第1种消息客户端的摇红包请求消息 是这样处理的,从客户端拿到摇红包请求消息,试图从SET的红包队列里 获取一个红包,如果拿到了就把红包信息 返回给客户端,否则构造一个没有摇到的消息,返回给对应的客户端
self ---- 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。...可以注意到存储对象的计算机内存地址也打印了出来。这个地址在你的计算机上会是另外一个值,因为Python可以在任何空位存储对象。...从报错中看出系统在调用这个类方法的时候默认给它传了一个参数,所以我们必须要有这个self,不为别的,因为报错。。。。。。...__init__方法 ---- init是一个初始化块,在对象被建立的同时运行这个代码块,为你的对象初始化。需要注意的是名称的开始和结尾都要有两个下划线。...__init__(self,name,age)就是它,开始的时候无限报错的就是它。 小总结 ---- 我们已经研究了类和对象的多个内容以及与它们相关的多个术语。
谈到数组时,当被问及数组是从什么数开始时,估计大部分程序员都会直接说出数组当然是从0开始的。这个回答当然没有错,现在我们就来了解一下C#中的下限非0的数组。 ...return returnDataTable; } //添加列 for (var dataTableColumnsCount = 0;...dataTableColumnsCount].ToString()); } //添加行 for (var dyadicArrayRow = 0;...dyadicArrayRow 0); dyadicArrayRow++) { var addDataRow...stack = new StackTrace(); Assembly probablyNotRewritten = null; for (int i = 0;
Python是程序、脚本或者软件 python helloworld.py运行你的Python help()帮助你的Python 命名的规范 繁多的概念 Python 简单 人们都说Python是一门简单的语言...Python的精髓在于,编程的过程中你会更专心的去解决问题,而不是去研究结构语法。 易学 在我的学习过的语言中,Python更容易上手,甚至可以说是“简单”,主要体现在语法的简单。...来指示它,因为Python会弄不明白这个字符串从何处开始,何处结束。所以,你需要指明单引号而不是字符串的结尾。可以通过 转义符 来完成这个任务。你用\'来指示单引号——注意这个反斜杠。...值得注意的一件事是,在一个字符串中,行末的单独一个反斜杠表示字符串在下一行继续,而不是开始一个新的行。...标识符名称的其他部分可以由字母(大写或小写)、下划线(‘ _ ’)或数字(0-9)组成。 标识符名称是对大小写敏感的。例如,myname和myName不是一个标识符。
lambda ---- lambda表达式,是一个方法的简化形似,它没有自己的代码块,它后面的语句就是它的逻辑主体。lambda语句被用来创建新的函数对象,并且在运行的时候返回它们。...看一个网上的例子: list(filter(lambda x:True if x % 3 == 0 else False,range(100))) list(map(lambda x:True if x...% 3 == 0 else False,range(100))) 运行结果 ?...这里使用了filter和map方法,我们简单来看一下; 在filter中传入一个方法一个序列,这个方法会将序列中的值依次传入到方法中然后生成一个新的序列。...你可以通过定义类的__repr__方法来控制你的对象在被repr函数调用的时候返回的内容。
今天在使用其中的 DatePicker 日期组件时遇到一个问题,其中有一些按钮显示英文,如下图所示: ?... locale={zhCN} />; // 设置为中文 注意:DatePicker、MonthPicker、RangePicker、WeekPicker 部分 locale 是从 value 中读取,需要先正确设置...showTime={{ format: 'HH:mm' }} format="YYYY-MM-DD HH:mm" placeholder={['开始时间...YourNonceCode' }}> My Button 声明:本文由w3h5原创,转载请注明出处:《Ant Design for React的DatePicker...日期组件设置默认显示中文的方法》 https://www.w3h5.com/post/440.html
领取专属 10元无门槛券
手把手带您无忧上云