赋值语句

第5单元数组总结

孤街浪徒 提交于 2019-12-24 20:20:14
基本知识: 第1课、一维数组的定义 1.数组就是一组相同类型的变量。他们往往都是为了表示同一批对象的统一属性,如一个班级所有同学的身高,全球所有国家的人口数等。 2.数组可以是一维的,也可以是二维或者多维的. 3.在数学中可以用hi表示第i个同学的身高,i为编号,在c++中,使用一维数组时,一般是从0开始编号。,h[i]就表示第i+1个同学的身高,i称为下标变量。 4.读入50个同学的身高,语句就可以这样写: for(i=0;i<=49;i++) cin>>h[i]; 5.数组经常应用在大批量、同一类型的数据处理任务中。 6.定义一维数组的格式如下: 类型标识符 数组名[常量表达式]; 7.其中类型标识符可以是任何基本数据类型,也可以是结构体等构造类型,相同类型的数组可以一起定义.数组名必须是合法的标识符,常量表达式的值即为数组元素的个数。 8.注意:int h[50] 就表示定义一个一维数组h共有50个元素,它们的编号从0开始到49,每个元素都是int类型。 9.还有几种特殊的定义: int d[50],g[100]; int a[5*10]; #define N 50int b[N] 10.假设要储存10000个人的中考成绩和性别,可以定义两个数组: int score[10000];//或者float score [10000]; bool xb[10000];/

python入门基础——第二讲

偶尔善良 提交于 2019-12-24 09:26:27
python入门基础——第二讲 python基础 py简介 python又称胶水代码,应用广泛且库较多;python本身不是一门很火的语言,是由于人工智能,带动了python的发展 py网站 【Github 】:源代码托管网站——哪些项目最流行,即现代IT趋势 py历史 python2.7——python3.0这个版本的 ” 升级 “ 是python ” 换代 “ 即2再没有升级必要,一切重新开始,于是python3系列诞生 hello world name=input('请输入你的名字:') print('hello,',name) 请输入你的名字:ada hello, ada py语法 标识符 标识符由字母、数字、下划线组成 不能以数字开头 以下划线开头的标识符有特殊意义;_foo代表不能直接访问的类属性 以双下划线开头:__foo代表类的私有成员;以双下划线开头和结尾的表示特殊方法专用标识:__init __()代表类的构造函数 py可以同一行显示多条语句,用“;”分开 行与缩进 if a==2: print('ture') else: print('wrong') 多行语句 错误示例 one=1 two=3 three=6 a=one +two +three print(a) 1 正确示例 one=1 two=3 three=6 a=one\ +two\ +three

连续赋值、过程赋值、过程性连续赋值

こ雲淡風輕ζ 提交于 2019-12-24 07:12:16
连续赋值: 1)语法上,有关键词“assign”来标识; 2)左侧被赋值的数据类型必须是线网型数据(wire); 3)连续赋值语句不能出现在过程快中(initial/always); 4)连续赋值语句主要用来对组合逻辑进行建模以及线网数据间进行描述; 5)连续赋值语句产生作用后,赋值表达式中信号的任何变化都将立即被反映到赋值线网型数据的取值上; 过程赋值: 1)语法上,没有关键词“assign”; 2)左侧被赋值的数据类型必须是寄存器类型的变量(reg); 3)过程性连续赋值语句只能出现在过程块中; 4)过程性连续赋值语句主要用来对时序逻辑电路进行行为描述; 5)在过程赋值语句的情况下,只有在过程赋值语句被执行时才执行赋值操作,语句执行完后被赋值变量的取值不再受到赋值表达式的影响; 过程性连续赋值语句: 在verilog HDL中,有两组过程性连续赋值语句可以实现连续赋值:assign-deassign,只能用于对寄存器型变量的连续赋值操作,而不能用来对线网型数据进行连续赋值操作;force-release,它不仅能对寄存器型变量产生作用,也对线网型数据产生作用。force语句的优先级高于assign 。 deassign 撤销对某一个寄存器型变量的连续赋值后,该寄存器变量仍然保持deassign操作之前的取值。 过程性连续赋值语句比普通的过程赋值语句有更高的优先级。 举例

es6面试题总结

一曲冷凌霜 提交于 2019-12-24 05:50:24
ES6 let和const let 作用: 与var类似, 用于声明一个变量 特点: 在块作用域内有效 不能重复声明 不会预处理, 不存在提升 应用: 循环遍历加监听 使用let取代var是趋势 const 作用: 定义一个常量 特点: 不能修改 其它特点同let 应用: 保存不用改变的数据 let 定义 变量 const 定义 常量 默认变量使用let定义,今后let使用很多,只有确定不变的量用const 90%以上用let定义的 默认变量使用const定义,今后const使用很多,只有确定可变的量用let 90%以上用const定义的 默认就用const定义,只有后面的值发生变化,在改为let 变量的解构赋值 理解: 从对象或数组中提取数据, 并赋值给变量(多个) const person = {name: 'jack', age: 18}; const { age, sex, name } = person; console.log(name, age, sex); 对象的解构赋值: 没有顺序关系 let {n, a} = {n:'tom', a:12} 数组的解构赋值: 根据顺序一一对应 let [a,b] = [1, 'atguigu']; 用途 给多个形参赋值 对函数参数解构赋值,一个解构赋值语法对应一个参数(与结构赋值语法中多少个变量没有关系) 模板字符串 模板字符串

Java内存管理与垃圾回收

99封情书 提交于 2019-12-23 16:01:43
Python深入06 Python的内存管理 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 语言的内存管理是语言设计的一个重要方面。它是决定语言性能的重要因素。无论是C语言的手工管理,还是Java的垃圾回收,都成为语言最重要的特征。这里以Python语言为例子,说明一门动态类型的、面向对象的语言的内存管理方式。 对象的内存使用 赋值语句是语言最常见的功能了。但即使是最简单的赋值语句,也可以很有内涵。Python的赋值语句就很值得研究。 a = 1 整数1为一个对象。而a是一个引用。利用赋值语句,引用a指向对象1。Python是动态类型的语言(参考 动态类型 ),对象与引用分离。Python像使用“筷子”那样,通过引用来接触和翻动真正的食物——对象。 引用和对象 为了探索对象在内存的存储,我们可以求助于Python的内置函数id()。它用于返回对象的身份(identity)。其实,这里所谓的身份,就是该对象的内存地址。 a = 1 print(id(a)) print(hex(id(a))) 在我的计算机上,它们返回的是: 11246696 '0xab9c68' 分别为内存地址的十进制和十六进制表示。 在Python中,整数和短小的字符,Python都会缓存这些对象,以便重复使用。当我们创建多个等于1的引用时

python变量赋值(可变与不可变)

烂漫一生 提交于 2019-12-23 12:43:05
一、Python文件类型 1、源代码 hello.py: 1 #!/usr/bin/python 2 print "hello world" 2、字节代码:python源文件经编译后生成的扩展名为“pyc”的文件 编译方法(compile.py): import py_compile py_compile.compile('hello.py') 然后执行: $ python compile.py 会生成二进制的 hello.pyc 文件 3、优化代码:经过优化的源文件,扩展名为 pyo 在命令行下执行下面的命令优化: $ python -O -m py_compile hello.py 二、python 变量 python变量赋值(可变与不可变) 三、python运算符 1、整数除法 // 即只取结果中的整数部分: >>> 3.0 // 2 1.0 >>> 3 // 2 1 2、求幂运算 ** >>>3**3 27 >>>3**2 9 3、逻辑与、逻辑或、逻辑非 >>> 1>2 and 3>2 False >>> 2>1 and 3>2 True >>>1>2 or 3>2 True >>>1>2 or 1>3 False >>> not 1>2 True >>> not 2>1 False 4、运算符优先级: 四、python 数据类型 1、数字 :分整型、长整型、浮点、复数

HashMap原理(二)——jdk1.8中HashMap扩容底层代码和算法分析

放肆的年华 提交于 2019-12-22 16:24:16
记得曾经有个著名大师谁谁谁曾经说过:你有一个思想,我有一个思想,我们交换一下,一人就有两个思想;你有一个苹果,我有一个苹果,我们交换一下,一人还是一个苹果。那既然这样的话,用我的iPhone 7 换你的 iPhone 11 如何? 这次给大家带来的是HashMap原理第二篇之——HashMap扩容的底层代码和算法分析。需要说明的是本文是基于jdk1.8来进行展开的,今后有机会会和大家分享在jdk1.7中HashMap的实现方式和1.8有哪些区别(扩容方式是其中的区别之一)。有朋友会说,既然HashMap是基于数组+单向链表+红黑树的底层数据结构,链表可以无限地延伸啊,红黑树也可以不停滴往里面放东西啊,还扩容干什么?这样的说法既对也不对,说对是因为HashMap确实是基于单向链表和红黑树的,但是有没有想过不断地往链表上添加元素或者不断地往树里面加东西会怎么样?是不是会导致链表过长以及树的深度增大?是不是进而会提高遍历链表或者红黑树的时间复杂度?最终导致从表现上来看插入和查找操作会越来越慢?所以,到了一定程度对数组扩容还是很有必要的。那又有朋友会问:扩容很简单啊,需要的时候从数组两端往外延伸一下内存空间不就可以了吗?……想啥呢?数组不是拉面,需要的时候从两边往外抻一下,不存在的!数组扩容只能开辟出一个更大的内存空间出来,将原来的内容迁移到新的内存空间里面。OK

args数组赋值的错误

强颜欢笑 提交于 2019-12-22 09:59:38
异常处理练习中对args数组赋值的错误 (自定义异常类略) package ExceptionExer ; import java . util . Scanner ; /* * 编写应用程序EcmDef.java,接收命令行的两个参数,要求不能输入负数,计算两数相除。 对 数 据 类 型 不 一 致 (NumberFormatException) 、 缺 少 命 令 行 参 数(ArrayIndexOutOfBoundsException)、 除0(ArithmeticException)及输入负数(EcDef 自定义的异常)进行异常处理。 提示: (1)在主类(EcmDef)中定义异常方法(ecm)完成两数相除功能。 (2)在main()方法中使用异常处理语句进行异常处理。 (3)在程序中,自定义对应输入负数的异常类(EcDef)。 (4)运行时接受参数 java EcmDef 20 10 //args[0]=“20” args[1]=“10” (5)Interger类的static方法parseInt(String s)将s转换成对应的int值。 如:int a=Interger.parseInt(“314”); //a=314; */ public class EcmDef { public static void main ( String [ ] args ) { //

python中 yield 的用法 (简单、清晰)

扶醉桌前 提交于 2019-12-21 23:55:17
首先我要吐槽一下,看程序的过程中遇见了yield这个关键字,然后百度的时候,发现没有一个能简单的让我懂的,讲起来真TM的都是头头是道,什么参数,什么传递的,还口口声声说自己的教程是最简单的,最浅显易懂的,我就想问没有有考虑过读者的感受。 接下来是正题: 首先,如果你还没有对yield有个初步分认识,那么你先把yield看做“return”,这个是直观的,它首先是个return,普通的return是什么意思,就是在程序中返回某个值,返回之后程序就不再往下运行了。看做return之后再把它看做一个是生成器(generator)的一部分(带yield的函数才是真正的迭代器),好了,如果你对这些不明白的话,那先把yield看做return,然后直接看下面的程序,你就会明白yield的全部意思了: def foo(): print("starting...") while True: res = yield 4 print("res:",res) g = foo() print(next(g)) print("*"*20) print(next(g)) 就这么简单的几行代码就让你明白什么是yield,代码的输出这个: starting... 4 ******************** res: None 4 我直接解释代码运行顺序,相当于代码单步调试: 1.程序开始执行以后

TS02 TypeScript基础

我怕爱的太早我们不能终老 提交于 2019-12-21 02:04:07
安装 全局安装TypeScript命令行工具 npm install -g typescript 安装后就可以在全局使用 tsc 命令,来编译TypeScript文件: tsc hello.ts TypeScript编写的文件后缀名是 .ts ,用TypeScript编写React应用时文件后缀名是 .tsx Hello TypeScript function sayHello(person: string) { return `hello, ${person}` } const user = 'Tom'; console.log(sayHello(user)); 在TS中,使用 : 指定变量的类型,编译后的代码: function sayHello(person) { return "hello, " + person; } var user = 'Tom'; console.log(sayHello(user)); TypeScript会对代码进行静态检查,如果传入的参数和我们指定的类型不匹配,IDE就可以给出即时的提示,并且在编译阶段会报错(但是并不会阻止编译的过程) 例如我们将上面的 user 的值改为数值 123 ,那么在IDE中会提示: 编译时也报错: src/hello.ts:5:22 - error TS2345: Argument of type '123' is