zoukankan      html  css  js  c++  java
  • Python的字符串格式化 %r %s

    格式符是为了给真实值预留位置,控制显示的格式。

    格式符可以包含有一个类型码,用以控制显示的类型,如下:

    %s    字符串 (采用str()的显示)

    %r    字符串 (采用repr()的显示)

    %c    单个字符

    %b    二进制整数

    %d    十进制整数

    %i    十进制整数

    %o    八进制整数

    %x    十六进制整数

    %e    指数 (基底写为e)

    %E    指数 (基底写为E)

    %f    浮点数

    %F    浮点数,与上相同

    %g    指数(e)或浮点数 (根据显示长度)

    %G    指数(E)或浮点数 (根据显示长度)

     

    %%    字符"%"

    补充:%i%d都是表示有符号十进制整数,但%i可以自动将输入的八进制(或者十六进制)转换为十进制,而%d则不会进行转换。

    补充 str与repr的区别

    Python打印值的时候会保持该值在Python代码中的状态,不是用户所希望看到的状态。而使用print打印值则不一样,print打印出来的值是用户所希望看到的状态。
    例如:

    >>> "Hello, world!"
    'Hello, world!'   # Python打印出来的值是给python理解的,这里python理解为字符串,所以带着引号
    >>> 1000L         # python理解为Long型的数字,所以它打印出来的时候也带着后缀L
    1000L
    >>> print "Hello, world!"    # 打印一个字符串,给用户看的,所以不带引号
    Hello, world!
    >>> print 1000L              # 用户看到的当然是一个数字1000,而不是字符串1000L
    1000
    

    str和repr实际就分别对应上述两种显示方式。

    • str

      把值转换为合理形式的字符串,给用户看的。str实际上类似于int,long,是一种类型。

      >>> print str("Hello,  world!")
      Hello,  world!            
      >>> print str(1000L)
      1000                         
      >>> str("Hello, world!")
      'Hello, world!'               # 字符串转换之后仍然是字符串
      >>> str(1000L)
      '1000'
      
    • repr()

      创建一个字符串,以合法python表达式的形式来表示值。repr()是一个函数。

      >>> print repr("Hello,  world!")
      'Hello,  world!'
      >>> print repr(1000L)
      1000L
      >>> repr("Hello,  world!")
      "'Hello,  world!'"
      >>> repr(1000L)
      '1000L'
      

    总而言之,str出来的值是给人看的字符串,repr出来的值是给机器看的,括号中的任何内容出来后都是在它之上再加上一层引号。

  • 相关阅读:
    创业公司技术总监,去上市公司面试,结果凉了!
    Java开发最常犯的10个错误,打死都不要犯!
    这 17 个 JVM 参数,高级 Java 必须掌握!
    推荐几个顶级的IT技术公众号,坐稳了!
    Spring Boot 面试,一个问题就干趴下了!(下)
    密码已进入"淘汰"倒计时!
    一条简单的 SQL 执行超过1000ms,纳尼?
    天天用Synchronized,底层原理是个啥?
    为什么很多程序员工作时都戴耳机?
    Java转型大数据开发全套教程,都在这儿!
  • 原文地址:https://www.cnblogs.com/ainihaozhen/p/8150413.html
Copyright © 2011-2022 走看看