簡體   English   中英

這兩個字符串之間的區別?

[英]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.'.

python中的單引號與雙引號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM