有人能告诉我这段代码出了什么问题以及要修改什么吗?你知道吗
number = 1
text = "hello"
while number <= 10:
print("%d, %s" % number, text)
number = number + 1
错误:
Traceback (most recent call last): File "program.py", line 5, in print("%d, %s" % number + text) TypeError: not enough arguments for format string
当我这样做的时候它就起作用了:
number = 1
text = "hello"
while number <= 10:
print("%d" % number)
number = number + 1
我想我在某个地方读到,使用“%”符号合并字符串是一种老方法,如果可能的话,我希望代码仍然使用它。
这样做需要用括号括住
number, text
,因为它需要一个元组。所以只要把print("%d, %s" % number, text)
行替换成print("%d, %s" % (number, text))
就行了。你知道吗使用此代码
在
print("%d, %s" % number, text)
语句中,您需要为字符串格式提供一个参数元组(在您的例子中是“%d,%s”)。所以,正确的方法是-或者
第二个是适用的,因为您不打印任何其他变量。 对于第一个,您需要一个元组,用于在字符串格式化期间提供多个参数的位置。所以,如果想打印只说数字,可以只
print ("%d" %number)
或print "%d" %number
。本例中的元组不是强制的,但是如果您真的想键入更多的字符,则可以执行print ("%d" %(number,))
。你知道吗但第一种是老办法。对于更新和更酷的版本,请使用
format()
如下-或者
有关详细信息,请查看-https://docs.python.org/2/library/string.html#format-string-syntax
对于代码中的其他问题,也要遵循@lenik给出的答案。你知道吗
相关问题 更多 >
编程相关推荐