【问题标题】:Printing variables in Python 3.4在 Python 3.4 中打印变量
【发布时间】:2015-01-12 08:44:43
【问题描述】:

所以语法似乎与我在 Python 2 中学到的有所不同......这是我目前所学的

for key in word:
    i = 1
    if i < 6:
        print ( "%s. %s appears %s times.") % (str(i), key, str(wordBank[key]))

第一个值是 int,第二个是 string,最后一个是 int。

如何更改我的打印语句以正确打印变量?

【问题讨论】:

  • print() 是 Python 3 中的函数,而不是语句。将最后一行中的所有内容(除了单词print)用括号括起来,您就可以准备就绪了。
  • @CMac:不,你不是。你这样做了:print(....),它将返回None,然后是None % (one, two, three_strings)。您希望 something % (one, two, three_strings)inside print(....) 调用中完成。
  • 阅读this以备将来参考...

标签: python variables printing syntax


【解决方案1】:

可以使用python中的格式方法打印值。这个小例子会有所帮助 输入两个数字 a 和 b。在第一行打印 a+b,在第二行打印 a-b

print('{:d}\n{:d}'.format(a+b,a-b))

同样在答案中我们可以做到

print ("{0}. {1} appears {2} times.".format(22, 'c', 9999))

用于字符串的python方法format()用于指定字符串格式。所以 {0},{1},{2} 类似于称为位置参数的数组索引。因此,{0} 被赋予以格式 (a+b) 写入的第一个值,{1} 被赋予第二个值 (a-b),依此类推。我们也可以使用关键字代替位置参数,例如

print("Hi! my name is {name}".format(name="rashi"))

因此这里的name是关键字,它的值是Rashi 希望对你有帮助:)

【讨论】:

    【解决方案2】:

    你也可以像这样格式化字符串:

    >>> print ("{index}. {word} appears {count} times".format(index=1, word='Hello', count=42))
    

    哪些输出

    1. Hello appears 42 times.
    

    因为值是命名的,所以它们的顺序无关紧要。使下面的示例输出与上面的示例相同。

    >>> print ("{index}. {word} appears {count} times".format(count=42, index=1, word='Hello'))
    

    以这种方式格式化字符串允许您这样做。

    >>> data = {'count':42, 'index':1, 'word':'Hello'}
    >>> print ("{index}. {word} appears {count} times.".format(**data))
    1. Hello appears 42 times.
    

    【讨论】:

      【解决方案3】:

      3.6+ 版:使用formatted string literal,简称​​f-string

      print(f"{i}. {key} appears {wordBank[key]} times.")
      

      【讨论】:

        【解决方案4】:

        问题似乎是放错了)。在您的示例中,% 位于 print() 之外,您应该将其移到内部:

        使用这个:

        print("%s. %s appears %s times." % (str(i), key, str(wordBank[key])))
        

        【讨论】:

          【解决方案5】:

          print is now a function 的语法已更改。这意味着% 格式需要在括号内完成:1

          print("%d. %s appears %d times." % (i, key, wordBank[key]))
          

          但是,由于您使用的是 Python 3.x,因此您实际上应该使用更新的 str.format 方法:

          print("{}. {} appears {} times.".format(i, key, wordBank[key]))
          

          虽然% 格式还没有正式被弃用,但不鼓励使用str.format,并且很可能会在即将到来的版本中从语言中删除(也许是Python 4? )。


          1请注意:%d 是整数的格式说明符,而不是 %s

          【讨论】:

          • 根据wwii's answer,非常笨拙的 Python 3.6 之前的语法现在已被 f-strings 取代。您能否更新您的答案,它已经过时了?
          【解决方案6】:

          试试格式语法:

          print ("{0}. {1} appears {2} times.".format(1, 'b', 3.1415))
          

          输出:

          1. b appears 3.1415 times.
          

          print 函数的调用与任何其他函数一样,所有参数都用括号括起来。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-12-23
            • 2012-10-02
            • 2023-01-22
            • 1970-01-01
            • 2016-02-12
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多