[英]The difference between these 2 strings?
我最近開始學習Python,希望您能夠解決困擾我的問題。 我一直在通過“ 學習Python困難之路”在線學習Python 。 在練習6中,我遇到了一個問題,其中我在使用%r
字符串格式化操作,這導致了兩個不同的字符串。 當我打印一個字符串時,我得到的字符串帶有單引號( ' '
)。 與另一個我得到雙引號( " "
)。
這是代碼:
x = "There are %d types of people." % 10
binary = "binary"
do_not = "don't"
y = "Those who know %s and those who %s." % (binary, do_not)
print "I said: %r." % x
print "I also said: %r." % y
第一條打印語句的結果:
I said: 'There are 10 types of people.'.
第二個打印語句的結果:
I also said: "Those who know binary and those who don't.".
我想知道為什么其中一個語句的結果帶有單引號( ' '
),而另一條語句帶有( " "
)。 ] PS我正在使用Python 2.7。
%r
正在獲取字符串的repr
版本:
>>> x = 'here'
>>> print repr(x)
'here'
您會看到,單引號是通常使用的引號。 但是,在y
的情況下,字符串內有一個單引號(撇號)。 好吧,通常定義一個對象的repr
,以便將其評估為代碼等同於原始對象。 如果Python使用單引號,則將導致錯誤:
>>> x = 'those who don't'
File "<stdin>", line 1
x = 'those who don't'
^
SyntaxError: invalid syntax
因此它使用雙引號代替。
注意這一行-> do_not = "don't"
。 該字符串中有一個單引號,這意味着必須轉義單引號。 否則, 解釋器將在哪里知道字符串的開始和結束位置 ? Python知道使用""
表示此字符串文字。
如果刪除'
,則可以在字符串周圍加上一個單引號:
do_not = "dont"
>>> I also said: 'Those who know binary and those who dont.'.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.