返回值

python中的生成器、迭代器、闭包、装饰器

佐手、 提交于 2019-11-28 05:37:34
迭代器 迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 可迭代对象 以直接作用于 for 循环的数据类型有以下几种: 一类是集合数据类型,如 list 、 tuple 、 dict 、 set 、 str 等; 一类是 generator ,包括生成器和带 yield 的generator function。 这些可以直接作用于 for 循环的对象统称为可迭代对象: Iterable 。 判断是否可以迭代 可以使用 isinstance() 判断一个对象是否是 Iterable 对象: from collections import Iterable isinstance([],Iterable) # True isinstance({},Iterable) # True isinstance(123,Iterable) # False isinstance((x for x in range(10)),Iterable) # True 什么是迭代器 可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。 可以使用 isinstance() 判断一个对象是否是 Iterator 对象: from collections import

js 函数

时间秒杀一切 提交于 2019-11-28 05:35:49
为什么要有函数 如果要在多个地方求1-100之间所有数的和,应该怎么做? 什么是函数 把一段相对独立的具有特定功能的代码块封装起来,形成一个独立实体,就是函数,起个名字(函数名),在后续开发中可以反复调用 函数的作用就是封装一段代码,将来可以重复使用 函数的定义 函数声明 function 函数名(){ // 函数体} 函数表达式 var fn = function() { // 函数体} 特点: 函数声明的时候,函数体并不会执行,只要当函数被调用的时候才会执行。 函数一般都用来干一件事情,需用使用动词+名词,表示做一件事情 tellStory sayHello 等 函数的调用 调用函数的语法: 函数名(); 特点: 函数体只有在调用的时候才会执行,调用需要()进行调用。 可以调用多次(重复使用) 代码示例: // 声明函数function sayHi() { console.log("吃了没?");}// 调用函数sayHi();​// 求1-100之间所有数的和function getSum() { var sum = 0; for (var i = 0; i < 100; i++) { sum += i; } console.log(sum);}// 调用getSum(); 函数的参数 为什么要有参数 function getSum() { var sum = 0; for

redis集合数据类型---SET

◇◆丶佛笑我妖孽 提交于 2019-11-28 05:26:14
一、概述 redis的set是string类型的无序集合 集合成员是唯一的,这就意味着集合中不能出现重复的数据。 集合中最大的成员数为2^32-1(4294967295,每个集合可存储40多亿个成员) 二、键的设置 命令名称: sadd 语法:sadd key member [member……] 功能: 1)将一个或多个member元素加入到集合key当中,已经存在于集合中的member元素将被忽略。 2)假如key不存在,则创建一个只包含member元素做成员的集合。3)当key不是集合类型时,返回一个错误。 返回值: 1)被添加到集合中的新元素的数量,不包括被忽略的元素 三、键的查询 命令名称: scard 语法:scard key 功能: 1)返回集合key的基数(集合中元素的数量)。 返回值: 1)集合的基数。 2)如果key不存在时,返回0 命令名称: smembers 语法:smembers key 功能: 1)返回集合key的所有成员。 2)不存在的key被视为空集合 返回值: 1)集合中的所有成员 命令名称: sismember 语法:sismember key member 功能: 1)判断member元素是否集合key的成员 返回值: 1)如果member元素是集合的成员,返回1. 2)如果member元素不是集合的成员,或key不存在,返回0 命令名称:

开发神技能 | Python Mock 的入门

自闭症网瘾萝莉.ら 提交于 2019-11-28 05:05:11
Mock是什么 Mock这个词在英语中有 模拟的 这个意思,因此我们可以猜测出这个库的主要功能是模拟一些东西。准确的说,Mock是Python中一个用于支持单元测试的库,它的主要功能是使用mock对象替代掉指定的Python对象,以达到模拟对象的行为。简单的说,mock库用于如下的场景: 假设你开发的项目叫a,里面包含了一个模块b,模块b中的一个函数c( 也就是a.b.c )在工作的时候需要调用发送请求给特定的服务器来得到一个JSON返回值,然后根据这个返回值来做处理。如果要为a.b.c函数写一个单元测试,该如何做? 一个简单的办法是搭建一个测试的服务器,在单元测试的时候,让 a.b.c 函数和这个测试服务器交互。但是这种做法有两个问题: 1. 测试服务器可能很不好搭建,或者搭建效率很低。 2. 你搭建的测试服务器可能无法返回所有可能的值,或者需要大量的工作才能达到这个目的。 那么如何在没有测试服务器的情况下进行上面这种情况的单元测试呢?Mock模块就是答案。上面已经说过了,mock模块可以替换Python对象。我们假设 a.b.c 的代码如下: import requests def c(url): resp = requests.get(url) # further process with resp 如果利用mock模块,那么就可以达到这样的效果

scanf和cin的返回值

北城余情 提交于 2019-11-28 03:54:27
需要连续从标准输入读取数据时,可以采用下面两种不同的方式判断文件结束: [cpp] view plain copy int i; while (scanf( "%d" ,&i) != EOF){ do whatever...} while (cin >> i){ do whatever...} 首先看scanf,当成功读取时返回读取的项的数目,如:scanf("%d %d",&i,&j)返回2,scanf("%d %f %s",&i, &f, c)返回3。这个数目可以是你希望读取的项数,也可能小于希望读取的项数,在匹配失败时返回0(如:用scanf("%d",&i)接收整数而输入是英文字母时就返回0)。需要注意的是用while(scanf("%d",&i) != EOF)时,接收到像876652098643267843超过int型取值范围的数时循环也会继续执行;相同的情况出现在while(cin >> i)上时循环会立即结束。 cin >>返回值的类型是basic_istream&,代表cin的地址。在ios.h文件中定义了类型转换函数: [cpp] view plain copy operator void *() const { if (state&(badbit|failbit) ) return 0; return ( void *) this ; } 有这个函数定义后

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

巧了我就是萌 提交于 2019-11-28 03:49:03
统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下: public class Result<T> { // 接口调用成功或者失败 private Integer code = 0; // 失败的具体code private String errorCode = ""; // 需要传递的信息,例如错误信息 private String msg; // 需要传递的数据 private T data; ... } 最原始的接口如下: @GetMapping("/test") public User test() { return new User(); } 当我们需要统一返回值时,可能会使用这样一个办法: @GetMapping("/test") public Result test() { return Result.success(new User()); } 这个方法确实达到了统一接口返回值的目的,但是却有几个新问题诞生了: 接口返回值不明显,不能一眼看出来该接口的返回值。 每一个接口都需要增加额外的代码量。 所幸Spring Boot已经为我们提供了更好的解决办法,只需要在项目中加上以下代码,就可以无感知的为我们统一全局返回值。 /** *

js获取链接中的内容方法

你离开我真会死。 提交于 2019-11-28 03:20:42
原文链接: http://caibaojian.com/177.html 内容扩展 对于像下面这样的网址 http://www.caibaojian.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere 我们可以用javascript获得其中的各个部分 1, window.location.href-----------整个URl字符串(在浏览器中就是完整的地址栏) 本例返回值: http://www.caibaojian.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere · 2,window.location.protocol---------URL 的协议部分 本例返回值:http: 3,window.location.host----------URL 的主机部分 本例返回值:www.caibaojian.com 4,window.location.port-----URL 的端口部分 如果采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符 本例返回值:"" 5,window.location.pathname(URL 的路径部分(就是文件地址)) 本例返回值:/fisker

C_函数 笔记

六眼飞鱼酱① 提交于 2019-11-28 02:46:13
1.为什么需要函数 ①避免了重复性操作 ②有利于程序的模块化 2.​什么叫函数 逻辑上:能够完成特定功能的独立的代码单元 物理上: ①能接收数据(当然也能不接受) ②能够对接收的数据进行处理 ③能够将数据处理的结果返回(当然也可以不返回任何值) 总结:函数是个工具,它是为了解决大量类似问题而设计的。函数可以当做一个黑盒。 3.如何定义函数 ①格式: 函数返回值的类型 函数的名字(函数的形参列表) { 函数的执行体 } 举例: 1 ​#include<stdio.h> 2 3 void ​max(int i,int j) 4 /*void表示这个函数没有返回值*/ 5 /*max是函数名*/ 6 /*i和j是形参(形式参数),函数中的变量叫形参*/ 7 ​{ 8 if(i>j) 9 printf("%d\n",i); 10 else 11 printf("%d\n",j); 12 } 13 14 int main()​ ​//程序先从主函数开始执行 15 { 16 int a,b,c,d,e,f; 17 scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f); 18 19 max(a,b); 20 /*程序把a的值发送给i,把b的值发送给j*/ 21 /*然后程序跳到max内部执行*/ 22 /*执行完以后,i和j的值会释放掉*/ 23 max(c,d);

企业编码管理系统

你说的曾经没有我的故事 提交于 2019-11-28 01:45:42
文件结构 详细代码,pollcode.py 1 import os 2 import qrcode 3 import random 4 import time 5 import tkinter 6 from pystrich.ean13 import EAN13Encoder 7 import tkinter.filedialog 8 import tkinter.messagebox 9 from string import digits 10 11 root = tkinter.Tk() # tkinter模4 12 # 块为python的标准图形界面接口。本代码的目的是建立根窗口 13 # 初始化数据 14 number = "1234567890" 15 letter = "ABCDEFGHIJKLMNPQRSTUVWXYZ1234567890" 16 allis = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!@#$%^&*()_+" 17 i = 0 18 19 randstr = [] 20 fourth = [] 21 fifth = [] 22 randfir = "" 23 randsec = "" 24 randthr = "" 25 str_one = "" 26

Java 反射

别来无恙 提交于 2019-11-28 01:11:19
反射(reflect):通过类的Class对象来获取类的相关信息,动态操作类中的字段、调用类中的方法。 获取Class对象的三种方式: Class.forName("全类名") //调用Class类的静态方法来获取指定类的Class对象。 类名.class //通过该类的class属性来获取该类的Class对象。每个类都有class属性,class属性是类自带的,无需我们显式设置。 对象名.getClass() //通过该类的实例来获取Class对象 第二种方式最好。 性能更优。第一种、第三种是调用方法,要为方法开辟内存区,为方法中的变量分配内存,方法执行完毕还要回收此方法的内存区,时间、空间开销大。 安全性更好。第一种是通过字符串指定类名,编译时不会检查这个类存不存在,如果这个类不存在,执行时会抛出ClassNotFoundException。第二种编译时会检查类存不存在,如果不存在,通不过编译,其实写代码时IDE就会红色报错。 最简便 但有一个问题:使用第二种不能动态创建对象,使用第一种可以。 示例: 1   Class<?> Class1 = Class.forName("test.Student"); //必须写成全类名。因为类名是String形式,编译时并不知道Class对象的类型,所以只能写成?,?相当于Object 2 Class<Student> Class2 =