Python中的字符串字面值和格式字符串字面值

2021-03-15 00:39 阅读:2156
字符串字面值
stringliteral ::= [前缀]'strings'
  • 前缀包括:r, u, R, U, f, F, fr, Fr, fR, FR, rf, rF, Rf, RF。其中r或R表示原始字符串
  • ''单引号可用双引号或三引号替代
  • 当前缀为r时,不会对strings内容中的反斜杠(\)进行转义,也不会处理换行符,转义符本身,引号等,代码块物理显示什么形式,最终就显示什么形式
  • 前缀f或F表示格式字符串,见下
  • 转义序列:\newline 忽略反斜杠与换行符,即显示拼接 丨 \\反斜杠 丨 \' 丨\''丨\a ASCII响铃丨\b ASCII退格符丨\f ASCII换页符丨\n ASCII换行符丨\r ASCII回车符 丨\t ASCII水平制表符 丨\v ASCII垂直制表符丨\ooo 八进制ooo字符丨\xhh十六进制hh字符丨\n{name}Unicode数据库中名为name的字符丨\uxxxx 16位十六进制xxxx码位的字符丨\Uxxxxxxxx 32位16进制数xxxxxxxx码位的字符
  • 空格分割的多个字符串或字节串字面值,等于合并操作,包括带r前缀的字面值
格式字符串字面值
f'this is strings {variableName !r}'丨f'this is strings {variableName: fomat_spec}'
  • f表示格式字符串
  • ‘’单引号也可使用双引号“”
  • this is strings 花括号外以字符字面量显示
  • variableName变量以变量值表示
  • !r调用repr(),!s调用str(),!a调用ascii()
  • :format_spec格式规格
  • variableName表达式中可有=号,输出内容包括表达式文本、=,以及求值结果没有指定格式时,'=' 默认调用表达式的 repr()。指定了格式时,默认调用表达式的 str(),除非声明了转换字段 '!r'
  • 花括号里面的替换字段不能和f后的‘’或者“”冲突
格式规格format_spec
format_spec ::= [[fill]align][sign][#][0][width][grouping_option][.precision][type]

  • [[fill]align] 对齐(当没有指定宽度或者指定宽度小于实际宽度时,对齐没有意义)
    • [fill] 任何字符,指定宽度时,以之填充
    • < 强制左对齐
    • > 强制右对齐
    • = 强制将填充放在符号(如果有)之后但在数字之前,仅对数字类型有效
    • ^ 强制居中
  • [0][width] width前加0,为数字类型添加前导0,相当于[fill]为0,[align]为=
  • [grouping_option] ‘,’表示使用逗号作为千位分隔符,'_'表示对浮点数和'd'type的整数用_作为千位分隔符,而对于类型 'b', 'o', 'x' 和 'X'的整数,将为每 4 个数位插入一个下划线
  • type 类型
    • 用于字符串
      • s 字符串格式,默认类型,可以省略
      • None和s一样
    • 用于整数
      • b 二进制格式
      • c 字符。打印之前将整数转化为unicode字符
      • d 十进制整数
      • o 八进制格式
      • x丨X 十六进制格式
      • n 和d相似
      • None和d相同
    • 用于浮点数
      • f丨F 浮点数
      • e丨E 科学计数法
      • % 百分比
      • g 常规格式。精度>=1

{{commentTotal}} 条评论

{{item.nickname}}
{{item.create_date}}
{{item.content}}
- 上拉或点击加载更多 -
- 加载中 -
- 没有更多了 -
- 本文链接 -