所以,语法似乎已经与我在Python 2中学到的有所不同...这是目前为止我所学到的内容
for key in word:
i = 1
if i < 6:
print ( "%s. %s appears %s times.") % (str(i), key, str(wordBank[key]))
第一个值是整数,第二个是字符串,最后一个是整数。
我应该如何修改我的打印语句,以便正确地打印这些变量?
语法已经改变,print
现在是一个函数。这意味着%
格式化需要在括号内完成: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
。
print ("{0}. {1} appears {2} times.".format(1, 'b', 3.1415))
输出:
1. b appears 3.1415 times.
打印函数与其他函数一样,需要在其参数周围加上括号进行调用。
>>> 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.
)
。在你的示例中,你把%
放在了print()
外面,你应该把它移到里面:使用这个:
print("%s. %s appears %s times." % (str(i), key, str(wordBank[key])))
在Python中,可以使用format方法打印值。以下这个小例子将有所帮助:输入两个数字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))
print("Hi! my name is {name}".format(name="rashi"))
print()
是 Python 3 中的一个函数,而不是一个语句。将您最后一行中除了单词“print”之外的所有内容都用括号括起来,这样就可以了。 - MattDMoprint(....)
,它会返回None
,然后是None % (one, two, three_strings)
。你想要在print(....)
调用内部完成something % (one, two, three_strings)
。 - Martijn Pieters