num

Python基础知识总结笔记(四)函数

眉间皱痕 提交于 2020-02-22 14:37:48
Python基础知识总结笔记(四)函数 python中的函数 函数中的参数 变量作用域 偏函数PFA 递归函数 高阶函数 BIFs中的高阶函数 匿名函数lambda 闭包Closure 装饰器Decorator 函数式编程Functional Programming 每天都有程序员定时讲解Python技术,分享一些学习的方法和需要留意的小细节,要资料加 624440745 1. python中的函数 ■ 函数的意义: ■1.对输入进行变换映射后输出 ,可以进行反复调用。以函数名对代码块进行封装 ■2.过程化 VS 结构化 ■ 函数的创建及结构: ■定义函数名:def foo1(num): ■参数:num ■函数体 ■返回 □有无返回: 有返回值:return返回的是对象,(如返回对象数>1返回元组)。且返回的为最后的一个return值。 无返回值 :无返回值或者return后为空。 print可以有很多,但是return只有一个。 □return与yield的区别: print:不返回任何的函数 return 结束函数,返回值,当函数被调用时,遇到结尾或return时就准备结束了。只显示最后一个return的值。 yield:丢出一个数,对象变成了生成器–记录当前运行到哪里了。 #函数的意义 n=5 for i in range(n): print(i) #

Python学习之路(三):基础知识之运算符

岁酱吖の 提交于 2020-02-22 12:35:57
1.while循环 1.1 while基本格式 while循环体格式为: while 循环条件:   循环体1   循环体2 1 count = 1 2 while count <= 10: # 循环条件的关键在于控制循环次数 3 if count != 7: 4   print(count) 5 count = count + 1 1.2 break 运用break能够在适当的条件下终止循环,即跳出当前循环,执行循环外下面的语句。 1 num = 1 2 while num < 3: 3 print(num) 4 num += 1 5 break # 程序执行到这里结束,跳出当前循环,结果只打印1,后面的程序不再执行 6 print("结束") 1.3 continue 运用break也能打断程序的循环,即退出当前循环,但是会继续执行下一次循环 1 num = 1 2 while num < 3: 3 print(num) 4 num += 1 5 continue # 程序执行到这里结束,不再执行while循环内的语句,但是会接着从while开始继续执行下一次循环 6 print("结束") 1.4 while else 1 num = 1 2 while num < 3: 3 print(num) 4 num += 1 5 continue 6 else: #

猜数字

无人久伴 提交于 2020-02-22 08:28:32
package main import ( "fmt" "math/rand" "time" ) func main() { randNum := creatRandNum() randSlice := make([]int, 4) inputSlice := make([]int, 4) famtterNum(randSlice, randNum) fmt.Println(randNum) //打印随机数 var inputNum int for true { fmt.Println("请输入一个四位数:") fmt.Scan(&inputNum) if inputNum > 999 && inputNum < 10000 { famtterNum(inputSlice, inputNum) for i := 0; i < 4; i++ { if randSlice[i] > inputSlice[i] { fmt.Printf("第%d数字小了\n", i+1) } else if randSlice[i] < inputSlice[i] { fmt.Printf("第%d数字大了\n", i+1) } else { fmt.Printf("第%d数字猜对了\n", i+1) } } } } } //生成随机数 func creatRandNum() int { rand

java8 array、list操作 汇【5】)- Java8 Lambda list统计(求和、最大、最小、平均)

ⅰ亾dé卋堺 提交于 2020-02-22 08:23:14
关于stream使用的好文推荐: 这里去看了ibm的一篇关于stream的文章,get到了不少stream还没遇到过的用法。老铁们可以去学习一下。[https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/ ] lambda优雅取出对象list中某个属性重复的集合数据 public class Test { // https://blog.csdn.net/qq_35902833/article/details/88351470 @Data @AllArgsConstructor static class Dog { String name; int age; } public static List<Dog> dogs = null; static { dogs = new ArrayList<Dog>() { { add(new Dog("黄一", 11)); add(new Dog("黄一", 22)); add(new Dog("黄三", 33)); } }; } // @SuppressWarnings("AlibabaAvoidManuallyCreateThread") public static void main(String[] args) { // dogs.stream() //

[MSSQL]ROW_NUMBER函数

元气小坏坏 提交于 2020-02-22 08:22:59
ROW_NUMBER()在SQL2K5版本中新增,该函数返回结果集 分区内 行的序列号,每个分区的第一行从 1 开始,连续不间断,后跟 OVER BY 子句或者 PARTITION BY 子句 先构造一张表,放一些数据进行,SQL脚本如下 --DROP TABLE T CREATE TABLE T(GRP_A VARCHAR(20),GRP_B VARCHAR(20),GRP_C VARCHAR(20),VAL INT) INSERT INTO T(GRP_A,GRP_B,GRP_C,VAL) SELECT 'a1','b1','c1',10 union all SELECT 'a1','b1','c2',20 union all SELECT 'a1','b2','c2',30 union all SELECT 'a1','b2','c3',40 union all SELECT 'a1','b2','c3',50 union all SELECT 'a2','b3','c3',12 union all SELECT 'a2','b3','c3',22 union all SELECT 'a2','b3','c3',32 SELECT * FROM T 执行查询后的结果: GRP_A GRP_B GRP_C VAL -------------------- -----------

寻找和为定值的两个数

烈酒焚心 提交于 2020-02-22 07:40:49
题目: 输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。 例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。 解析:如果数组是 无序 的,先排序(n*logn),然后用两个指针i,j,各自指向数组的首尾两端,令i=0,j=n-1,然后i++,j--,逐次判断 a[i]+a[j]?=sum,如果某一刻a[i]+a[j]>sum,则要想办法让sum的值减小,所以此刻i不动,j--,如果某一刻 a[i]+a[j]<sum,则要想办法让sum的值增大,所以此刻i++,j不动。所以,数组无序的时候,时间复杂度最终为 O(n*logn+n)=O(n*logn),若原数组是 有序 的,则不需要事先的排序,直接O(n)搞定,且空间复杂度还是O(1),此思路是相对于上述 所有思路的一种改进 。(如果有序,直接两个指针两端扫描,时间O(N),如果无序,先排序后两端扫描,时间O(N*logN+N)=O(N*logN),空间始终都为O(1)) 。 总结 : 不论原序列是有序还是无序,解决这类题有以下三种办法:1、二分(若无序,先排 序后二分),时间复杂度总为O(n*logn),空间复杂度为O(1);2、扫描一遍X-S[i] 映射到一个数组或构造hash表

Codeforces Round #621 (Div. 1 + Div. 2) Cow and Haybales

前提是你 提交于 2020-02-22 07:00:41
解题报告: 思路:越靠近第一个数的位置移动到第一个数代价最小。 模拟过程: 4 5 1 0 3 2 从下标为1的开始移,发现为0,无法移动。 从下标为2的开始移,有3个,但每次移动需要2,只能移动2个。变为3 0 1 2 无法移动了。答案就是3 代码: #include<bits/stdc++.h> using namespace std; typedef long long ll; const ll N = 100+10; ll num[N]; void solve(){ ll n, d; scanf("%lld%lld", &n, &d); for(ll i=0; i<n; ++i){ scanf("%lld", num+i); } for(ll i=1; i<n; ++i){ num[0] += min(i*num[i], d)/i; d -= i*num[i]; if(d <= 0)break; } printf("%lld\n", num[0]); } int main(){ ll t; scanf("%lld", &t); while(t--){ solve(); } return 0; } 来源: CSDN 作者: baronLJ 链接: https://blog.csdn.net/jun_____/article/details/104423625

2019-2020 ICPC, NERC, Southern and Volga Russian Regional Contest B. The Feast and the Bus (经典贪心)

徘徊边缘 提交于 2020-02-22 05:44:23
题目链接 思路:先把k个团队的人数从大到小排序,我们发现s最小是num【1】,那么s最大是num【1】+num【2】?可是我们这样想的话容易被毒瘤数据tle,所以还得优化一下,我们可以想我们最优的方案是不是一辆车每次尽可能答案两个团队,同时人数是不是尽可能的满?所以我们可以枚举max(a【1】+a【k】、a【2】+a【k-1】。。。。),这个才是s的最大值,这样缩小了s的范围以后就可以通过枚举s求出最小值。 # include <bits/stdc++.h> using namespace std ; const int maxn = 5e5 + 1 ; typedef long long ll ; bool cmp ( int a , int b ) { return a > b ; } int n , k , num [ maxn ] , t , maxx = 0 ; int main ( ) { scanf ( "%d%d" , & n , & k ) ; for ( int i = 1 ; i <= n ; ++ i ) scanf ( "%d" , & t ) , num [ t ] ++ ; sort ( num + 1 , num + 1 + k , cmp ) ; for ( int i = 1 , j = k ; i <= j ; ++ i , -- j ) if

TreeMap集合特点、排序原理

柔情痞子 提交于 2020-02-22 04:41:37
TreeMap特点(类似于TreeSet): 1.无序,不允许重复(无序指元素顺序与添加顺序不一致) 2.TreeMap集合默认会对键进行排序,所以键必须实现自然排序和定制排序中的一种 3..底层使用的数据结构是二叉树 两种排序的用法(参照TreeSet集合): 1.TreeSet集合排序方式一:自然排序Comparable http://blog.csdn.net/baidu_37107022/article/details/70207564 2.TreeSet集合排序方式二:定制排序Comparator http://blog.csdn.net/baidu_37107022/article/details/70207633 练习: 1,创建公司Company类,拥有属性:no(公司编号)、name(公司名称)、num(公司人数)、founder(创始人)、info(公司简介),要求属性进行封装即:属性私有并提供公有方法。 (a)请根据下列信息创建5个公司对象,各属性值来自下面的信息 ”1001,百度,2000,李彦宏,全球最大的中文搜索引擎、致力于让网民更便捷地获取信息,找到所求。” “1010,腾讯,10000,马化腾,深圳市腾讯计算机系统有限公司成立于1998年11月,由马化腾、张志东、许晨晔、陈一丹、曾李青五位创始人共同创立。” “1020,阿里巴巴,20000,马云

Python笔记

╄→尐↘猪︶ㄣ 提交于 2020-02-21 22:37:13
文章目录 一、基础 1. 注释 单行注释 TODO注释 多行注释 2. 数据类型 3. 运算符 数值运算 字符串运算 成员运算符 身份运算符 4. 转义字符 二、高级变量 1. 列表 定义 方法 2. 元组 定义 方法 3. 字典 定义 方法 4. 字符串 定义 方法 5. 切片 6. 全局变量 三、判断与循环 1. 判断 if else elif 2. 循环 while for 四、函数与方法 1. 封装 2. 导入 3. 参数 4. 返回值 5. 常用函数 输入 输出 随机数 eval 其他 五、类 1. 封装 实例属性与实例方法 类属性与类方法 静态方法 案例与总结 内置方法 私有属性与私有方法 2. 多态 单继承 多继承 重写 六、异常 1. 异常捕获 2. 异常传递 3. 异常抛出 七、文件操作 1. 文件读写 2. 文件访问方式 3. 大文件读取 八、模块 1. 模块导入 2. 包 一、基础 1. 注释 单行注释 单行注释快捷键crtl+/ # 行注释 print ( "hello world" ) # 语句注释 重要代码块使用等号隔开 # ====================== # ====================== TODO注释 # TODO 待完成任务 多行注释 """ 多行注释 """ 2. 数据类型 Python中定义变量时不需要指定变量类型