2012-01-13 90 views
26

這工作:ValueError異常:不支持的格式字符而形成的字符串

print "Hello World%s" %"!" 

但這並不

print "Hello%20World%s" %"!" 

誤差ValueError: unsupported format character 'W' (0x57) at index 8

我使用Python 2.7。

爲什麼要這樣做?那麼%20被用來代替網址中的空格,如果使用它,我不能用printf格式來形成字符串。但爲什麼Python會這樣做?

回答

3

那麼,爲什麼你有%20 url-引用轉義格式字符串中的第一位呢?理想情況下,你會做插值第一格式:

formatting_template = 'Hello World%s' 
text = '!' 
full_string = formatting_template % text 

那你後來的網址引用它:

result = urllib.quote(full_string) 

這是更好,因爲它會引用在字符串中的所有URL的新書的東西,包括的東西,在text部分。

2

你可能會有一個錯字..在我的情況下,我說%w我想說%s。