python基礎(chǔ)學(xué)習(xí)筆記(二)
2013-02-24 16:25 ?蟲師 閱讀( ... ) 評論( ... ) 編輯 收藏繼續(xù)第一篇的內(nèi)容,講解, python 的一些基本的東西。
?
注釋
?
為了讓別人能夠更容易理解程序,使用注釋是非常有效的,即使是自己回頭再看舊代碼也是一樣。
>>> # 獲得用戶名: >>> user_name = raw_input( " what is your name? " )
在 python? 中用井號( # )表示注釋。井號( # )右邊的內(nèi)存將不被程序執(zhí)行。即使沒有注釋,也應(yīng)該讓代碼本身易于理解。幸好! Python 是一門出色的語言,它能幫助程序員編寫易于理解的程序。 ^_^
?
?
字符串
?
?
單引號字符串和轉(zhuǎn)義引號
>>> " hello,world " ' hello,world ' >>> ' "hello ,world" she said ' ' "hello ,world" she said ' >>> " 'hello,world' she said " " 'hello,world' she said "
?
第一個(gè)輸出,明明是雙引號(?“”?)?,怎么輸入變成了單引號(?‘’?)。這有什么區(qū)別呢?事實(shí)上,沒有區(qū)別。
再看第二個(gè),單引導(dǎo)(‘’)里面包含了一對雙引號(“”),這次完整輸出了。難道只有雙引號輸出會變成單引號么?
再看第三個(gè),雙引號(“”)號里面包含了一對單引號(‘’),這次為什么沒把最外面的雙引號變成單引號輸出??這編譯器比較情緒化,呵呵!
?
>>> " Let's go " " Let's go " >>> ' Let ' s go ' SyntaxError: invalid syntax >>> ' Let\'s go ' " Let's go "
第一個(gè)輸出,雙引號包含一個(gè)單引號(實(shí)際上應(yīng)該叫撇 ( ‘)? ,因?yàn)樗皇浅蓪Τ霈F(xiàn)的。)可以正常輸出。
第二個(gè)輸出,一對單引號里面包含了一個(gè)單引號(這應(yīng)該是輸入者的本意)。編譯器不知道怎么識別了。
第三個(gè)輸出,為了達(dá)到這個(gè)目的,我們需要把中間的單引號用斜杠( \ )進(jìn)行轉(zhuǎn)義。這次又不一樣了,單引號輸出之后變成了雙引號。編譯器,你真調(diào)皮。
?
拼接字符串
下面試試加號( + )來拼接一個(gè)字符
>>> " helle, " + " world! " ' helle,world! '
>>> x= " hello, " >>> y= " world! " >>> x+ y ' hello,world! '
?
?
字符串表示, str? 和? repr
前面的例子讀者可能注意到,所有通過 python 打印的字符串還是被引號括起來的。這是因?yàn)? python 打印值的時(shí)候會保持該值在 python 代碼中的狀態(tài),而不是你希望?用戶所看到的狀態(tài)。如果用 print 語句,結(jié)果就不一樣了:
>>> " hello,world! " ' hello,world! ' >>> 10000L 10000L >>> print " hello,world! " hello,world! >>> print 10000L 10000
可以看到,長整型數(shù) 10000L 被轉(zhuǎn)換成了數(shù)字 10000? ,而且在顯示給用戶的時(shí)候也如此。
我們在這里討論的實(shí)際上是值被轉(zhuǎn)為字符的兩種機(jī)制。可以通過以下兩個(gè)函數(shù)來使用這兩種機(jī)制:
>>> print str( " hello,world! " ) hello,world! >>> print str(10000L ) 10000 >>> print repr( " hello,world! " ) ' hello,world! ' >>> print repr(10000L ) 10000L
str() 函數(shù)?,它會把值轉(zhuǎn)換為合理形式的字符串,以例用戶可以理解;
repr() 函數(shù),它會創(chuàng)建一個(gè)字符串,它以合法的 python 表達(dá)式的形式來表示值。
?
?
input? 和? raw_input? 的比較
上一章的最后一個(gè)例子用到了 raw_input? 函數(shù),那它與? input? 有什么不用??下面我們用 input 函數(shù),再試試那個(gè)例子。
>>> 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() 函數(shù)會假設(shè)用戶輸入的是合法的 python 表達(dá)式。所以直接輸入 huhu? 系統(tǒng)會提示錯(cuò)誤,但是如果加上引號(“ huhu ”)就會是一個(gè)合法的字符,程序運(yùn)行是沒有問題的。
然而,要求用戶帶著引號輸入他們的名字有點(diǎn)過份,因此,就這需要使用 raw_input 函數(shù)。
>>> input( " enter a namber: " ) enter a namber: 3 3 >>> raw_input( " enter a namber: " ) enter a namber: 3 ' 3 '
當(dāng)然 input 有特別的需要,比如要求用戶輸入數(shù)字時(shí)。
?
?
長字符串 ?
如果需要寫一個(gè)非常非常長的字符串,它需要跨多行,那么,可以使用三個(gè)引號帶點(diǎn)普通引號。
>>> 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.
普通字符串也可以跨行。如果一行之中最后一個(gè)字符是反斜線,那么,換行符本身就“轉(zhuǎn)義”了,也就是被忽略了。
>>> print " Hello.\ world! " Hello.world! >>> 1+2+ \ 4+5 12
?
?
?
原始字符串
>>> path = ' C:\abc ' >>> print path C:bc
怎么會這樣呢,我想輸入的是一個(gè)路徑,卻被換行了。
>>> 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 !
原始字符串不會把反斜線當(dāng)作特殊字符。可以看到,原始字符串以 r 開頭。
?
?
Unicode 字符串
字符串常量的最后一種類型就是 Unicode? 字符串(或者稱為 Unicode? 對象 --- 與字符串并不是同一個(gè)類型)。 Python 中的普通字符串在內(nèi)部是以 8 位 ASCII 碼形成存儲的,而 Unicode 字符串則存儲為 16 位 Unicode 字符,這樣就能夠表示更多的字符集了,包括世界上大多數(shù)語言的特殊字符。?
如果你不短簡什么是 Unicode? ,可以訪問 Unicode 網(wǎng)站: http://www.unicode.org
>>> u ' hello, world! ' u ' hello, world! '
可以看到, Unicode 字符串使用 u 前綴,就像原始字符串使用 r? 一樣。
注意:在 python?3.0 中,所有字符串都是 Unicode 字符串。
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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