Essential TypeScript 4(基本类型描述)

  • 更新时间:
  • 1014人关注
  • 点击下载

这是一个不错的基本类型描述类学习资源,由厍忆南 提供,主要知识点是关于基本类型描述、Essential、TypeScript、基本类型描述的内容,已被569人关注,同类资源中评分为8.5分。

资源详情相关推荐
  • 大小:8.8 MB
  • 类别:基本类型描述
  • 格式:PDF
  • 编辑:国木兰
  • 热度:346
  • TypeScript中文入门指南
  • Learning TypeScript中文版
  • TypeScript使用手册v2.7
  • 深入理解TypeScript(TypeScript Deep Dive)
  • Angular 2开发实战:基于TypeScript
  • 精选笔记:Python入门_浅谈数据结构的4种基本类型

    15小时28分钟前回答

    数据结构:通俗点说,就是储存大量数据的容器。这里主要介绍Python的4种基本数据结构:列表、字典、元组、集合。

    格式如下:

    列表:list = [val1,val2,val3,val4],用中括号;
    字典:dict = {key1:val1,key2:val2},大括号,且每个元素是带有冒号的key与val的对应关系组;
    元组:tuple = (val1,val2,val3,val4),小括号;
    集合:set = {val1,val2,val3,val4},大括号。

    1. 列表:

    list = [val1,val2,val3,val4]

    列表最显著的特征是:

    列表中每个元素都是可变的;
    列表中的元素都是有序的,即每个元素都有一个位置;
    列表可以容纳Python中的任何对象。
    接下来看下列表的增删改查。

    增:

    1 list = [1,'dwd',3.6]
    2 list.insert(0,'Python')
    3 print(list)

    用insert方法可以实现在列表中增加元素。insert方法需要写明增加在哪个位置和增加的内容,新增元素的实际位置是在指定位置元素之前的位置;如果指定的位置不存在,默认会增加在列表末尾。

    1 list = [1,'dwd',3.6]
    2 list[0:0] = [9]
    3 # 【0:0】是指在list中的第1个位置插入新元素
    4 list[3:3] = ['a']
    5 # 【3:3】是指在list中的第4个位置插入新元素
    6 print(list)

    上面说到的这两种方法都是添加单个元素,除了添加单个元素外,还可以添加多个元素,用extend方法来实现。

    1 list_a = [1,'dwd',3.6]
    2 list_b = ['Python',56,'game']
    3 list_a.extend(list_b)
    4 # extend方法用于在列表末尾一次性追加另一个列表中的多个值
    5 print(list_a)

     删:

     

    1 list = [1,'dwd',3.6]
    2 list.remove('dwd')
    3 print(list)

     删除列表中的元素除了用上面的remove方法来实现外,也可以用del关键字来声明:

    1 list = [1,'dwd',3.6]
    2 del list[0:2]
    3 # 【0:2】是删除第1和第2个位置的元素
    4 print(list)

    改:

    1 list = [1,'dwd',3.6]
    2 list[2] = 7
    3 list[0] = 'start'
    4 print(list)

    如果想要替换掉列表中的某个元素,可以直接给列表某位置的元素重新赋值,list[2]指list列表中的第3个元素。

    查:

    列表的索引与之前文章《Python入门_浅谈字符串的分片与索引、字符串的方法》中提到的字符串的索引类似,同样是分正反两种索引方式,可以从前往后,也可以从后往前索引。比如:

    list = [1,'dwd',3.6]
    print(list[1])
    # 打印第2个位置的元素
    print(list[-1])
    # 打印倒数第一个位置的元素
    print(list[:2])
    # 打印第1和第2个元素
    print(list[1:])
    # 打印第2到最后一个的元素

    但如果想查看某个元素的位置,就不适合用这种方式,程序会报错。因为列表只接受用位置进行索引,不可以通过元素来查找位置。

    2. 字典:

    dict = {key1:val1,key2:val2}

    编程世界中的很多概念都源自于生活,字典也是。这种数据结构如我们使用的字典一样,通过“名称—内容”来构建,在Python中每个元素是带有冒号的key与val的对应关系组,习惯称之为键值对。

    字典的特征如下:

    字典中的元素必须是键值对的形式;

    键(key)不可以重复,而值(val)可以重复;

    键不可变,无法修改;值可修改,可以是任何对象。

    即使字典中有重复的键,打印出来时也只会出现一次。比如:

    1 dict = {'A':'art','B':'big','C':'cute','C':'cute'}
    2 print(dict)

    接下来看下字典的增删改查。

    增:

    字典中没有像列表那样有一个现成的insert方法可以使用,但可以通过下面这种方式插入元素,元素默认会插入在最后一个位置。

    1 dict = {'A':'art','B':'big','C':'cute'}
    2 dict['D'] = 'dictionary'
    3 print(dict)

    上面讲到在列表中增加多个元素时可以使用extend方法来实现,在字典中也有对应的update方法来实现添加多个元素。

    1 dict = {'A':'art','B':'big','C':'cute'}
    2 dict.update({'D':'dictionary','E':'exam'})
    3 print(dict)

    删:

    在字典中删除某元素,也可以使用del关键字。

    1 dict = {'A':'art','B':'big','C':'cute'}
    2 del dict['B']
    3 print(dict)

    需要注意的是,虽然字典是用大括号的,但在删除时依然使用的是中括号。

    改:

    如果要修改字典里的元素,直接重新给键赋值即可。

    1 dict = {'A':'art','B':'big','C':'cute'}
    2 dict['B'] = 'beyond'
    3 print(dict)

    查:

    在字典中进行索引时,和删除一样,用的是中括号,中括号中存放字典的键,也就是说对字典元素进行索引时是通过键来索引的。

    1 dict = {'A':'art','B':'big','C':'cute'}
    2 dict['B']
    3 print(dict['B'])

    之前在文章《Python入门_浅谈字符串的分片与索引、字符串的方法》中有提到过字符串的分片,在字典里,字符串是不可以进行分片的。

    3. 元组

    tuple = (val1,val2,val3,val4)

    Python中的元组与列表类似,不同之处在于元组不可以修改,类似于稳固版的列表,因此在列表中可以使用的增删改的方法在元组中是不可以使用的,但是可以对元组中的元素进行索引,和列表类似。

    1 tup = (1,2,'s',7)
    2 print(tup[0])
    3 print(tup[-1])
    4 print(tup[1:])
    5 print(tup[:-2])

    4. 集合

    set = {val1,val2,val3,val4}

    集合的概念有点接近于数学上的集合。每个集合中的元素是无序的、不重复的任何对象,我们可以通过集合去判断数据的从属关系,有时还可以通过集合把数据结构中重复的元素减掉。

    集合不可以被切片也不能被索引,除了做集合运算之外,集合元素可以被添加和删除。

    set = {7,1,8,3,4,5,3}
    set.add(0)
    # 新增元素0
    set.discard(7)
    # 删除掉元素7
    print(set)
    # 打印出的集合会从小到达排列,并去重

    等后面如果用到集合时,再详细展开集合的运算。

    后续会介绍下数据结构的一些小技巧。

    操作环境:Python版本,3.6;PyCharm版本,2016.2;电脑:Mac

    以上这篇Python入门_浅谈数据结构的4种基本类型就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

    展开阅读
    精选笔记:MySQL学习第六天 学习MySQL基本数据类型

    9小时50分钟前回答

    还记得上一篇学习的内容吗?不记得再看一看MySQL学习第五天 MySQL数据库基本操作,温故可以知新!

            数据类型是指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储方式,代表了不同的信息类型。MySQL中常用的的数据类型包括:数值类型、日期和时间类型和字符串类型等。

     一、数值类型

           MySQL支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER、SMALLINT、DECIMAL、NUMBERIC),以及近似数值数据类型(FLOAT、REAL、DOUBLE、PRESISION),并在此基础上进行扩展。扩展后增加了TINYINT、MEDIUMINT、BIGINT这3种长度不同的整形,并增加了BIT类型,用来存放位数据。

    (1).整型

           在MySQL中支持的5个主要整数类型是TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT。这些类型在很大程度上是相同的,只有它们存储的值的大小是不相同的。

           MySQL以一个可选的显示宽度指示器的形式对SQL标准进行扩展,这样当从数据库检索一个值时,可以把这个值加长到指定的长度。例如,指定一个字段的类型为INT(6),就可以保证所包含数字少于 6 个的值从数据库中检索出来时能够自动地用空格填充。需要注意的是,使用一个宽度指示器不会影响字段的大小和它可以存储的值的范围。万一我们需要对一个字段存储一个超出许可范围的数字,MySQL会根据允许范围最接近它的一端截短后再进行存储。还有一个比较特别的地方是,MySQL会在不合规定的值插入表前自动修改为0。

           下面的表显示了需要的每个整数类型的存储和范围:

    MySQL学习第六天 学习MySQL基本数据类型

           上面定义的都是有符号的,当然了,也可以加上UNSIGNED关键字,定义成无符号的类型,那么对应的取值范围就要翻翻了,比如:TINYINT UNSIGNED的取值范围为0~255。

           例如我们存储人的年龄,就是使用TINYINT UNSIGNED:

    CREATE TABBLE tb1( 
     age TINYINT UNSIGNED, 
    ); 
    
    

    (2).浮点型

           MySQL支持的三个浮点类型是FLOAT、DOUBLEDECIMAL类型。FLOAT数值类型用于表示单精度浮点数值,而DOUBLE数值类型用于表示双精度浮点数值。与整数一样,这些类型也带有附加参数:一个显示宽度指示器和一个小数点指示器。比如语句 FLOAT(7,3) 规定显示的值不会超过7位数字,小数点后面带有3位数字。对于小数点后面的位数超过允许范围的值,MySQL会自动将它四舍五入为最接近它的值,再插入它。

           DECIMAL数据类型用于精度要求非常高的计算中,这种类型允许指定数值的精度和计数方法作为选择参数。精度在这里指为这个值保存的有效数字的总个数,而计数方法表示小数点后数字的位数。比如语句DECIMAL(7,3) 规定了存储的值不会超过7位数字,并且小数点后不超过3位。

          下表给出了它们的存储范围:

    MySQL学习第六天 学习MySQL基本数据类型

           我在MySQL中建立了一个表,有一列为FLOAT(5, 3);做了以下试验:

           1)插入123.45678,最后查询得到的结果为99.999;

           2)插入123.456,最后查询结果为99.999;

           3)插入12.34567,最后查询结果为12.346;

           所以,在使用浮点型的时候,还是要注意陷阱的,要以插入数据库中的实际结果为准。

           例如我们存储工作人员的工资就是使用FLOAT(8,2) UNSIGNED:

    CREATE TABBLE tb1( 
     salary FLOAT(8,2) UNSIGNED 
    ); 
    
    

    二、日期时间类型

           在处理日期和时间类型的值时,MySQL带有5个不同的数据类型可供选择。它们可以被分成简单的日期、时间类型,和混合日期、时间类型。根据要求的精度,子类型在每个分类型中都可以使用,并且MySQL带有内置功能可以把多样化的输入格式变为一个标准格式。

           下表解释了五种日期和时间类型:

    MySQL学习第六天 学习MySQL基本数据类型

    1)、MySQL用DATE和YEAR类型存储简单的日期值,使用TIME类型存储时间值。这些类型可以描述为字符串或不带分隔符的整数序列。如果描述为字符串,DATE类型的值应该使用连字号作为分隔符分开,而TIME类型的值应该使用冒号作为分隔符分开。需要注意的是,没有冒号分隔符的TIME类型值,将会被MySQL理解为持续的时间,而不是时间戳。

     2)、除了日期和时间数据类型,MySQL还支持DATEYIME和TIMESTAMP这两种混合类型。它们可以把日期和时间作为单个的值进行存储。这两种类型通常用于自动存储包含当前日期和时间的时间戳,并可在需要执行大量数据库事务和需要建立一个调试和审查用途的审计跟踪的应用程序中发挥良好作用。如果我们对TIMESTAMP类型的字段没有明确赋值,或是被赋与了NULL值。MySQL会自动使用系统当前的日期和时间来填充它。

           例如我们存储添加用户的出生年月就是使用:

    CREATE TABBLE tb1( 
     brithday DATE 
    ); 
    
    

     三、字符串类型

           MySQL提供了6个基本的字符串类型,分别为CHAR、VARCHAR、TINYTEST、TEXT、MEDIUMTEXT、LONGTEXT六种字符串类型。可以存储的范围从简单的一个字符到巨大的文本块或二进制字符串数据。

          下标解释了六种基本字符串类型:

    MySQL学习第六天 学习MySQL基本数据类型

    1)、CHAR(n)和VARCHAR(n)中括号中n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可插入m个中文,但是实际会占用m*3个字节。

    2)、同时CHAR和VARCHAR最大的区别就在于CHAR不管实际VALUE都会占用n个字符的空间,而VARCHAR只会占用实际字符应该占用的空间+1,并且实际空间+1<=n。

    3)、超过CHAR和VARCHAR的n设置后,字符串会被截断。

    4)、CHAR在存储的时候会截断尾部的空格,VARCHAR和TEXT不会。

    5)、VARCHAR会使用1-3个字节来存储长度,TEXT不会。

    6)、CHAR类型用于定长字符串,并且必须在圆括号内用一个大小修饰符来定义。这个大小修饰符的范围从 0-255。比指定长度大的值将被截短,而比指定长度小的值将会用空格作填补。

           例如我们存储登录用户的用户名就是使用VARCHAR(20):

    CREATE TABLE tb1( 
     username VARCHAR(20) 
    ); 
    
    

    实例:

           我们现在来验证上述四个字段是否能创建成功:

    CREATE TABLE tb1 ( 
     username VARCHAR(20), 
     age TINYINT UNSIGNED, 
     salary FLOAT(8,2) UNSIGNED, 
     brithday DATE 
    ); 
    
    

           创建数据表tb1和查看数据表结构的结果为:

    MySQL学习第六天 学习MySQL基本数据类型

           我们向数据表tb1中插入记录:INSERT tb1 VALUES('Tom',22,5555.55,'1994-10-01'); 

           执行的结果显示为:

    MySQL学习第六天 学习MySQL基本数据类型

    四、复合类型

      MySQL还支持两种复合数据类型ENUM和SET,它们扩展了SQL规范。虽然这些类型在技术上是字符串类型,但是可以被视为不同的数据类型。一个ENUM类型只允许从一个集合中取得一个值;而SET类型允许从一个集合中取得任意多个值。

    (1)ENUM类型       

    ENUM(“member1″, "member2″, … “member65535″)

    ENUM数据类型就是定义了一种枚举,最多包含65535个不同的成员。当定义了一个ENUM的列时,该列的值限制为列定义中声明的值。如果列声明包含NULL属性,则NULL将被认为是一个有效值,并且是默认值。如果声明了NOT NULL,则列表的第一个成员是默认值。

    ENUM类型因为只允许在集合中取得一个值,有点类似于单选项。在处理相互排拆的数据时容易让人理解,比如人类的性别。ENUM类型字段可以从集合中取得一个值或使用NULL值,除此之外的输入将会使MySQ在这个字段中插入一个空字符串。另外如果插入值的大小写与集合中值的大小写不匹配,MySQL会自动使用插入值的大小写转换成与集合中大小写一致的值。

    ENUM类型在系统内部可以存储为数字,并且从1开始用数字做索引。一个ENUM类型最多可以包含65536个元素,其中一个元素被MySQL保留,用来存储错误现的值是合法输入,除此之外其它任何输入都将失败。这说明通过搜索包含空字符串或对应数字索引为0的行就可以很容易地找到错误记录的位置。

     (2)SET类型

    SET(“member", "member2″, … “member64″)

    SET数据类型为指定一组预定义值中的零个或多个值提供了一种方法,这组值最多包括64个成员。值的选择限制为列定义中声明的值。

    SET类型与ENUM类型相似但不相同。SET类型可以从预定义的集合中取得任意数量的值。并且与ENUM类型相同的是任何试图在SET类型字段中插入非预定义的值都会使 MySQL插入一个空字符串。如果插入一个即有合法的元素又有非法的元素的记录,MySQL将会保留合法的元素,除去非法的元素。

    一个 SET 类型最多可以包含64项元素。在SET元素中值被存储为一个分离的“位”序列,这些“位”表示与它相对应的元素。“位”是创建有序元素集合的一种简单而有效的方式。并且它还去除了重复的元素,所以SET类型中不可能包含两个相同的元素。希望从SET类型字段中找出非法的记录只需查找包含空字符串或二进制值为0的行。

    复合数据类型的例子我们会在以后的博文中使用到,这里不再进行举例。

    五、总结

           通过对每种数据类型的用途,物理存储,表示范围等有一个概要的了解。这样在面对具体应用时,就可以根据相应的特来来选择合适的数据类型,使得我们能够争取在满足应用的基础上,用较小的存储代价换来较高的数据库性能。

          选用数据类型的原则:

          1)选择最小的可用的类型;

          2)从速度方面考虑,选择固定的列  使用CHAR类型;

          3)从节省空间考虑,选择动态的列,使用VARCHAR类型。

          高性能数据库设计原则:

          第一步:大致确定字段的数据类型,数字,字符串,时间等,比较直观。

          第二步:确定特定的类型,比如说 :数字里有TINYINT、SMALLINT、INT、LONGINT等,选择最合适的一个(更小通常更好)

          第三步:如有必要,请为字段设置默认值。

          当然,索引优化肯定是必不可少的,不过这属于设计表完成之后的优化范围了。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

    展开阅读

    相关资源

    学习笔记

    11小时56分钟前回答

    详解java基本数据类型传递与引用传递区别

    java中方法参数传递方式是按值传递。 如果参数是基本类型,传递的是基本类型的字面量值的拷贝。 如果参数是引用类型,传递的是该参量所引用的对象在堆中地址值的拷贝。 java的值传递和引用传递在面试中一般都会都被涉及到,今天我们就来聊聊这个问题,首先我们必须认识到这个问题一般是相对函数而言的,也就是java中的方法参数,那么我们先来回顾一下在程序设计语言中有关参数传递给方法(或函数)的两个专业术语: 按值调用 (call by value) 按引用调用 (call by reference) 所谓的按值调用表示方法接收的是调用着提供的值,而按引用调用则表示方法接收的是调用者提供的变量地址(如果是C语……

    17小时28分钟前回答

    Java基本类型包装类概述与Integer类、Character类用法分析

    本文实例讲述了Java基本类型包装类概述与Integer类、Character类用法。分享给大家供大家参考,具体如下: 基本类型包装类概述 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。 常用的操作之一:用于基本数据类型与字符串之间的转换。 基本类型和包装类的对应 Byte , Short , Integer , Long , Float , Double , Character , Boolean Integer类 为了让基本类型的数据进行更多的操作,Java就为每种基本类型提供了对应的包装类类型 package cn.itcast_01;/* * 需求1:我要求大家把100这个数据的二进制,八进制,十六进制计算出来 * 需求2:我要求大家判断一个数据是否是int范围内的。 * 首先你的知……

    3小时18分钟前回答

    JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】

    本文实例讲述了JavaScript引用类型之基本包装类型。分享给大家供大家参考,具体如下: 为了操作基本类型值,ECDMAScript提供了3个特殊的引用类型——基本包装类型 Boolean 、 Number 和 String 。每当读取一个基本类型值时,后台会创建一个对应的基本包装类型的对象。 var str = "Hello world";var substr = str.substring(); 等价于 var str = new String("Hello world");//创建String类型的实例var substr = str.substring();//在实例上调用substring()方法str = null;//销毁实例 基本包装类型是特殊的引用类型,引用类型与基本包装类型的区别如下: (1)对象的生存期 使用new操作符创建的引用类型的实例,在执行流离开当前作用域之前一直存在于内存中……