zoukankan      html  css  js  c++  java
  • 【python3的学习之路三】字符串和编码

    字符串编码

          由于计算机是美国人发明的,因此,最早只有127个字符被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。

          但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。

          但是全世界有上百种语言,各国有各国的标准就,会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。因此,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

          现在,捋一捋ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节。

    • 字母A用ASCII编码是十进制的65,二进制的01000001;
    • 字符0用ASCII编码是十进制的48,二进制的00110000,注意字符’0’和整数0是不同的;
    • 汉字中已经超出了ASCII编码的范围,用Unicode编码是十进制的20013,二进制的01001110 00101101。

          如果把ASCII编码的A用Unicode编码,只需要在前面补0就可以,因此,A的Unicode编码是00000000 01000001。

    Python的字符串

    • 在python3中字符串是以Unicode编码的
    • 对于单个字符串的编码,python提供了++ord()++函数获取字符的整数表示,chr()函数把编码转化成对应的字符
    ord('A')   # 65
    ord('')  # 20013
    chr(66)    #B
    chr(25991) #

    格式化

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

    %d    整数
    %f    浮点数,可指定小数点后的精度
    %e      用科学计数法格式化浮点数
    %s    字符串
    %x    十六进制整数

    转义字符

    (在行尾时)    续行符
    \            反斜杠符号
    '            单引号
    "            双引号
    a            响铃
                退格(Backspace)
    e            转义
    000            空
    
                换行
    v            纵向制表符
    	            横向制表符
    
                回车
    f            换页
    oyy            八进制数,yy代表的字符,例如:o12代表换行
    xyy            十六进制数,yy代表的字符,例如:x0a代表换行
    other            其它的字符以普通格式输出
  • 相关阅读:
    [BZOJ]1018 堵塞的交通(SHOI2008)
    [BZOJ]1069 最大土地面积(SCOI2007)
    HDU5739:Fantasia——题解
    洛谷6186:[NOI Online 提高组]冒泡排序——题解
    洛谷4631 & UOJ415 & LOJ2586:[APIO2018] Circle selection 选圆圈——题解
    洛谷2014:[CTSC1997]选课——题解
    洛谷2758:编辑距离——题解
    洛谷4148 & BZOJ4066:简单题——题解
    洛谷4357 & BZOJ4520:[CQOI2016]K远点对——题解
    洛谷4320:道路相遇——题解
  • 原文地址:https://www.cnblogs.com/CSgarcia/p/9705795.html
Copyright © 2011-2022 走看看