qileilove

          blog已經(jīng)轉移至github,大家請訪問 http://qaseven.github.io/

          python基礎學習筆記(二)----注釋 字符串

          注釋

           

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

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

          python 中用井號(#)表示注釋。井號(#)右邊的內(nèi)存將不被程序執(zhí)行。即使沒有注釋,也應該讓代碼本身易于理解。幸好!Python是一門出色的語言,它能幫助程序員編寫易于理解的程序。^_^

           

           

          字符串


           

           

          單引號字符串和轉義引號

          復制代碼
          >>> "hello,world" 'hello,world'  >>> '"hello ,world" she said' '"hello ,world" she said'  >>> "'hello,world' she said" "'hello,world' she said"
          復制代碼

           

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

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

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

           

          復制代碼
          >>> "Let's go" "Let's go"  >>>'Let's go' SyntaxError: invalid syntax  >>> 'Let\'s go' "Let's go"
          復制代碼

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

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

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

           

          拼接字符串

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

          復制代碼
          >>> "helle,"+"world!" 'helle,world!'

          >>> x="hello," >>> y="world!" >>> x+y 'hello,world!'
          復制代碼

           

           

          字符串表示,str 和 repr

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

          復制代碼
          >>> "hello,world!" 'hello,world!' >>> 10000L 10000L  >>> print "hello,world!" hello,world! >>> print 10000L 10000
          復制代碼

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

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

          復制代碼
          >>> print str("hello,world!") hello,world! >>> print str(10000L) 10000  >>> print repr("hello,world!") 'hello,world!' >>> print repr(10000L) 10000L
          復制代碼

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

          repr()函數(shù),它會創(chuàng)建一個字符串,它以合法的python表達式的形式來表示值。

           

           

          input 和 raw_input 的比較

          上一章的最后一個例子用到了raw_input 函數(shù),那它與 input 有什么不用? 下面我們用input函數(shù),再試試那個例子。

          復制代碼
          >>> name = input("what is your name?") what is your name?huhu  Traceback (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()函數(shù)會假設用戶輸入的是合法的python表達式。所以直接輸入huhu 系統(tǒng)會提示錯誤,但是如果加上引號(“huhu”)就會是一個合法的字符,程序運行是沒有問題的。

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

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

          當然input有特別的需要,比如要求用戶輸入數(shù)字時。

           

           

          長字符串 

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

          復制代碼
          >>> 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中的普通字符串在內(nèi)部是以8ASCII碼形成存儲的,而Unicode字符串則存儲為16Unicode字符,這樣就能夠表示更多的字符集了,包括世界上大多數(shù)語言的特殊字符。 

          如果你不短簡什么是Unicode ,可以訪問Unicode網(wǎng)站:http://www.unicode.org

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

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

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

          posted on 2014-01-30 00:51 順其自然EVO 閱讀(506) 評論(0)  編輯  收藏 所屬分類: python

          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 尖扎县| 德保县| 洛隆县| 天柱县| 虞城县| 丘北县| 丰台区| 轮台县| 石楼县| 全椒县| 沂水县| 宽城| 志丹县| 江达县| 芦溪县| 阿拉善盟| 陕西省| 开封市| 台南县| 柳州市| 龙海市| 阿坝县| 南宫市| 龙江县| 吉首市| 扎囊县| 榆社县| 建湖县| 山丹县| 高淳县| 巫山县| 金阳县| 南川市| 襄垣县| 寿阳县| 本溪| 比如县| 清新县| 微山县| 金乡县| 鄂伦春自治旗|