python基礎學習筆記(二)

來源:互聯網
上載者:User

繼續第一篇的內容,講解,python的一些基本的東西。

 

注釋

 

為了讓別人能夠更容易理解程式,使用注釋是非常有效,即使是自己回頭再看舊代碼也是一樣。

>>> #獲得使用者名稱:>>> user_name = raw_input("what is your name?")

在python 中用井號(#)表示注釋。井號(#)右邊的記憶體將不被程式執行。即使沒有注釋,也應該讓代碼本身易於理解。幸好!Python是一門出色的語言,它能協助程式員編寫易於理解的程式。^_^

 

 

字串

 

 

單引號字串和轉義引號

>>> "hello,world"'hello,world'>>> '"hello ,world" she said''"hello ,world" she said'>>> "'hello,world' she said""'hello,world' she said"

 

第一個輸出,明明是雙引號( “” ) ,怎麼輸入變成了單引號( ‘’ )。這有什麼區別呢?事實上,沒有區別。

再看第二個,單引導(‘’)裡麵包含了一對雙引號(“”),這次完整輸出了。難道只有雙引號輸出會變成單引號嗎?

再看第三個,雙引號(“”)號裡麵包含了一對單引號(‘’),這次為什麼沒把最外面的雙引號變成單引號輸出? 這編譯器比較情緒化,呵呵!

 

>>> "Let's go""Let's go">>>'Let's go'SyntaxError: invalid syntax>>> 'Let\'s go'"Let's go"

第一個輸出,雙引號包含一個單引號(實際上應該叫撇(‘) ,因為它不是成對出現的。)可以正常輸出。

第二個輸出,一對單引號裡麵包含了一個單引號(這應該是輸入者的本意)。編譯器不知道怎麼識別了。

第三個輸出,為了達到這個目的,我們需要把中間的單引號用斜杠(\)進行轉義。這次又不一樣了,單引號輸出之後變成了雙引號。編譯器,你真調皮。

 

拼接字串

下面試試加號(+)來拼接一個字元

>>> "helle,"+"world!"'helle,world!'

>>> x="hello,">>> y="world!">>> x+y'hello,world!'

 

 

字串表示,str 和 repr

前面的例子讀者可能注意到,所有通過python列印的字串還是被引號括起來的。這是因為python列印值的時候會保持該值在python代碼中的狀態,而不是你希望 使用者所看到的狀態。如果用print語句,結果就不一樣了:

>>> "hello,world!"'hello,world!'>>> 10000L10000L>>> print "hello,world!"hello,world!>>> print 10000L10000

可以看到,長整型數10000L被轉換成了數字10000 ,而且在顯示給使用者的時候也如此。

我們在這裡討論的實際上是值被轉為字元的兩種機制。可以通過以下兩個函數來使用這兩種機制:

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

str()函數 ,它會把值轉換為合理形式的字串,以例使用者可以理解;

repr()函數,它會建立一個字串,它以合法的python運算式的形式來表示值。

 

 

input 和 raw_input 的比較

上一章的最後一個例子用到了raw_input 函數,那它與 input 有什麼不用? 下面我們用input函數,再試試那個例子。

>>> name = input("what is your name?")what is your name?huhuTraceback (most recent call last):  File "<pyshell#0>", line 1, in <module>    name = input("what is your name?")  File "<string>", line 1, in <module>NameError: name 'huhu' is not defined>>> name = input("what is name?")what is name?"huhu">>> print "hello, " + name + " !"hello, huhu !

input()函數會假設使用者輸入的是合法的python運算式。所以直接輸入huhu 系統會提示錯誤,但是如果加上引號(“huhu”)就會是一個合法的字元,程式運行是沒有問題的。

然而,要求使用者帶著引號輸入他們的名字有點過份,因此,就這需要使用raw_input函數。

>>> input("enter a namber:")enter a namber:33>>> raw_input("enter a namber:")enter a namber:3'3'

當然input有特別的需要,比如要求使用者輸入數字時。

 

 

長字串 

如果需要寫一個非常非常長的字串,它需要跨多行,那麼,可以使用三個引號帶點普通引號。

>>> print ''' this is a very long string.It continues here.and it's not over yet.''' this is a very long string.It continues here.and it's not over yet.

一般字元串也可以跨行。如果一行之中最後一個字元是反斜線,那麼,分行符號本身就“轉義”了,也就是被忽略了。

>>> print " Hello.\world!" Hello.world!>>> 1+2+\      4+512

 

 

 

原始字串

>>> path ='C:\abc'>>> print pathC:bc

怎麼會這樣呢,我想輸入的是一個路徑,卻被換行了。

>>> print 'C:\\abc'C:\abc>>> print 'C:\\Program Files\\fnord\\foo\\bar\\baz\\frozz'C:\Program Files\fnord\foo\bar\baz\frozz

通過上面的雙斜線(\\)解決了路徑問題,但如果路徑很長的話會不會太麻煩了。

>>> print r'C:\Program Files\fnord\foo\bar\baz\frozz'C:\Program Files\fnord\foo\bar\baz\frozz>>> print r'Let\'s go !'Let\'s go !

原始字串不會把反斜線當作特殊字元。可以看到,原始字串以r開頭。

 

 

Unicode字串

字串常量的最後一種類型就是Unicode 字串(或者稱為Unicode 對象---與字串並不是同一個類型)。Python中的一般字元串在內部是以8位ASCII碼形成儲存的,而Unicode字串則儲存為16位Unicode字元,這樣就能夠表示更多的字元集了,包括世界上大多數語言的特殊字元。 

如果你不短簡什麼是Unicode ,可以訪問Unicode網站:http://www.unicode.org

>>> u'hello, world!'u'hello, world!' 

可以看到,Unicode字串使用u首碼,就像原始字串使用r 一樣。

注意:在python 3.0中,所有字串都是Unicode字串。

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.