变量

python变量与数据结构

孤者浪人 提交于 2020-03-01 08:49:05
文章目录 python的IDLE常用快捷键 python注释 python编码规范 python变量 python字符串编码 python类型转化 python数据结构 list tuple dict set python深拷贝与浅拷贝 python的IDLE常用快捷键 F1 打开 Python 帮助文档 Python文件窗口和Shell 均可用 Alt + P 浏览历史命令(上一条) 仅 Python Shell 窗口可用 Alt + N 浏览历史命令(下一条) 仅 Python Shell 窗口可用 Alt + / 自动补全前面曾经出现过的单词,如果之前有多个单词具有相同前缀,可以连续按下该快捷键,在多个单词中间循环选择 Python 文件窗口和 Shell 窗口均可用 Alt + 3 注释代码块 仅 Python 文件窗口可用 Alt + 4 取消代码块注释 仅 Python 文件窗口可用 Alt + g 转到某一行 仅 Python 文件窗口可用 Ctrl + Z 撤销一步操作 Python 文件窗口和 Shell 窗口均可用 Ctrl + Shift + Z 恢复上—次的撤销操作 Python 文件窗口和 Shell 窗口均可用 Ctrl + S 保存文件 Python 文件窗口和 Shell 窗口均可用 Ctrl + ] 缩进代码块 仅 Python 文件窗口可用

嵌入式C语言编程小知识总结

試著忘記壹切 提交于 2020-03-01 08:38:58
嵌入式C语言编程小知识总结 1. 流水线被指令填满时才能发挥最大效能,即每时钟周期完成一条指令的执行(仅指单周期指令)。如果程序发生跳转,流水线会被清空,这将需要几个时钟才能使流水线再次填满。因此,尽量少的使用跳转指令可以提高程序执行效率,解决发案就是尽量使用指令的“条件执行”功能。 2. 在LPC2200系列中: 可以通过过下面的程序延迟10毫秒: for(i=0;i<200;i++) { for(j=0;j<200;j++); } 3. 通过下面语句将一个16位的变量放在两个8位的变量中。 //IP数据报总长度高字节 IpHeadUint8[10]=(IpHead.e_ip.Crc&0xff00)>>8; //IP数据报总长度低字节 IpHeadUint8[11]=IpHead.e_ip.Crc&0x00ff; 4. 在对全部数组元素赋初值时,可以不指定数组长度。 eg;inta[]={1,2,3,4,5}; 但如果当输出第a[5]以上的元素时,系统回输出随机数值,所以使用此方法时,不能使用超过初始值元素以上的元素。 5. 由于ADS先天性的对printf不支持;因此不便于我们调试,可以利用串口输出来代替printf来调试。 6. 用或运算,可使某位置为1,其它位不变 eg: PINSEL0 |= 0x00000005; //设置串口引脚 使第0位和第二位置一,其他位不变。 7

JavaScript函数作用域和变量

放肆的年华 提交于 2020-03-01 07:52:33
作用域 定义:一个变量可以生效的范围 变量不是在所有的地方都可以使用,而这个变量的使用范围就是作用域 函数作用域 JS划分作用域是用大括号划分的 局部作用域 在JS中只有函数能生成一个局部作用域,别的都不行 每一个函数都是一个作用域 变量在函数内声明,变量为局部变量 //在函数大括号之中声明的变量,我们称之为局部变量 function foo ( ) { var a = 10 ; //在大括号之中声明的变量只能在这个大括号之中使用 console . log ( a ) ; } foo ( ) ; //运行结果: 10 console . log ( a ) ; //运行结果: ReferenceError: a is not defined 表示引用错误,a未被定义 因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。 局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁 全局作用域 全局作用域是最大的作用域 生命周期是和程序同步的,程序不关闭,作用域一直存在 变量在函数外定义,即为全局变量。 var a = 1 ; //变量声明没有被大括号包裹,我们称之为全局变量 //这个变量在任何地方都可以访问 console . log ( a ) ; //运行结果: 1 function foo ( ) { console . log ( a ) ; } foo (

静态成员函数和静态成员变量

≡放荡痞女 提交于 2020-03-01 07:40:51
静态成员变量 作用:实现多个对象间数据共享。相当于不同对象间共享一个成员变量 例: 用_total 统计建立了多少个对象,每建立一个新的对象,total++,每个对象都可以访问total,且结果相同。 class A { 11 public : 12 static int _total ; 13 A ( ) { 14 _total ++ ; 15 } } ; 一个类可以有多个静态成员变量,所有对象共享 **static 成员变量和普通 static 变量一样,都在内存分区中的全局数据区分配内存,到程序结束时才释放。**所static成员变量不会随着对象的创建而分配内存,也不会随对象销毁而释放内存。 必须初始化 且在类外进行,可以不赋值默认为0 因为 全局数据区的变量都有默认的初始值 0,而动态数据区(堆区、栈区)变量的默认值是不确定的,一般认为是垃圾值。 对于静态成员变量不同 对象既可以通过对象名访问,也可以通过类名访问,访问的都是内存上的同一块空间(this指针也可以访问) 初始化 前面说过类只是一个模板,只有在建立对象后才能在内存放存放数据,在类中是不能对成员函数进行初始化的,因为没有地方存储。而静态成员变量是不依赖对象存在的,故其初始化在类外,没有初始化的静态成员变量是无效的。 (实际上是初始化在内存上开辟空间,才能存储数据) type 类名:: 成员变量名 = value

JAVA多线程(四)--线程同步-Volatile

好久不见. 提交于 2020-03-01 07:36:10
1.cpu cache模型 cpu - 计算机的主内存(RAM), cpu速度变快,主内存没有跟上cpu的步伐,最终导致 cpu的处理速度和主内存的访问速度差距越来越大。 而cpu cache的出现解决了以上问题,同时引入了缓存不一致的问题。 比如:i++ 1)首先读取内存到cpu cache 2)进行i+1 3)将结果刷新到主内存中 在单线程中这个例子不会出现任何问题,但是在多线程的情况下就会出现问题。原因就是:每个线程都有自己的工作内存(本地内存,对应cpu cache模型中的cache),i在多个线程的本地内存中都会存在一个副本。 例:i 初始化为0;有两个操作A和B,都执行i++操作,按道理执行完之后i的值为2,但是就会有可能出现最后的结果i为1的情况,这就是缓存不一致的问题,要解决缓存不一致,我们有以下解决方式: 1)总线加锁 cpu和其他组建通信是通过总线来进行,采用总线加锁,会阻塞其他cpu对其他组件的访问,导致只有一个cpu抢到总线锁能够访问当前数据的内存。 2)通过缓存一致性协议(MESI)保证能够保证每一个缓存中使用到的共享变量副本是一致的,大致思想就是说当cpu操作cache中 的数据时,发现该数据是共享的,会进行如下操作: a. 读取操作,不用作任何处理 b. 写入操作,发出信号通知其他cpu将该变量的cache line置为无效状态

linux中fork后堆、栈、静态全局、文件描述符中哪些是可以共享的?

﹥>﹥吖頭↗ 提交于 2020-03-01 05:39:08
int pid = fork();之后父进程pid返回非0,子进程pid返回0. 对于执行fork之前的一些变量总结如下: 当父进程调用fork()创建子进程之后,下列哪些变量在子进程中修改之后,父进程里也会相应地作出改动? A.全局变量 函数体外变量 B.局部变量 函数体内变量 C.静态变量 static修饰 D.文件指针 文件描述符 E.一般变量指针 堆上动态分配内存 只有D文件指针也就是文件描述符会发生改变,因为文件描述符存在于系统中为所有进程所共享,close也要父子进程都关一次才能最终官关闭。 来源: CSDN 作者: lsxa123 链接: https://blog.csdn.net/lsxa123/article/details/104582025

Java Web(三)

Deadly 提交于 2020-03-01 03:52:55
JavaScript 1、变量 1)使用var关键字声明变量 : var 变量名; (声明时不需要指定类型 必须先声明再使用) 2)五种原始类型:number String boolean null underfined,剩下的都是对象:object 3)赋值:变量名=值;(变量在使用过程中可以接受不同类型的值,也可动态改值) 4)判断一个变量的类型:typeof 5)null类型是不能用typeof判断出来的,判断出来的是object; 变量如果声明出来而没有赋值就是underfined 2、函数 1)声明函数 ①function 方法名(参数名,参数名){方法体} 方法不管在哪里声明,浏览器都会优先加载 ②将方法赋值给一个变量 var 变量名=function(){方法体} 2)调用函数 ①方法名(参数表); ②方法名=变量名: 变量名(); 在js中方法的唯一标识就是方法名,没有方法重载,调用方法的时候参数是可以选传的 3、对象 1)创建对象的方式 ①var obj= new Object(); ②var obj= {}; 2)动态向对象中添加属性: 对象.属性=”属性值” 为对象添加方法: 对象.属性=function(){}; 3)获取属性值: 对象.属性名; 对象.属性名(); 4、事件:文档或浏览器窗口中发生的一些特定的交互瞬间(用户与文档、浏览器的交互行为。比如

Java成员变量总结

笑着哭i 提交于 2020-03-01 03:42:43
成员变量:“直接”在类体中的变量。 特点:成员变量有默认值(整数0;浮点数0.0;char是空格;布尔值默认值为false;其他类型默认值为null) 成员变量在整个类中都有效,但是一般放置在类头部。 作用:详细描述对象信息。 来源: CSDN 作者: Yogurtchocolate 链接: https://blog.csdn.net/Yogurtchocolate/article/details/104578748

深入理解ES6系列笔记之第一章《块级作用域绑定》

人盡茶涼 提交于 2020-03-01 03:27:38
块级作用域绑定 本文仅仅作为前端实习面试的笔记内容,因此不能完全保证内容正确性,如有错误,欢迎指正! var声明及变量提升(Hoisting)机制 在函数作用域或者全局作用域通过关键字var声明的变量,无论实际上在哪里声明,都会被当作 当前作用域 顶部声明的变量。 function getValue (condition) { if (condition) { var value = 'blue' // other operations return value } else { // 此处可以访问value变量,其值为undefined return null } // 此处可以访问value变量,其值为undefined } 在预编译阶段,JavaScript引擎会将上面代码修改成下面这个样子 function getValue (condition) { var value if (condition) { value = 'blue' // other operations return value } else { // 此处可以访问value变量,其值为undefined return null } // 此处可以访问value变量,其值为undefined } 可以看到,变量value的声明提升到目前 函数作用域 的顶部,初始化操作仍在原来位置

疫情中奋进前行,逆战班 关于html中循环的使用

橙三吉。 提交于 2020-03-01 03:07:20
js语言中。除去变量。循环语句使我们接触最多的语句了。条件的判断,数据的循环提取。都需要用到循环语句。我简单说说我在这方面的一点见解,有问题的话你也欢迎指正。也衷心祝愿这次疫情尽快过去。 while / do while 这两个写法区别在于执行顺序的不同 while心进行判断 而do while 先对代码进行执行 while( true/ < /> / = /==){ 执行的代码段 } do { 执行的代码段 }while(true) while 变量的自增自减变化在代码本身。 一般写在代码结尾的位置。这个操作的遗漏容易造成死循环。 do while 语句 代码是至少被执行过一次的 之后进行条件的判断。根据需要使用就好 if 语句 if(true){ 执行的代码 }else{ 执行代码 } true 作为判断条件 可以使用布尔值作为判断条件。亦能直接使用判断条件 一般为通过执行第一段代码。所以这里的条件就需要注意。 else为不通过 执行的代码 变量自身的变化需要自己写入 else 为非必要条件 即 if 可以单独使用。 for for(var i=1;i<n;i++){ 执行的代码段 } for语句的判断条件一般在于其本身。 就是通过它本身变量 i 的自增自减来重复执行一个代码段 可以通过 i 变量的设置。判断条件 n 的值来进行调整。达到我们本身的目的 它本身的变量