• python数据类型--重点字符串


    1、整数。没有大小限制。

    2、浮点数。也没有大小限制,但是超出一定范围就直接表示为inf(无限大)

    3、字符串。单引号'或双引号"括起来。转义字符可以转义很多字符。r''表示''内部的字符串默认不转义。'''...'''表示多行内容。

    4、布尔值  5、空值   

    6、可变有序列表list      [1,'a',False,[0.2,'toy']]      ==> 类似其他语言里的数组概念。

    7、不可变有序元组tuple    (1,'a',False,[0.2,'toy'])

    8、字典dict     {'Michael': 95, 'Bob': 75, 'Tracy': 85}      ==> 类似其他语言里的map概念.         dict的key必须是不可变对象.

    9、集合set {,}

    另外,关于字符串的编码ASCII、Unicode和UTF-8的关系:

    1 由于计算机是美国人发明的,因此,最早只有127个字符被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码。
    1 各国有各国的标准,在多语言混合的文本中,显示出来会有乱码。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。
    2 
    3 Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。
    4 
    5 现在,捋一捋ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节。
    1 新的问题又出现了:如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,
    在存储和传输上就十分不划算。
    2 3 所以,本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,
    常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间:

    在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言。

    bytes类型的数据用带b前缀的单引号或双引号表示: x = b'ABC'

    如果要在网络上传输,或者保存到磁盘上,就需要把以unicode表示的str通过encode()方法变为以字节为单位的bytes。如

    1 >>> 'ABC'.encode('ascii')
    2  b'ABC'
    3 
    4 >>> '中文'.encode('utf-8')
    5 
    6 b'xe4xb8xadxe6x96x87'

    反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法

    1 >>> b'ABC'.decode('ascii')
    2 
    3 'ABC'
    4 
    5 >>> b'xe4xb8xadxe6x96x87'.decode('utf-8')
    6 
    7 '中文'

    如果bytes中只有一小部分无效的字节,可以传入errors='ignore'忽略错误的字节:

    1 >>> b'xe4xb8xadxff'.decode('utf-8', errors='ignore')
    2 ''

    len()函数可以计算str的字符数,也可以计算bytes的字节数:

    1 >>> len('ABC')
    2 3
    3 >>> len('中文')
    4 2
    5 >>> len(b'ABC')
    6 3
    7 >>> len('中文'.encode('utf-8'))
    8 6
    9 >>>

    # -*- coding: utf-8 -*-

    %运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,%x表示十六进制,%f表示浮点数。有几个%?占位符,% () 后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。

    1 >>> 'Hello, %s' % 'world'
    2 'Hello, world'
    3 >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
    4 'Hi, Michael, you have $1000000.'

    其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数:

    1 >>> print('%.1f' % 3.1415926)
    2 3.1
    3 >>> print('%.3f' % 3.1415926)
    4 3.142

    可以看出,以上可以取四舍五入的近似值。

  • 相关阅读:
    LeetCode 965. Univalued Binary Tree
    LeetCode 961. N-Repeated Element in Size 2N Array
    LeetCode 832. Flipping an Image
    语法设计——基于LL(1)文法的预测分析表法
    简单的词法设计——DFA模拟程序
    LeetCode 905. Sort Array By Parity
    LeetCode 804. Unique Morse Code Words
    【原创】用事实说话,Firefox 的性能是 Chrome 的 2 倍,Edge 的 4 倍,IE11 的 6 倍!
    【新特性速递】新增单标签页模式,界面更加清爽!
    【新特性速递】重构表格列锁定代码,只有一个横向滚动条,更加现代化!
  • 原文地址:https://www.cnblogs.com/lldxz/p/10869311.html
Copyright © 2020-2023  润新知