2013-11-27 28 views
0

我想用變量randomOne使用str.format(),因爲%s似乎並沒有爲我工作:如何使用變量str.format()在python

print('The number generated between %s and %s is' + number) % (randomOne, randomTwo) 

而且我得到這個錯誤:

TypeError: unsupported operand type(s) for %: 'nonetype' and 'tuple' 
+0

這裏有三個單獨的問題:首先,'str.format'不使用'%s'佔位符,它使用佔位符{}。其次,你實際上並沒有調用'str.format',你正在使用'%'運算符。最後,你使用操作符來打印字符串的結果,而不是你想要打印的字符串。 @ sweeneyrod的答案解決了所有這三個問題(以兩種不同的方式,取決於你是否真的想要'str.format',或者你的代碼顯示'%')。 – abarnert

回答

1

呦你需要對字符串進行格式化操作,而不是打印字符串的操作。這是你目前問題的原因。如果你想在這種情況下使用str.format你可以這樣做:

print('The number generated between {} and {} is {}'.format(randomOne, randomTwo, number)) 

在你要堅持用舊式的字符串格式化(我不會勸告)的情況下,你可以這樣做:

print('The number generated between %s and %s is %s' % (randomOne, randomTwo, number)) 
1

您只需要在正確的地方使用括號

print('The number generated between %s and %s is %d' % (randomOne, randomTwo, number)) 
相關問題