返回值

python第六课

£可爱£侵袭症+ 提交于 2019-12-05 08:41:30
第六课:from urllib import requestfrom urllib import parseimport jsonimport requests------urllib-------# get请求方式url = 'http://api.nnzhp.cn/api/user/stu_info'data = {"stu_name":"xiaohei"}tmpdate = parse.urlencode(data) #将数据变换为KV K=vprint(tmpdate)# 接口 + 参数tmpurl = url + '?' + tmpdate #接口和参数拼接res = request.urlopen(tmpurl) #请求接口resForRead = res.read().decode() #通过read方法获取返回值结果,返回值结果是bytes;通过decode将bytes转换成字符串resFORDict = json.loads(resForRead) #通过json将字符串转换为字典print(resForRead)print(resFORDict)# post请求方式url = "http://api.nnzhp.cn/api/user/login"date = {"username":"niuhanyang","passwd":"aA123456"

linux C获取system执行返回值

╄→гoц情女王★ 提交于 2019-12-05 06:58:41
注意,是获取执行的返回值,执行结果的返回值,一般成功0,失败看情况 具体如下: #include "stdio.h" #include "unistd.h" #include <stdlib.h> #include <sys/wait.h> #include <sys/types.h> int main(int argc, char* argv[]) { int ret = 0; while(1) { ret = system("ls") ; printf(WEXITSTATUS(ret)) ; sleep(2) ; } return 0; }   效果如下: 来源: https://www.cnblogs.com/ChenChangXiong/p/11912164.html

函数的基本操作

允我心安 提交于 2019-12-05 06:45:52
自学函数的笔记整理 函数与函数式编程 编程方法: 1、面向对象 -->类 -->class(关键字) 2、面向过程 -->过程 -->def(关键字) 3、函数式编程 -->函数 -->def(关键字) python:非纯函数式编程,也是面向对象的(最火) 定义函数和定义过程的区别: 过程即为没有返回值的函数 1 # 定义函数 2 def func1(): 3 print('in the func1') 4 return 0 5 # 定义过程 6 def func2(): 7 print('in the func2') 8 9 x = func1() # x接收返回值0 10 y = func2() # y接收返回值空(python中给出了隐式返回值None) 11 print(x, y) # 0 None 区别 1 def test(x): 2 ''' 3 文档描述 4 :param x: 5 :return: 6 ''' 7 # 函数体(逻辑) 8 x += 1 9 # 定义返回值,终止函数的运行 10 return x 函数结构 1 import time 2 def test(): 3 ''' 4 文档描述 5 :param x: 6 :return: 7 ''' 8 # 函数体(逻辑) 9 time_format = '%Y-%m-%d %X' # X:时分秒 10

Java方法

时光毁灭记忆、已成空白 提交于 2019-12-05 06:36:52
方法概述 为了避免重复的代码过多,Java中提出了方法的概念。方法 : 就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。 当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象。 方法的定义 方法的专业术语 参数 :进入方法的数据 返回值 :从方法中出来的数据 定义格式: 格式详解: 修饰符: 现阶段的固定写法,public static。具体怎么写,根据需求来确定 返回值类型: 也就是方法最终产生的数据结果是什么类型 方法名称 :方法的名字,规则和变量一样,小驼峰 参数类型 :进入方法的数据是什么类型 参数名称 :进入方法的数据对应的变量名称。注意:参数如果有多个,使用逗号进行分隔 方法体: 方法需要做的事情,若干行代码 return: 两个作用,第一停止当前方法,第二将后面的返回值还给调用处 返回值 :也就是方法执行后最终产生的数据结果。注意:return后面的“返回值”,必须和方法名称前面的“返回值类型”,保持对应。 注意: 如果要定义一个方法就必须两个明确。明确返回值类型,明确参数列表。 如何确定方法是否有要定义参数 有参数 :方法需要一些外界数据条件,才能完成方法的功能主体的时候,就必须定义参数。 例如: 两个数字相加,必须知道两个数字是各自多少,才能相加。 无参数 :方法不需要任何外界数据条件

简单看看@RequestBody注解原理

我只是一个虾纸丫 提交于 2019-12-05 06:17:06
又到了很无聊的时候了,于是随便看看源码假装自己很努力的样子,哈哈哈;   记得上一篇博客随便说了一下RequestBody的用法以及注意的问题,这个注解作为非常常用的注解,也是时候了解一波其中的原理了。   温馨提示:阅读本篇博客,默认你之前大概看过springmvc源码,懂得其中的基本流程 1.HttpMessageConverter接口    这个接口就是@RequestBody和@ResponseBody这两个注解的精髓,我们就先看看这个顶层接口定义了哪些方法: public interface HttpMessageConverter<T> { //判断当前转换器是否可以解析前端传过来的数据 boolean canRead(Class<?> clazz, @Nullable MediaType mediaType); //判断当前转换器是否可以将后端数据解析为前端需要的格式 boolean canWrite(Class<?> clazz, @Nullable MediaType mediaType); //当前转换器能够解析所有的数据类型 List<MediaType> getSupportedMediaTypes(); //这个方法就是读取前端传过来的数据 T read(Class<? extends T> clazz, HttpInputMessage

go中的关键字-defer

ぐ巨炮叔叔 提交于 2019-12-05 05:02:45
1. defer的使用   defer 延迟调用。我们先来看一下,有defer关键字的代码执行顺序: 1 func main() { 2 defer func() { 3 fmt.Println("1号输出") 4 }() 5 defer func() { 6 fmt.Println("2号输出") 7 }() 8 }   输出结果: 1 2号出来 2 1号出来   结论:多个defer的执行顺序是倒序执行(同入栈先进后出)。   由例子可以看出来,defer有延迟生效的作用,先使用defer的语句延迟到最后执行。 1.1 defer与返回值之间的顺序 1 func defertest() int 2 3 func main() { 4 fmt.Println("main:", defertest()) 5 } 6 7 func defertest() int { 8 var i int 9 defer func() { 10 i++ 11 fmt.Println("defer2的值:", i) 12 }() 13 defer func() { 14 i++ 15 fmt.Println("defer1的值:", i) 16 }() 17 return i 18 }   输出结果: 1 defer1的值: 1 2 defer2的值: 2 3 main: 0   结论

python 魔术方法上下文管理

倖福魔咒の 提交于 2019-12-05 04:59:18
上下文管理 文件IO操作可以对文件对象使用上下文管理,使用with……as语法。 with open("test") as f: pass 仿照上例写一个自己的类,实现上下文管理。 class Point: pass with Point() as p: pass 结果为: --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-1-77f0ac1b02c7> in <module> 2 pass 3 ----> 4 with Point() as p: 5 pass AttributeError: __enter__ 提示属性错误,没有__exit__,看了需要这个属性。 上下文管理对象 当一个对象同时实现了 __enter__()和__exit__()方法,它就属于上下文管理对象。 __enter__():进入于此相关的上下文。如果存在该方法,with语法会把该方法的返回值作为绑定到as子句中指定的变量上。 __exit__:退出与此对象相关的上下文。 class Point: def __init__(self): print("init") def _

iOS之轻松上手block

和自甴很熟 提交于 2019-12-05 04:53:36
导语 不会使用block的iOS程序员,不是一个合格的程序员 学会了block,你再也不想用繁琐的代理 block没有你想象中的那么难,不要害怕,不要畏惧,勇敢尝试 笔者入行iOS时已经是ARC的天下,所以这里只说ARC环境下的使用 什么是block block其实就是一个代码块,把你想要执行的代码封装在这个代码块里,等到需要的时候再去调用。那block是OC对象吗?答案是肯定的 来自官方文档 笔者以英语3.9级的水平给大家翻译下,“block是一个OC对象,这意味着它能被添加到集合,比如NSArray、NSDictionary” block的定义 block属性或变量 格式:返回值类型(^block名称)(参数列表) / 定义属性,block属性可以用strong修饰,也可以用copy修饰 有小伙伴留言说苹果官方建议用copy,笔者查了下文档, 确实是这样的,不过笔者未测试出copy与strong的区别,大家喜欢啥就用啥吧 / @property (nonatomic, strong) void(^myBlock)();//无参无返回值 @property (nonatomic, strong) void(^myBlock1)(NSString *);//带参数 @property (nonatomic, strong) NSString *(^myBlock2)

C#中的协变和逆变

て烟熏妆下的殇ゞ 提交于 2019-12-05 04:38:58
1.为什么要有协变、逆变? 通常只有具备继承关系的对象才可以发生隐式类型转换,如Base b=new sub()。 协变和逆变可以使得更多的类型之间能够实现隐式类型转换、类型安全性有了保障。 2、为什么泛型接口要引入协变、逆变? 基于以上原因的同时、许多接口仅仅将类型参数用于参数或返回值。所以支持协变和逆变后泛型的使用上有了更大的灵活性 3. 为什么协变和逆变对泛型有很多限制? 否则的话,这样的类型转换不安全。 协变是一个细节化程度高的类型赋值给细节化程度低的类型类型。例如一个方法M,返回值是Giraffe(长颈鹿),你可以把M的返回值赋值给Animal(动物)类型,因为Animal类型是细节化程度底的类型,和Giraffe类兼容。那么方法是协变的,因为当你创建了协变接口,需要用到关键字out,返回值从方法中out。 这根本就不是协变的意思。这只是描述了赋值兼容性,两个类型可以兼容。 协变的准确定义是什么呢? 先不考虑类型,我们考虑数学意义上的整数。考虑整数之间的小于关系——≤。这里关系实际上就是一个方法,接受2个数,返回布尔值。 现在我们考虑一下对于整数的投影,投影指的是一个函数,接受一个整数,返回另一个整数。比如 z → z + z 我们可以定义为D(double), z → 0 - z定义为N for (negate), z → z * z,定义为S(square).

redis的常用指令及操作之一

隐身守侯 提交于 2019-12-05 03:48:26
一、 Redis中常用的与数据库有关的指令 说明 : 使用redis的默认配置器动redis服务后,默认会存在16个库,编号从0-15 可以使用select 库的编号 来选择一个redis的库 清空当前的库 FLUSHDB 清空全部的库 FLUSHALL 1. DEL 二、 Redis中常用的与key相关的指令 语法 : DEL key [key ...] 作用 : 删除给定的一个或多个key 。不存在的key 会被忽略。 可用版本: >= 1.0.0 时间复杂度: O(N),N 为被删除的key 的数量。 删除单个字符串类型的key ,时间复杂度为O(1)。 删除单个列表、集合、有序集合或哈希表类型的key ,时间复杂度为O(M),M为以上数据结构内的元素数量。 返回值: 被删除key 的数量。 2. EXISTS 语法: EXISTS key 作用: 检查给定key 是否存在。 可用版本: >= 1.0.0 时间复杂度: O(1) 返回值: 若key 存在,返回1 ,否则返回0 。 3. EXPIRE 语法: EXPIRE key seconds 作用: 为给定key 设置生存时间,当key 过期时(生存时间为0 ),它会被自动删除。 在Redis 中,带有生存时间的key 被称为『易失的』(volatile)。生存时间可以通过使用DEL 命令来删除整个key 来移除