精华内容
下载资源
问答
  • 数据类型废话不多说,在Java中数据类型分为两大类:基本类型和对象类型。基本类型(8种)在Java中,最高位代表符号位,1为负,0为正。...下面介绍三种常用的对象类型。字符串定义有关字符串类型,java.lang.String 类...

    数据类型

    废话不多说,在Java中数据类型分为两大类:基本类型和对象类型。

    基本类型(8种)

    bf0c1185eb84cbf5880a8e9b64f00fc3.png
    • 在Java中,最高位代表符号位,1为负,0为正。以8位二进制为例,所以:
    a4499a3b4c63d720d141a0eea438e6a4.png

    对象类型

    所有不是基本类型的都是对象类型,如:StringSystem...所以,我们编写程序,也就是不断地创建类型。因为我们想表达我们要表达的数据。下面介绍三种常用的对象类型。

    字符串

    定义

    有关字符串类型,java.lang.String 类,它的本质就是char[],它的实现代码:

    public final class String implements CharSequence{private char[] content;private int capacity;private int index;//...}

    也就是说,字符串就是由字符数组组成的。但是,String是不变类,它的实例也就是不变对象。

    如:

    String s1 = new String("abc");//一旦这个字符串生成,则就是不可变的。s1 = "def";//ok,这是新建了字符串def ,原来abc 会被GC回收

    对于字符串而言,它是最常用的数据,所以,JVM针对它做了特殊处理;其次,专门有一个“串池”的内存空间来存放String实例,但是,字符串实例是否存放在串池中要由程序员的定义决定。

    创建字符串

    1. 普通方式[在堆空间中]
    String s1 = new String("abc");//okString s2 = new String("abc");//okSystem.out.println(s1 == s2);//false
    1. 串池方式
    String s3 = "abc";//okString s4 ="abc";//okSystem.out.println(s3 == s4);//trues4 = "xyz";//此时,会在串池中重新申请空间并存放 xyz,并把地址赋给s4

    由于字符串是不变对象,所以,它的每一次拼接都会产生临时对象。

    String s5 = "abc" + "def" + "xyz";//abcdefxyz

    这个代码会产生5个对象,其中,2个临时对象。s5是引用,是地址。

    所以,考虑到字符串的性能问题,JDK提供了StringBuilder拼接工作,它利用一个可变字符串数组来进行拼接。

    StringBuilder和StringBuffer

    StringBuilderStringBuffer这两个类的区别:

    1.StringBuffer是多线程安全的类 2.StringBuilder是多线程不安全的类

    本质上这两个类的功能一模一样,唯一不同的就是StringBuffer的所以方法都是同步的[synchronized]。

    建议大家使用StringBuilder,因为大多数时候我们的环境都是单线程环境的。 即使是多线程环境,我们也可以自己加同步代码块来保证StringBuilder的多线程安全。

    常用方法

    int length();//获取长度boolean isEmpty();//判空char charAt(int index);//根据位置获取字符byte[] getBytes();//转化为字节数组boolean equals(Object anObject);//判等boolean startsWith(String prefix);//是否以prefix为前缀int indexOf(int ch);//ch第一次在原字符串中出现的位置String substring(int beginIndex, int endIndex);//获取子串String concat(String str);//拼接String replace(char oldChar, char newChar);//替换String[] split(String regex, int limit);//分割//...

    可以参考官网api,地址:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html。

    字符的编解码操作

    编码:把字符转换成字节的过程 解码:把字节转换成字符的过程

    每一个字符背后都是一个整数[byte也是一种整数],所以,不同的字符集采用不同长度的编码,如:

    ASCII 采用单字节

    GBK 采用双字节编码

    UTF-8 采用多字节[1~3]

    如:String name = "张三丰";//把此字符进行编码byte[] arr = name.getBytes();//默认字符集//byte[] arr = name.getByte("UTF-8");//也可以解码String str = new Strin(arr);//默认字符集String str = new String(arr,"UTF-8");//...//有关字符串的切割--split方法String str = "abc:def:::haha:heihei::";String[] arr = str.split(":");

    正则表达式

    定义:就是一些有“特殊”功能的字符序列。 早先,JAVA并不支持正则表达式,从JDK1.4开始,引入了java.util.regex包,开始正式支持正则。

    如何使用正则:

    1.先把正则表达式[字符串]编译成Pattern实例

    2.利用Pattern提供的方法或者进一步得到Matchr

    3.利用Matcher进行匹配

    如:

    String regex = "a";Pattern p = Pattern.compile(regex);//把这个字符串[正则]编译成Pattern实例String str = "aaaab";//准备你要测试的字符串Matcher m = p.matcher(str);//得到Matceher对象//str.matches(regex);//Pattern.matches(regex,str);//接下来就可以使用Matcher的方法m.matches(); 匹配一次,成功为true,否则为falsem.find();//依次去尝试匹配多次m.group();//配合find使用m.start();//配合find,匹配成功的起始位置m.end();//配合find,匹配成功的最后位置//...

    日期

    java.util.Date- java.sql.Date [专门针对数据库的数据类型]Date的构造public Date();public Date(long millis);

    注:在计算机中日期是使用一个长整型来表示的,它规定从1970年1月1日午夜开始到现在所经过的毫秒数。 通过System.currentTimeMillils() 方法来获取这个值。 利用这个值可以来构建一个Date实例。

    构建Date实例

    Date now = new Date(); 2个小时前Date now2 = new Date(System.currentTimeMillils()-2*60*60*1000);

    构建一个 2008-8-8号? 怎么办?这就需要利用下面的Calendar类。

    java.util.Calendar- java.util.GregorianCalendar
    //CodeCalendar cal = new GregiroanCalendar();//但是不推荐这么做,因为使用了具体的子类,而应该:Calendar cal = Calendar.getInstance();//得到了日历类,就可以对它进行操作//1. 可以修改时间 [通过长整型修改或通过修改年、月、日]cal.set(Calendar.YEAR,2008);cal.set(Calendar.MONTH,7);cal.set(Calendar.DAY_OF_MONTH,12)//2. 可以获取时间Date now = cal.getTime();//3.获取单个值 int year = cal.get(Calendar.YEAR);..int month = cal.get(Calendar.MONTH);int week = cal.get(Calendar.DAY_OF_WEEK);//注:返回的值是1~7, 1代表周日,7代表周六

    日期的格式化

    java.text.DateFormat- java.text.SimpleDateFormat

    由于DateFormat中内置工厂方法的格式不符合我们的使用,所以,此处我们直接使用 SimpleDateFormat。

    DateFormat df = DateFormat.getInstance();//但是:String p = "yyyy-MM-dd";SimpleDateFormat sdf = new SimpleDateFormat(p);//现在,就可以利用sdf来格式化或解析一个字符串如:String str = "2008-08-8";Date d1 = sdf.parse(str);//Date now = new Date();String str2 = sdf.format(now); //2017-07-20

    数字类

    数字操作

    包装类[Wrapper],也就是针对8种基本类型而言的。

    6790a0b0a275d7124d0a928767b5c639.png

    包装类就是基本类型的对象类型,并且基本类型与对应的包装类型之间可以自动解封箱。也就是它们之间可以自动转换。 如:

    int i = 9;Integer j = i;//自动封箱[auto boxing]int k = j;//自动解箱[auto unboxing]short s =19;int i = s;//okShort s1 = new Short(19);int i1 = s1;///ok

    字符串与数字之间的转换

    String iStr = "19";Integer i = new Integer(iStr);//ok//然后int ii = i.intValue();//int ii = i; //ok//或者利用parseInt方法int k = Integer.parseInt(iStr);int r = 119;//String rStr = r +"";//String rStr = String.valueOf(r);

    大数字类型

    java.math.BigInteger 大整数

    java.math.BigDecimal 大浮点数

    原有的数字范围所不能表达的,就需要使用大数字。 如:

    int i = 9;int j = 19;int k = i + j;//换成大数据对象的计算:BigInteger i = new BigInteger("9");BigInteger j = new BigInteger("19");BigInteger k = i.add(j);

    数字的格式化 [美化数字]

    数字和字符串之间的转换。 如: 1358.6 => ¥1,358.6 以上的这个美化靠 String.valueOf做不到,需要使用NumberFormat 来进行。

    变量常量字面量

    变量

    变量,variable,是一种可以变化的量。 语法:

    数据类型 变量名 [= 初始值];[]代表可以省略变量名,由字母、数字、_组成,并且不能以数字开头。如:i,a,ai,haha,a5...注:给变量命名时尽可能地有意义[见名知意]如:定义一个变量来存储年龄int age;//变量没有初始化age = 10;//给变量赋值以上两行语句也可以合在一起:int age = 10;//定义一个长整型变量,并初始化为100.long a = 100L; //长整型字面量以L或l结尾//定义一个浮点数变量double height = 176.5;//单精度浮点float weight = 68.5F;//以F或f结尾

    常量

    常量[literal],是不变的变量。 语法:

    final 数据类型 常量名 = 初始值;如:int i = 100;i = 90;//okfinal int J =  200;//常量J = 230;//error注:常量名一般采用大写字母。如:final String MSG = "hahaha";

    字面量

    字面量[constant],“双引号括起来的”,就是字面本身的量。

    只有8种基本类型以及字符串String才有字面量。如:1,4,5,100L,true,false,'a',"abc";作用:用来给变量或者常量赋值。

    相关知识

    了解计算机存储数据的方式

    计算机存储数据的方式采用二进制【由0和1组成】规定每8位为一个字节。这样,1个字节所能表达的状态有:2^8=256 种

    有关字符的表达方式

    在Java中,字符使用单引号括起来,它有如下三种表达方式:

    A.普通表达方式,每对单引号中只能有唯一的字符。

    char c1 = 't';

    B.特殊字符表达式[使用转义符转义过的]

    char c3 = '';//制表符这类特殊字符有:''回车''换行'''单引号''反斜杠'"'双引号...

    C.采用UNICODE字符表示法

    语法:'u 4位16进制表示法'如:char c1 = '我';改成unicode表示法:char c1 = '我';通过jdk提供的 native2ascii.exe命令可以把任意的中文转换成unicode字符码ctrl + C 退出

    字符是一种特殊的整数。 Java采用双字节编码,就意味着它可以表达 2 ^ 16 = 65536 个字符

    在计算机中,要存储字符,都需要把字符转换成整数,进而成为二进制。这就需要字符映射表,也就是码表【字符集表】。 计算机中最原始的字符集是ASCII码表,不同的码表对字符的码表是不一样的,其中,ASCII码表采用单字节编码,也就是它最多可编256个字符。

    bf3608372a4ea92a9d0a265ff55de773.png

    中文字符集采用双字节编码,但是,为了向上兼容ASCII码值,前256的值与ASCII码一模一样,这样就兼容了ASCII码表。【所有主流的字符集都会无条件向上兼容ASCII码表】 中文字符集: GB2312->GBK 全球统一的字符集: UTF-8 [支持中文],它采用动态编码技术。

    类型转换

    • 隐式类型转换 。当小范围变量、字面量赋值给大范围变量时发生。如:
    byte b1 = 12;int i = b1;//okchar c = 'a';i = c;//ok,结果是 97
    • 显示类型转换【强制类型转换。 当大范围变量、字面量赋值给小范围变量时发生。 语法:(新类型)变量或者表达式或者字面量。
    int i = 97;char c = i;//error,有可能丢失精度char c = (char)i;//ok,做了强制类型转换

    结束语

    欢迎关注公众号「Java全栈笔记」,获取更多Java知识。

    展开全文
  • 【分录题】12日, 甲公司从银行提取现金1 000元;【判断题】55.无序列表的各个列表项之间,虽然没有顺序级别之分,但是存在主从关系。...在HTML中常用的列表有三种,其中有序列表是指排列顺序的列表,其...

    【分录题】12日, 甲公司从银行提取现金1 000元;

    【判断题】55.无序列表的各个列表项之间,虽然没有顺序级别之分,但是存在主从关系。( )

    【单选题】通过过深度塘的处理可以去除水中的COD、BOD、( )和藻类。

    【填空题】常用的膜分离方法有电渗析、反渗透和( )。

    【单选题】下列不属于工资范围的是( )

    【判断题】62.在HTML中常用的列表有三种,其中有序列表是指有排列顺序的列表,其各个列表项按照一定的顺序排列。( )

    【单选题】9.神经元之间的连接结构是( )

    【判断题】54.在无序列表中,不定义type属性时,就不会显示列表项目符号。( )

    【分录题】11日, 以银行存款偿还前欠外单位货款 30000元;

    【多选题】13.在CSS中,使用链入式引入CSS样式表,要通过设置标签的( )属性。

    【单选题】26形成中枢神经纤维髓鞘的细胞是

    【单选题】历史发展是 “ 合力 ” 作用的结果,这就是说( )

    【单选题】病假工资应按()标准来支付。

    【分录题】10日, 从银行借入短期借款80000元,存入银行存款户

    【单选题】27关于肌原纤维说法错误的是

    【判断题】膜污染:指处理物料中的微粒、胶体粒子或溶质大分子由于与膜存在物理化学相互作用或机械作用而引起的在膜表面或膜孔内吸附、沉积造成膜孔径变小或堵塞,使膜产生渗透通量与分离特性的不可逆变化现象。

    【单选题】正常成人的周围血液中,淋巴细胞占白细胞总数的

    【填空题】曝气塘采用( )供氧,塘深在2m以上,全部塘水有溶解氧,由好氧微生物起净化作用,污水停留时间较短

    【多选题】反渗透工艺参数及问题包括( )。

    【单选题】享受 5 天带薪年休假,需要职工累计工作时间为( )

    【单选题】集体合同与劳动合同的区别,不正确的是( )

    【单选题】下列不属于最低工资的范畴的是( )

    【填空题】17.在CSS中,类选择器使用_______进行标识,后面紧跟类名。

    【单选题】不经过腹膜腔就能进行手术的器官是

    【单选题】小李的日工资是 100 元,公司安排小李“十一”加班一天,公司需在这一天支付小李的 工资为( )

    【多选题】13*2=

    【单选题】下列关于经济性裁员的叙述不正确的是( )

    【多选题】土地处理系统工艺类型的选择主要是根据( )、作物种类、气候条件和废水处理程度的要求来选择。

    【多选题】采用借贷记账法时,账户的借方一般用来登记:

    【判断题】电渗析器由离子交换膜、隔板、电极、极框和压紧装置组成。

    【单选题】某女性,38岁,无子女,葡萄胎刮宫术后,护士为其进行健康教育.以下指导错误的是

    【单选题】在地里大发现中,首先发现非洲好望角的是( )。

    【单选题】劳动者主动提出解除劳动合同, 用人单位无需向劳动者支付经济补偿金的情形是 ( )

    【填空题】通过过深度塘的处理可以去除水中的COD、BOD、细菌和( )。

    【单选题】定时与计数功能选择由TMOD寄存器中的( )位控制。

    【单选题】5.间皮分布在( )

    【判断题】稳定塘抗冲击负荷能力强,承受水量变化大,建设投资省。

    【多选题】8.关于链入式CSS样式表,下面说法正确的是( )。

    【判断题】7.在CSS中,行高属性line-height是用来设置文本高度的。( )

    【多选题】膜分离技术用于处理废水时存在的最大问题包括( )。

    【判断题】常规起动机中,吸引线圈、励磁绕组及电枢绕组是串联连接。

    【判断题】12*12=144

    【单选题】3.关于CSS的描述,下列说法正确的是( )

    【判断题】常用的离子交换膜是由离子交换树脂做成的,具有选择透过性强、电阻低、抗氧化耐腐蚀性好、机械强度高、使用中不发生变形等性能。

    【填空题】当渗透平衡时,溶液两侧液面的静水压差称为渗透压。如果在盐水一侧的表面上施加大于渗透压的压力,则此时盐水中的水就会流向淡水一侧,这种现象称为( )。

    【单选题】29下述有关腺的描述,哪些是错误的?

    【单选题】6.不属于固有结缔组织的是( )

    【单选题】下列关于无效合同的判断,正确的是( )

    【单选题】4.内皮分布在( )

    【单选题】正常成年男性周围血液中红细胞的平均值为

    展开全文
  • 3.1 基本数据类型基本数据类型有数值型、布尔型和字符型。它们是所有编程语言都会用到的最基本概念,是编写程序的基础。1. 数值型数值型是最常用的数据类型,它描述的是具体数值的大小,Python的数值型数据又分为...

    6312a0cddf81459b9a56efd31e3146ab.png

    无论使用哪一种编程语言,甚至是学习数学、物理,都需要掌握常量、变量、表达式的概念和用法。本讲将带领读者进入编程世界,学习程序的基本元素。

    3.1 基本数据类型

    基本数据类型有数值型、布尔型和字符型。它们是所有编程语言都会用到的最基本概念,是编写程序的基础。

    1. 数值型

    数值型是最常用的数据类型,它描述的是具体数值的大小,Python的数值型数据又分为整型和浮点型。

    • 整型用于描述整数(不包含小数点)。
    • 浮点型用于描述包含小数点的数。

    例如:-3是整型,3.1则是浮点型。

    2. 字符型

    字符型用于描述一系列的字符的组合(文字),比如:人名,一段文章,需要显示的信息等等, 字符型数据也常被称为字符串。Python的字符型数据用“单引号”或者“双引号”引起来,例如:“1234”, ‘这是一张表格’。

    3. 布尔型

    布尔型用于描述真或假的概念,比如:“2是否大于3?”的结果为False。Python的布尔类型数据只有两个值:True表示真,False表示假(注意首字母为大写,其余字母小写)。

    4. 空值

    当不确定某个值是什么的情况下,用空值表示。比如:不知道性别是男是女的情况下,可以先将其性别设置成空值。Python中的空值用None表示。

    3.2 常量和变量

    常量和变量是数学中的概念,常量用于描述不变的事物,而变量用于描述可能变化的事物。比如:3是常量,因为它只能表示数值3,不能表示其它数据;而x是变量,它可能代表1,2或者其它数据。它和小学四年级开始学习的未知数x类似,用来表示还不知道的数字。

    3.2.1 变量

    1. 变量赋值

    给变量设定值,也叫“赋值”,写法是:

    01 变量名称=变量值

    例如:设置变量a的值为常量2。

    01 a=2

    设置变量b的值为变量a。

    01 b=a

    被赋值的是变量,写在等号左侧;而具体的值写在等号右侧,可以是常量、变量或者表达式。

    2. 变量命名规则

    计算机中文件夹、文件、变量的命名都遵循各自的规则,这些规则又有一定的相似之处,它们通常都由字母数字下划线等元素组成,养成好的命名习惯非常重要,一方面可以减少错误,另一方面使程序更加容易理解,Python中变量的命名规则如下:

    • 变量名称只能由英文字母(大写或小写)、数字、下划线(_)或中文字符组成。 虽然Python 3及以上版本支持变量名中包含中文字符,但尽量少使用中文命名变量。
    • 变量名称的首字母吸只能是字母、下划线(_)或中文字符组成。 变量名称的首字母不能以数字开头。
    • 英文大小写字母被视为不同变量名。 比如:A1和a1是不同的变量。
    • 变量名不能与Python的保留字相同。 保留字指在编程语言中定义过的字,比如:用于判断的if,用于循环的for,break等等,后面会逐一讲到。不要使用已经存在的关键字。

    3.使用变量

    什么情况下需要使用变量呢?如果需要在程序之中存储数据,并且内容可能改变,就需要使用变量,这些数据可能只在过程中起作用,不需要显示出来。

    整个内存就像一个储物柜,柜子里有大小不同的很多抽届,程序需要存储数据时,根据需要申请不同的抽屉。如果只存储一个整型数值就申请较小的空间,如果存储大段文字的字符串,就申请较大的空间;为了方便地找到存储的数据,还需要给抽屉贴了一标签,它就是变量名

    一般的编程语言都需要先定义变量和赋初值后才能使用,例如C语言和Java语言中的:“int a=5;”,使用关键字int指定了变量的类型为整型,并将变量的初值设置为5。Python简化了这一过程,直接书写成“a=5”,根据数值5自动识别出变量的类型为整型。不同的编程语言写法不同,但在使用之前都需要定义变量和赋值,否则程序运行时会报错“找不到这个变量”。

    综上,使用变量前,需要先在内存的柜子中找到一个合适的抽屉(类型),贴上标签(变量名),并且把东西放进去(赋初值)。之后就可以使用它存储和取出内容了。

    课后练习:(练习答案见本讲最后的小结部分)

    练习一:请读者画出包含常量、变量、基本数据类型的思维导图。
    练习二:请读者通过百度搜索:Python语言包含哪些保留字。

    3.3 数据类型转换

    常量具有固定的数据类型,而变量的数据则根据赋值的情况而定。Python在给变量赋值时,不需要指定变量类型。而大多数编程语言都需要指定变量类型。

    1. 查看数据类型

    编写以下程序给变量a赋值后,变量a的类型为数值型。

    01 a=2

    编写以下程序给变量a赋值后,变量a的类型为字符型。

    01 a=’2’

    同样是2,但含义不同,一个是数字2,一个是字符2。使用type函数可查看变量类型。

    01 print(type(a), a) 02 # 运行结果:<class 'str'> 2

    从运行结果可以看到,变量a的类型为字符串str。程序中print用于在屏幕上显示信息,而显示的内容是a的类型和a的实际值,print可显示多种信息,信息之间用逗号分割。

    注意:Python程序将“#”之后的内容当作是说明文字,也就是“注释”,而不作为程序执行,因此可以将说明和无需执行的程序之前加入“#”号。**

    2.转换数据类型

    不同的数据类型也可以相互转换,即强制转换数据类型,常用的转换命令如表3.1所示:

    31543759f2a0bddc4cbe6b86d7a800e0.png
    表3.1数据类型转换

    课后练习:

    练习三:请读者打开Python开发环境Jupyter notebook,新建一个程序,并定义数据型和字符类型的变量’88’,使用上述方式转换其类型,并显示其转换结果。

    3.4 运算符和表达式

    3.4.1 表达式

    表达式,是由数字、运算符、括号、变量等元素,以有意义排列方法所得的组合,表达式通常用于计算,类似于数学中的“算式”。表达式又可分为算术表达式、逻辑表达式等等。

    3.4.2 运算符

    先举个简单的例子,比如:a=1+2,它的含义是将1+2的结果2赋值给变量a,其中1和2为操作数,“+”是算术运算符,“=”是赋值运算符。

    • 运算符:运算符是用于运算的符号。
    • 操作数:操作数是参与运算的数据,可以是常量,也可以是变量。
    • 赋值:赋值是指把某一个数赋给某一个变量的过程。

    1. 算术运算符

    运算符最简单直观的例子是“加减乘除”,即算术运算符,常用的算术运算符如表3.2所示:

    75a0a523b9add88adf48d05f1bdae638.png
    表3.2算术运算符

    2. 复合赋值运算符

    复合赋值运算符将算术运算和赋值运算符写在一起,主要用于简化代码,例如:x = x + 3可写成x+=3,常用的复合赋值运算符如表3.3所示:

    0f9ca76e61ae0b13954fd94bb7e12aac.png
    表3.3算术运算符

    以下程序用于对变量x增加1,数值0加数值1结果为数值1。

    01 x = 0 
    02 x += 1 
    03 print(x) 04 # 运行结果:1

    3. 关系运算符

    关系运算符用于比较两操作数之间的关系,其结果为布尔型(真True或者假False),常用的关系运算符如表3.4所示:

    d6d591af67774e91fb0218ef08dee343.png
    表3.4关系运算符

    表3.3算术运算符以下程序显示出关系运算的结果,先将变量x赋值为3,然后显示关系表达式的结果,由于3>88的结果为假,因此运行结果显示False。

    01 x = 3 
    02 print(x>88) 
    03 # 程序运行结果:False

    4. 逻辑运算符

    逻辑运算符用于操作数是布尔类型(真或假)的运算,其结果也是布尔类型,常用的逻辑运算符如表3.5所示:

    a64631734c3db72002a490864290b0a9.png
    表3.5逻辑运算符

    例如:小李语文考了93分,数学考了96分,妈妈说如果两门都考95分以上,可以得到奖励,姥姥说只要有一门考过95分就可以得到奖励。以下程序使用and和or运算符,可以看到小李没有达到妈妈的标准,但达到了姥姥的奖励标准。

    01   chinese = 93
    02   math = 96
    03   print(chinese > 95 and math > 95) # 妈妈的标准
    04   print(chinese > 95 or math > 95) # 姥姥的标准
    05   # 运行结果: False True

    5. 运算符优先级

    多种运算符常常出现在同一复杂的表达式之中,一般情况下,括号的优先级最高,然后依次是算术运算符、关系运算符、逻辑运算符。其优先级由高到低排列如图3.6所示,同级运算符按从左到或方式计算。为方便记忆,此处只列出了最常使用的运算符。

    课后作业:

    作业四:表达式not b>95+25,请按优先级从高到低排列表达试中运算符not、>、+、的优先级。
    作业五:出五道一百以内的加法口算题,并显示在屏幕上。
    提示:使用函数random生成0-1之间的随机小数,形如:

    01 import random 
    02 print(random.random())

    3.5 思维训练

    3.5.1 语言和思维

    有一部分思维和感受可以用语言表达,而另一部分则无法表达,比如触觉、味觉,复杂的情感常常无法用确切的词汇描述。这一部分自己无法表达,对于别人的这部分思维,我们也只能猜测。就像绘画、音乐常常给人带来不可言喻的感受,不同观众感受也不同。这也正是人的不同个性所在。

    人们对可以用语言表达的思维,往往有更多共识,比如说到猫、香蕉,树、房子的时候,不同人的脑中呈现的事物往往是类似的。语言不仅能表达思维,也常常是引导思维。比如读到一篇生动的文章时,虽然没亲眼看到文中的场景,但是山森、小河的景象也会出现在头脑之中。

    在说话、写文章、甚至写程序时,语言也呈现出思维的条理,在面试程序员时,常常请面试者写一段代码,从代码中可以看到程序员的思路是否清晰。相对的,也可以通过练习叙述、写作、写程序来锻炼思维。

    比如写变量名,理论上只要语法正常,程序就能正常运行。但一般情况下需要从名字里能推导出意思,好的程序就像文章一样,自己和别人都能轻松地看懂。很多初学者喜欢用简称起变量名,简到一段时间之后自己都读不懂;也有人起名非常复杂啰嗦。起名虽然不影响功能,但也很重要,其核心是表达意思,如果小读者不熟悉英文,也可以使用拼音。

    3.5.2 抽象和泛化

    从常量到变量也是抽象问题的过程,比如:1+2=2+1,用变量表示为a+b=b+a,将1、2两数做加法的交换扩展成为任意两数做加法位置可交换——把具体的、个别的经验总结出来称为抽象,再推广到其它的问题和领域,称为泛化。

    程序中运行过程中,多次使用相同的方法,只需要修改其中一小部分时,常使用变量。比如只修改圆心点和半径长度,就可以用同一绘图方法,在不同的位置画出大小不同的圆形。从定义变量、编写函数、到后面将要学习的定义类、构建函数库,都是对问题的抽象。因此学习编程的过程也是锻炼抽象问题和泛化的过程。

    在泛化过程中需要注意,如何定义泛化对象,也就是如何定义变量x。对于复杂的数学应用题来说,不能正确定义变量,则无法解题;其它问题也是一样要找到关键点,比如狗被汽车撞了之后,就不再去被撞那条街了,但它仍然追着汽车跑……怕就是一个错误的泛化。

    另外,需要注意的问题是抽象的层次,每一个层次对应不同的特性。如图3.1所示,可以定义成一个生物,一只动物,一只猫,一只白猫,或者一只小白母猫。

    f24e5071b38221e4e3c455fdbeb48dc6.png
    图 3.1 从抽象到具体

    理论上看,在哪个层次抽象都没错,但多数情况下它被看作“一只猫”。因为“生物”太过概括,对现实没什么指导意义;而“小白母猫”又太过具体,细节太多,起作用的范围也太小。另外,抽象的层次也与最终的目标有关。可以通过多画思维导图来锻炼抽象能力。

    3.6 小结

    从本讲开始学习编写程序,请Python初学者把每一行程序输入计算机运行,理解每一条语句,完成每一道习题。不但要理解,简单的语言还要会默写。否则,遇到后面的复杂程序时,还需要回来补课。

    3.6.1单词

    本讲需要掌握的单词如表3.7所示:

    de8daaa0627b134761737df7daad48ca.png
    图3.7 需要掌握的英文单词

    3.6.2 习题答案

    1.练习一:请读者画出包含常量、变量、基本数据类型的思维导图。

    fb1df6b6eee5d748a38964c59ff7e316.png
    图3.2 数据的思维导图

    2.练习二:请读者通过百度搜索:Python语言包含哪些保留字。

    打开浏览器,并搜索“python 保留字”,小读者如果不会中文打字,输入拼音也可以,需要注意的是关键词之间需要以空格分隔。点开返回的搜索内容即可看到python的保留字,从中了解保留字如:False,True,None,as, assert, break, class, continue, def……

    6112ab309a331ea465c83ddaf7e2d709.png
    图3.3 搜索保留字

    3.练习三:请读者打开Python开发环境Jupyter notebook,新建一个程序,并定义数据型和字符类型的变量’88’,使用上述方式转换其类型,并显示其转换结果。

    01 x=88 02 a=str(x) 03 print(type(a))

    4.作业四:表达式not b>95+25,请按优先级从高到低排列表达试中运算符not、>、+、的优先级。

    优先级从高到低依次是:*、+、>、not

    5.作业五:出五道一百以内的加法口算题,并显示在屏幕上。

    本题涉及了常量、变量、类型转换等知识点,以下程序为小李同学完成的本课作业,写法比较简单,后面课程将学习使用循环判断等方法扩展功能和简化代码。

    01   import random
    02   q=random.random()*50 # 乘50使加法结果不超过100
    03   w=random.random()*50
    04   e=random.random()*50
    05   r=random.random()*50
    06   t=random.random()*50
    07   y=random.random()*50
    08   u=random.random()*50
    09   i=random.random()*50
    10   o=random.random()*50
    11   p=random.random()*50
    12   a=int(q) # 将float型转换成int型
    13   s=int(w)
    14   d=int(e)
    15   f=int(r)
    16   g=int(t)
    17   h=int(y)
    18   j=int(u)
    19   k=int(i)
    20   l=int(o)
    21   z=int(p)
    22   print(a,'+',s,'=') # 用print显示常量和变量,用逗号分隔
    23   print(d,'+',f,'=')
    24   print(g,'+',h,'=')
    25   print(k,'+',j,'=')
    26   print(l,'+',z,'=') 
    展开全文
  • mysql中数据类型

    2018-05-18 21:21:44
    首先我们要了解,在mysql中数据类型有哪呢? 数据类型大的分类分为: 数值类型、文本或者二进制、时间和日期、string类这四类。 每个下面都有什么具体的类型呢?我们用图来看。 在表中红色标识为常用的...

    mysql数据类型

    首先我们要了解,在mysql中数据类型有哪几种呢?
    数据类型大的分类分为:
    数值类型、文本或者二进制、时间和日期、string类这四类。
    每个下面都有什么具体的类型呢?我们用图来看。
    数据类型
    在表中红色标识为常用的类型,未被标识的,相对而言是用的没有红色频繁。

    对于tinyint、smallint、int理解

    对于这三个类型我们就类比一下,在32位操作系统中,c语言中char、short、int。这三个类型,用法基本是想通过的。所以我们不过多介绍。
    要注意下面几个类型因为和我们平时有一些差别。我们逐一介绍:

    bit数据类型

    我们通常定义一个类型,如 A bit(8);
    这个表示A的类型为bit具体多少个比特位,就是后面给定的数,但是我们要是插入的时候可能没有注意,但是当插入完成后,查看数据的时候会很惊奇的发现,和原来插入的数据不对。不要慌,在bit数据中插入后,里面是以ASCII码显示的。

    float数据类型

    它的形式如:
    float[(m, d)] [unsigned]
    这里我们就需要注意一下,这里的m表示的是float总共有几个数,d表示的是小数点后面的位数。
    怎么理解呢?
    比如:88.88 存储类型应该是float(4,2) .
    88.88总共有4个数字,所以这里的d就是表示这个数字。小数后有两为,也就是保留两位有效数字,所以m就是2.

    decimal数据类型

    它的数据原型如
    decimal[(m,d)][unsigend]
    这个就类比上面的float数据类型,表示和用法都是一样的,但是为什会有两个数据类型来表示呢?
    我们就来看看它们两个不同点。
    float与decimal的区别
    他们最主要的区别是d这个参数上,怎么理解呢?我们用float存储一个小数位超过7位左右(这个取决于mysql版本)就会有精度丢失。所以我们如果要存储高精度的小数我们就可以选用decimal。那么decimal能表示多小呢?d表示的是小数后的位数,decimal中d的可以为30,也就是说最小可以表示小数后30为。m最大为65。

    字符串类型

    对于字符串类型有两种,char、varchar

    char类型

    char类型是一个固定的长度,它可表示的最大长度为255个字符。注意是字符为单位。
    什么叫一个固定长度的类型呢?就比如当你在定义一个属性A char(250)时候,如果你只用了5个字符,那么245个字符空间就会被浪费掉。

    varchar类型

    varchar是我们在字符类型中相对用的比较多的类型,因为它有一个好处就是它是一个变长的类型,就如你定义属性B varchar(64),但是你用了30个字节,这时候系统就会给出30多个字节的空间,因为这个其中,因为能实现变长,所以要多开辟一些空间进行可变长度的控制。相对来说节约空间。
    还有一个注意的点就是,varchar的最大存储量0 ~ 65535,也就是n,但是这个与字符编码有关,如果用的gbk编码最大存储容量就是就是65535/2。就是它的最大存储容量。

    日期类型

    对于日期类型我们需要知道三个。
    datetime类型
    表示的格式是:yyyy-mm-dd HH:ii:ss 占有8个字节
    date类型
    表示格式:yyyy-mm-dd 占3个字节
    datestamp类型
    这是表示的格式与datetime是一样的,但是他表示的是从1970-1-1 0:0:1的一个时间戳。
    这个在用的时候我们可以定义类型后在插入数据时候,不写会自动的添加插入那条数据的时间。

    枚举和set

    枚举类型我们在c语言中也有学过,在数据库中,枚举也是一一列举。
    对于set,也是将信息列出来,但是他们有什么区别?
    这里我们简单理解。
    枚举出的,都是单一选项,怎么说呢?就比如,男女,我们枚举出来一条数据只能选一种男或者女,不能同时选。
    而set是用于复选的情况,比如一个人的爱好,可能很多就可以一次写多个。

    以上为小结。如有错误,还望指正,谢谢!

    展开全文
  • 表示M型,常用统中库管理系数据。边际位人的人消费每增增加加1均收均消倾向个单出数入所费支是指,列类边际消费民的年农倾向村居是(。的家品消庭食9年则2居民城镇出为费支,型包庭以3口镇家若城人计算。括列北省的份...
  • 一个表中需要一个类别字段,只有三种类别,数据库中与java程序中应使用数据类型? 1、 原来数据库中常用char(1),1,2,3代表三种类别,而到了java中,需要根据类别做不同处理,无论用if还是switch都不容易...
  • 二、Redis的数据类型有哪 string hash list set sorted set 、Redis的过期策略都有哪些 内存淘汰机制 手写一个 LRU 算法 四、关于Redis的持久化 若在项目中使用了Redis作缓存,就必须考虑持久化这是...
  • orcale常用命令

    2009-08-04 00:34:59
    Oracle数据库有哪启动方式 说明: 有以下几启动方式: 1、startup nomount 非安装启动,这种方式启动下可执行:重建控制文件、重建数据库 读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动...
  • C#数据结构

    2013-12-10 11:49:54
    数据类型是高级程序设计语言中的概念,是数据的取值范围和对数据进行操 作的总和。数据类型规定了程序中对象的特性。程序中的每个变量、常量或表达 式的结果都应该属于某种确定的数据类型。例如,C#语言中的字符串...
  • MYSQL常用命令大全

    2011-05-30 13:31:24
    MySql的用户管理是通过 User表来实现的,添加新用户常用的方法两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下: grant all on mydb...
  • 大话数据结构

    2018-12-14 16:02:18
    《璇玑图》共八百四十字,纵横各二十九字,纵、横、斜、交互、正、反读或退一字、迭一字读均可成诗,诗有三、四、五、六、七言不等,目前人统计可组成七千九百五十八首诗。听清楚哦,是7958首。 第6章树 149 6.1...
  • 自考数据结构课后习题答案 数 据 结 构 第一章 1.1 简述下列概念:数据、数据元素、数据类型、数据结构、逻辑结构、存储结构、线性结构、非线性结构。 ◆ 数据:指能够被计算机识别...1.3 常用的存储表示方法有哪?
  • mysql到底用一款存储引擎呢

    千次阅读 2015-08-25 22:03:07
    MySQL多种存储引擎,MyISAM和InnoDB是其中常用的两。这里介绍关于这两引擎的一些基本概念(非深入介绍)。 MyISAM是MySQL的默认存储引擎,基于传统的ISAM类型,支持全文搜索,但不是事务安全的,而且不支持...
  • 文章来源于:lsh4ck's Blog什么是盲注[sqli blind]盲注通常都是专门为了...于是后来就被人发现了盲注这种技巧,关于盲注的常用类型,主要有三种,基于时间,布尔,错误[实际遇到的非常少]的盲注,不过我们今天暂时只针对布...
  • 数据结构 1800题》

    热门讨论 2012-12-27 16:52:03
    7. 根据数据元素之间的逻辑关系,一般有哪几类基本的数据结构? 【北京科技大学 1998 一、1】【同济大学 1998】 8.对于一个数据结构,一般包括哪三个方面的讨论?【北京科技大学 1999 一、1(2分)】 9. 当你为...
  • spark初识

    2018-03-03 14:56:21
    RDD的两种类型操作有哪操作呢?分别是transformation ,action 也是我们上面所说的转换 和行动。 Transformations 使用的是常用的api操作还有很多可能介绍不到 1. map():将原来的RDD的每个数据想根据自定义函....
  • Oracle数据库有哪启动方式 说明: 有以下几启动方式: 1、startup nomount 非安装启动,这种方式启动下可执行:重建控制文件、重建数据库 读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动...
  • 2.1.6 数据类型 2.1.7 常用的数据结构 2.1.8 选择合适的数据结构解决实际问题 2.2 线性表 2.2.1 什么是线性表 2.2.2 线性表的基本运算 2.3 顺序表结构 2.3.1 准备数据 2.3.2 初始化顺序表 2.3.3 计算顺序表长度 ...
  • Java虚拟机第

    2020-08-25 19:11:27
    类加载双亲委派加载机制,常用加载器分别加载哪种类型的类. GC分代回收的思想和依据以及不同垃圾回收算法的回收思路和适合场景. 性能调优常JVM优化参数作用,参数调优的依据,常用的JVM分析工具能分析哪些问题以及...
  • js中常用的引用类型有哪三种?引用类型在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起(它也常被称为类)。js中常用的引用类型1、Object类型:带有属性和方法的特殊数据类型。创建Object实例的...
  • // 编辑类型 当前支持三种编辑方式text(文本框)date(日期型)select(选择框) editorType : 'select', //数据来源 dataUrl : 'WaterQualityAction?method=AjaxSelect¶=AREANAME&dataSource=db' }...
  • C#23设计模式

    2013-06-02 16:49:43
    这不,她弟弟又传送过来一个COMMAND,为了感谢他,我请他吃了碗杂酱面,知道他说:“我同时给我姐姐个男朋友送COMMAND,就数你最小气,才请我吃面。”, 命令模式:命令模式把一个请求或者操作封装到一个对象中...
  • 前端考试题

    2020-12-26 14:49:05
    3.使用CSS有哪三种方式,它们的优先级是如何排列 4.CSS中的长度单位有哪些 5.相对定位、绝对定位和固定定位的区别 6.JavaScript有几种数据类型 7.let、var、const的区别 8.null和undefined的区别 9.JavaScript中if...
  • 了了了了了了来了来了 回顾 基本的选择符有哪三种优先级如何 更多类型的选择符有哪些 常用的CSS数据单位有哪些 样式表有几种导入方式它们的区别及优先级如何 会使用CSS文字样式 文字实例模拟Google公司的logo 会...
  • OllyDBG v1.10 汉化第

    热门讨论 2011-05-19 23:11:43
    数据格式: OllyDbg 的数据窗口能够显示的所有数据格式:HEX、ASCII、UNICODE、 16/32位/无符号/HEX整数、 32/64/80位浮点数、地址、反汇编(MASM、IDEAL或是HLA)、PE文件头或线程数据块。 帮助: 此文件中包含...
  • 30、String是最基本的数据类型吗? 22 31、String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String(...
  • 引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型哪种类型数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 200
精华内容 80
关键字:

常用数据类型有哪三种