变量

Python入门学习笔记(一) - 变量和简单数据类型

落爺英雄遲暮 提交于 2020-03-20 21:02:09
本章学习内容 如何使用变量,如何创建描述性变量名以及如何消除名称错误和语法错误 字符串是什么,以及如何使用小写、大写和首字母大写方式显示字符串 使用空白来显示整洁的输出,以及如何剔除字符串中多余的空白 如何使用整数和浮点数,使用数值数据时需要注意的意外行为 如何编写说明性注释,让代码更容易理解 注意事项 变量 变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但 不能以数字打头 ,例如,可将变量命名为message_1,但不能将其命名为1_message。 变量名 不能包含空格 ,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greetingmessage会引发错误。 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print。 变量名应既简短又具有描述性。例如,student_name比s_n好,name_length比length_of_persons_name好。 慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。 应尽量使用小写的Python变量名 变量名称错误通常意味着两种情况:要么是使用变量前忘记了给它赋值,要么是输入 变量名时拼写不正确。 字符串 在Python中,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号

c++ union

旧街凉风 提交于 2020-03-20 18:36:59
什么是union? 翻译过来说,就是共用体,或者也叫联合体。说到了union,也就是共用体,就不得不说一下struct了,当我们有如下的struct的定义时: 1 2 3 4 5 6 struct student { char mark ; long num ; float score ; } ; 关于struct的内存结构,将就会像下图所示这样(在x86机器上演示): sizeof(struct student)的值为12bytes。但是,当我们定义如下的union时, 1 2 3 4 5 6 union test { char mark ; long num ; float score ; } ; sizeof(union test)的值为4。这为什么呢?这就是需要说的。 有的时候,我们需要几种不同类型的变量存在在同一段的内存空间中,就像上面的,我们需要将一个char类型的mark、一个long类型的num变量和一个float类型的score变量存放在同一个地址开始的内存单元中。上面的三个变量,char类型和long类型所占的内存字节数是不一样的,但是在union中,它们都是从同一个地址存放的,也就是使用的覆盖技术,这三个变量互相覆盖,而这种使几个不同的变量共占同一段内存的结构,称为“共用体”类型的结构。上面定义的union类型的结构如下: 上面也说了,sizeof(union

C#中REF和OUT的区别

假如想象 提交于 2020-03-20 18:26:58
在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数, 可使用ref或out关键字。ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。它们的区别是: 1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。 2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。 3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。 注:在C#中,方法的参数传递有四种类型:传值(by value),传址(by reference),输出参数(by output),数组参数(by array)。传值参数无需额外的修饰符,传址参数需要修饰符ref,输出参数需要修饰符out,数组参数需要修饰符params。传值参数在方法调用过程中如果改变了参数的值,那么传入方法的参数在方法调用完成以后并不因此而改变,而是保留原来传入时的值。传址参数恰恰相反,如果方法调用过程改变了参数的值,那么传入方法的参数在调用完成以后也随之改变。实际上从名称上我们可以清楚地看出两者的含义--传值参数传递的是调用参数的一份拷贝,而传址参数传递的是调用参数的内存地址,该参数在方法内外指向的是同一个存储位置。

JAVA学习前应该了解

[亡魂溺海] 提交于 2020-03-20 14:14:38
Java特性和优势 简单性 面向对象 可移植性(跨平台性) 高性能 (集成编译) 分布式 动态性(反射机制) 多线程(同时视频,同时听音乐....) 安全性 (异常机制) 健壮性 学习过程中爱上Java Java的三大版本 Write Once、 Run Anywhere(跨平台) JavaSE:标准版(桌面程序,控制台开发.....) JAVAME:嵌入式开发(手机,小家电) JavaEE:企业级开发(Web端,服务器开发....) 学海无涯,开发程序要勤于思考 JDK JRE JVM JDK: Java Development Kit(Java开发者工具) JDK包含JRE JRE: Java Runtime Environment(Java运行时环境) JVM: Java Virtual Machine(Java虚拟机) JVM时Java跨平台核心 Java开发环境搭建 JDK下载与安装 下载 安装: 1.鼠标右击【jdk-8u221-64bit】选择【解压到jdk-8u221-64bit】。 2.双击打开【jdk-8u221-64bit】文件夹。 3.鼠标右击【jdk-8u221-windows-64bit】选择【以管理员身份运行】。 4.点击【下一步】。 5.点击【下一步】。 6.安装中。 7.点击【下一步】。 8.jre安装中。 9.点击【关闭】。 10

python基础巩固(变量类型:字典、集合、元组、列表、数字、字符串)

試著忘記壹切 提交于 2020-03-20 12:36:30
Python 3 教程 菜鸟教程 https://www.runoob.com/python3/python3-tutorial.html 在控制台 DOS运行.py文件 先切换到 .py 文件所在目录 再输入 python hello.py (输入 python3 hello.py 执行会报错, 这里与菜鸟教程不同 ) 在 Unix & Linux 平台安装 Python3 先下载 Unix/Linux 的源码压缩包 https://www.python.org/downloads/source/ 解压压缩包,并安装 # tar -zxvf Python-3.7.7.tgz 说明:这是解压文件 # cd Python-3.7.7 # ./configure # make && make install 说明: make 是编译 ,make insatll 来进行安装 在 Linux 设置环境变量 在 bash shell 输入 :export PATH= ”$PATH:/usr/local/bin/python” 说明 : /usr/local/bin/python 是 Python 的安装目录。 Shell 既是一种脚本编程语言,也是一个连接内核和用户的软件。 常见的 Shell 有 sh (sh 是 UNIX 上的标准 shell,很多 UNIX 版本都配有sh)、 csh

golang介绍

心已入冬 提交于 2020-03-20 10:15:23
一、golang介绍 golang 是Google开发的一种 静态强类型、编译型,并发型,并具有垃圾回收功能的编程语言。 二、语言特性 1.、自动垃圾回收 2、支持函数多返回值 3、并发强 三、golang程序基本语法 1、所有go源码以.go结尾 2、go程序执行入口是main()函数 3、go语言严格区分大小写 4、go语言编译时是一行一行编译的,所以代码一行不能写入多条的语句 5、go语言定义的变量和import的包,如果没有使用,就会报错 四、GO语言特殊字符 1、\t   指标符(tab建) 2、\n   换行符 3、\    取消符号转义,(类似shell的\) 4、\r   回车键 五、GO语言注释 1、//   单行注释 2、/**/    多行注释(/*注释内容*/) 六、Go语言代码规范 1、 缩进标准为一个tab的长度 2、运算符以一个空格隔开(var x = a + b) 3、go语言写法只能 func add(){ //大括号在这 } 不允许如下 func add() { //大括号在这 } 4、保留关键字 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type

关于高并发的aotomic

我的梦境 提交于 2020-03-20 08:35:21
AtomicInteger线程安全的根源,熟悉并发的同学一定知道在java中处理并发主要有两种方式: 1,synchronized关键字,这个大家应当都各种面试和笔试中经常遇到。 2,volatile修饰符的使用,相信这个修饰符大家平时在项目中使用的也不是很多。 这里重点说一下volatile: Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存重新读取该成员的值,而且,当成员变量值发生变化时,强迫将变化的值重新写入共享内存,这样两个不同的线程在访问同一个共享变量的值时,始终看到的是同一个值。 java语言规范指出:为了获取最佳的运行速度,允许线程保留共享变量的副本,当这个线程进入或者离开同步代码块时,才与共享成员变量进行比对,如果有变化再更新共享成员变量。这样当多个线程同时访问一个共享变量时,可能会存在值不同步的现象。 而volatile这个值的作用就是告诉VM:对于这个成员变量不能保存它的副本,要直接与共享成员变量交互。 建议:当多个线程同时访问一个共享变量时,可以使用volatile,而当访问的变量已在synchronized代码块中时,不必使用。 缺点:使用volatile将使得VM优化失去作用,导致效率较低,所以要在必要的时候使用。 来源: https://www.cnblogs.com/mengziHEHE/p/3236313.html

原子操作类AtomicInteger详解

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-20 08:08:13
为什么需要AtomicInteger原子操作类? 对于Java中的运算操作,例如自增或自减,若没有进行额外的同步操作,在多线程环境下就是线程不安全的。num++解析为num=num+1,明显,这个操作不具备原子性,多线程并发共享这个变量时必然会出现问题。测试代码如下: public class AtomicIntegerTest { private static final int THREADS_CONUT = 20; public static int count = 0; public static void increase() { count++; } public static void main(String[] args) { Thread[] threads = new Thread[THREADS_CONUT]; for (int i = 0; i < THREADS_CONUT; i++) { threads[i] = new Thread(new Runnable() { @Override public void run() { for (int i = 0; i < 1000; i++) { increase(); } } }); threads[i].start(); } while (Thread.activeCount() > 1) {

原子操作类AtomicInteger详解

谁说我不能喝 提交于 2020-03-20 08:08:00
为什么需要AtomicInteger原子操作类? 对于Java中的运算操作,例如自增或自减,若没有进行额外的同步操作,在多线程环境下就是线程不安全的。num++解析为num=num+1,明显,这个操作不具备原子性,多线程并发共享这个变量时必然会出现问题。测试代码如下: public class AtomicIntegerTest { private static final int THREADS_CONUT = 20; public static int count = 0; public static void increase() { count++; } public static void main(String[] args) { Thread[] threads = new Thread[THREADS_CONUT]; for (int i = 0; i < THREADS_CONUT; i++) { threads[i] = new Thread(new Runnable() { @Override public void run() { for (int i = 0; i < 1000; i++) { increase(); } } }); threads[i].start(); } while (Thread.activeCount() > 1) {

前端基础之JavaScript

断了今生、忘了曾经 提交于 2020-03-20 03:08:25
JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。 该标准一开始就是针对JavaScript语言制定的,但是没有称其为JavaScript,有两个方面的原因。一是商标,JavaScript本身已被Netscape注册为商标。而是想体现这门语言的制定者是ECMA,而不是Netscape,这样有利于保证这门语言的开发性和中立性。 因此ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。 ECMAScript的历史 年份 名称 描述 1997 ECMAScript 1 第一个版本 1998 ECMAScript 2 版本变更 1999 ECMAScript 3 添加正则表达式 添加try/catch ECMAScript 4 没有发布 2009 ECMAScript 5 添加"strict mode"严格模式 添加JSON支持 2011 ECMAScript 5.1 版本变更 2015 ECMAScript 6