python基礎學習筆記(二)
2013-02-24 16:25 ?蟲師 閱讀( ... ) 評論( ... ) 編輯 收藏繼續第一篇的內容,講解, 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! ' >>> 10000L 10000L >>> print " hello,world! " hello,world! >>> print 10000L 10000
可以看到,長整型數 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?huhu Traceback (most recent call last): File "" , line 1, in name = input( " what is your name? " ) File " " , line 1, in 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: 3 3 >>> 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+5 12
?
?
?
原始字符串
>>> path = ' C:\abc ' >>> print path C: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 字符串。
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
