2011-07-13 2523 views
16

以下程序在字符串中使用{0},我不确定它是如何工作的,它出现在关于Python迭代的在线教程中,我似乎无法在任何地方找到解释它的地方。这个Python字符串中的{0}是什么意思?

import random 

number = random.randint(1, 1000) 
guesses = 0 

print("I'm thinking of a number between 1 and 1000.") 

while True: 
    guess = int(input("\nWhat do you think it is? ")) 
    guesses += 1 

    if guess > number: 
     print("{0} is too high.".format(guess)) 
    elif guess < number: 
     print("{0} is too low.".format(guess)) 
    else: 
     break 

print("\nCongratulations, you got it in {0} guesses!\n".format(guesses)) 

谢谢!

回答

26

它是格式方法的一个指示符,您希望它被格式的第一个(索引零)参数替换。 (例如"2 + 2 = {0}".format(4)

+0

太好了,谢谢!这就说得通了。 – Elizabeth

12

http://docs.python.org/release/3.1.3/library/stdtypes.html#str.format

执行字符串格式化操作。 format_string参数可以包含由大括号{}分隔的文本文本或替换字段。 每个替换字段包含 位置参数的数字索引或关键字参数的名称。返回format_string的副本 ,其中每个替换字段将替换为对应参数的字符串值 。

+0

+1用于链接到op似乎无法找到的解释。 – SingleNegationElimination

+0

+1用于链接到文档顶部的答案(三倍票数!)没有打扰指向。 –

+0

感谢您的链接,它使这个概念非常清晰。 – Elizabeth

4

这是新的python格式样式。请阅读here

5

这是一个占位符,将被结果中的第一个参数替换为format{1}将是第二个参数,依此类推。详情请参阅Format String Syntax

7

它是将相同的福音精氨酸多次

print("When you multiply {0} and {1} or {0} and {2}, the result is {0}".format(0,1,2)) 

不漂亮!

+1

这很好,除了当你添加0到1时,结果是1,而不是0;) –