2011-07-13 14 views
16

Poniższy program używa ciągu {0} i nie mam pewności, jak to działa, pojawił się w internetowym samouczku dotyczącym iteracji dla Pythona i nie mogę znaleźć nigdzie tego wyjaśnienia.Co oznacza {0} w tym łańcuchu w Pythonie?

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)) 

Dziękujemy!

Odpowiedz

26

Jest to wskaźnik metody formatowania, która ma być zastąpiona przez pierwszy (indeks zero) parametr formatu. (Np "2 + 2 = {0}".format(4))

+0

Świetnie, dziękuję! To ma sens. – Elizabeth

12

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

wykonać operację formatowania tekstu. Argument format_string może zawierać tekst literowy lub pola zastępcze ograniczone przez nawiasy klamrowe {}. Każde pole zastępcze zawiera indeks numeryczny argumentu pozycyjnego lub nazwę argumentu słowa kluczowego. Zwraca kopię parametru format_string, gdzie każde zastępowane pole jest zastępowane wartością ciągu znaków odpowiedniego argumentu.

+0

+1 za powiązanie z wyjaśnieniem, że operacja nie mogła się wydawać. – SingleNegationElimination

+0

+1 za powiązanie z dokumentami, że odpowiedź na górze (z trzykrotnie większą liczbą głosów!) Nie zadała sobie trudu wskazania. –

+0

Dzięki za link, to sprawia, że ​​pojęcie jest bardzo jasne. – Elizabeth

4

To jest nowy styl formatowania Pythona. Przeczytaj na ten temat here.

5

Jest to symbol zastępczy, który zostanie zastąpiony pierwszym argumentem dla format w wyniku. {1} byłby drugim argumentem i tak dalej.

Aby uzyskać szczegółowe informacje, patrz Format String Syntax.

7

Jest dobrodziejstwem dla umieszczenia samo arg wielokrotnie

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

Czy to nie miłe !!!

+1

To miło, z wyjątkiem tego, że gdy dodajesz 0 do 1, wynikiem jest 1, a nie 0;) –