2012-01-16 69 views
1

我建立一個字符串,通過以下:字符串在python格式不按預期工作

pagination +='<li>''<a href="/main/?page=%(current_link)s'+link+'">%(current)s</a></li>' % \ 
        {'current_link': current_link, 'current': current_link} 

當觀看在瀏覽器頁面,文本顯示了罰款,但鏈接指向」。 %(current_link)■...「。我已經嘗試在字符串本身中命名它們兩個'current_link',但那不起作用,所以我嘗試了上面的方法。

有什麼建議嗎?

回答

3

問題是你已經分開字符串,使得%運算符只能在最後一部分工作。

試試這樣說:

pagination +='<li><a href="/main/?page=%(current_link)s>%(current)s</a></li>' % \ 
        {'current_link': current_link, 'current': current_link} 

或者,如果你在那裏,像這樣預期link變量:

pagination +='<li><a href="/main/?page=%(current_link)s%(link)s>%(current)s</a></li>' % \ 
        {'link': link, 'current_link': current_link, 'current': current_link} 
+0

好感謝,我會嘗試。你是如何讓HTML在問題中出現的?我正要刪除這個問題,因爲我不能讓它顯示 – user1100778 2012-01-16 15:08:48

+0

@ user1100778,如果你開始一個有四個空格的行,它將顯示爲代碼。在這裏閱讀其他格式幫助:http://stackoverflow.com/editing-help – 2012-01-16 15:10:51

+0

好吧,我試了一下,它的工作原理很好,很有意義。感謝大家! – user1100778 2012-01-16 15:14:30

0

請勿混用無操作員('foo''bar')一起惡補串,串聯與+,並與%格式。你只是格式化最後一個字符串。

1

嗯。您正在使用+混合拼接,並與%格式化,我認爲,這是運算符優先級的問題:%結合比+強,所以

("%(a)s" + "%(b)s" % { 'a': 'A', 'b': 'B' }) == '%(a)sB' 
+0

+1提及操作符優先級爲理由。 – glglgl 2012-01-16 15:34:17