Python基礎語法——(引號、字符串、長字符串、原始字符串、Unicode)


一、單引號字符串和轉義引號

  當字符串中出現單引號'時,我們可以用雙引號""將該字符串引起來:"Let's go!"

  而當字符串中出現雙引號時,我們可以用單引號''將該字符串引起來:' "Hello,world!" she said '

  但是當字符串中又有單引號'又有雙引號"時該如何處理呢:使用反斜線(\)對字符串中的引號進行轉義:'Let\'s go!'

二、字符串

  1. 拼接字符串
>>>"Let's say"  ' "Hello,world!" '
'Let\'s say "Hello,world!" '
>>>x="hello,"
>>>y="world!"
>>>x y
SyntaxError: invalid syntax
>>>"hello,"+"world!"
'hello,world!'
>>>x+y
'hello,world!'

   上面只是一個接着一個的方式寫了兩個字符串,Python就會自動拼接它們,但是如果賦值給變量再用這種方式拼接則會報錯,因為這僅僅是書寫字符串的一種特殊方法,並不是拼接字符串的一般方法;這種機制用的不多。用"+"好可以進行字符串的拼接;

  2.字符串表示,str和repr

>>>print repr("hello,world!")
'hello,world!'
>>>print repr(10000L)
10000L
>>>print str("Hello,world!")
Hello,world!
>>>print str(10000L)
10000

 str和int、bool一樣,是一種類型,而repr僅僅是函數,repr(x)也可以寫作`x`實現(注意,`是反引號,不是單引號);不過在Python3.0中已經不再使用反引號了。因此,即使在舊的代碼中應該堅持使用repr。

  3.input和raw_input的比較

  input會假設用戶輸入的是合法的Python表達式,比如輸入數值1,程序不會當作是str,而是當作int類型,輸入x,程序會當作用戶輸入的是變量x,如果輸入"x",程序才會人可是字符串;

  raw_input函數它會把所有的輸入當作原始數據,然后將其放入字符串中。

>>> name=input("what is your name ?");print name
what is your name ?Allen

Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    name=input("what is your name ?");print name
  File "<string>", line 1, in <module>
NameError: name 'Allen' is not defined
>>> name=input("what is your name ?");print name
what is your name ?"Allen"
Allen

>>>input("Enter a number:")
Enter a number:3
3
>>>raw_input("Enter a number:")
Enter a number:3
'3'

 4、長字符串

如果需要寫非常長的字符串,它需要跨多行,那么可以使用三個引號代替普通引號。

1 print '''This is very long string.
2 It continues here .
3 And it's not over yet.
4 Still here.'''
5 #也可以使用三個雙引號,例如:
6 """Like This"""
LongStr

因為這種與眾不同的引用方式,你可以在字符串之間同時使用單引號和雙引號,而不需要使用反斜線進行轉義。

普通字符串也可以跨行。如果一行之中最后一個字符是反斜線,那么換行符本身"轉義"了,也就是被忽略了,例如:

print "Hello,\
world!"
#上句會打印Hello,world!。這個用法也適用於表達式和語句:
>>>1+2+\
            4+5
12
>>>print \
            'Hello,world'
Hello,world

5、原始字符串

\反斜線有轉義的功能,\n表示換行符,如果打印一個路徑,例如:

>>>print 'C:\nowhere'
#打印結果如下
C:
owhere
#我們可以通過反斜線進行轉義,改為:
>>>print 'C:\\nowhere'

但是如果對於長路徑,那么需要很多的反斜線,這樣原始字符串就派上用場了。

原始字符不會把反斜線當作特殊字符串。

>>>print r'C:\nowhere'
C:\nowhere
>>>print r'C:\Program Files\fnord\foo\bar\baz\frozz\bozz'
C:\Program Files\fnord\foo\bar\baz\frozz\bozz

當然我們也要像平常一樣對引號進行轉義,但是,最后的輸出的字符串也包含了轉義所用的反斜線

>>> print r'Let's go
SyntaxError: invalid syntax
>>> print r'Let\'s go'
Let\'s go

但是不能在原始字符串結尾輸入反斜線。

print r"This is illegal\"

上面寫法會報錯,參照上一個范例這是一個顯而易見的結論。最后一個字符是反斜線,Python就不清楚是否應該結束字符串。

但如果字符串最后一個字符確實是\,可以使用一個技巧解決上述問題

print r'C:\Program Files\foo\bar' '\\'

C:\Program Files\foo\bar\

6、Unicode字符串

Pyhon 中的普通字符串在內部是以8位的ASCII碼形成存儲的,而Unicode字符串則存儲為16位Unicode字符,這樣就能夠表示更多的字符集了,包括世界上大多數語音的特殊字符,例子:

>>>u'Hello,world!'
u'Hello,world!'

可以看到,Unicode字符串使用u前綴,就像原始字符串使用r一樣。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM