2011-07-13 2498 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;) –