如果對自然語言分類,有很多中分法,比如英語、法語、漢語等,這種分法是最常見的。在語言學裡面,也有對語言的分類方法,比如什麼什麼語系之類的。我這裡提出一種分法,這種分法尚未得到廣大人民群眾和研究者的廣泛認同,但是,我相信那句“真理是掌握在少數人的手裡”,至少在這裡可以用來給自己壯壯膽。
我的分法:一種是語言中的兩個元素(比如兩個字)和在一起,出來一個新的元素(比如新的字);另外一種是兩個元素和在一起,知識兩個元素並列。比如“好”和“人”,兩個元素和在一起是“好人”,而3和5和在一起是8,如果你認為是35,那就屬於第二類和法了。
把我的這種分法抽象一下:
一種是:△ +□ = ○
另外一種是:△ +□ = △ □
我們的語言中,離不開以上兩類,不是第一類就是第二類。
太天才了。請鼓掌。
字串
在我洋洋自得的時候,我google了一下,才發現,自己沒那麼高明,看維基百科的字串詞條是這麼說的:
字串(String),是由零個或多個字元組成的有限串列。一般記為s=a[1]a[2]...a[n]。
看到維基百科的偉大了吧,它已經把我所設想的一種情況取了一個形象的名稱,叫做字串
根據這個定義,在前面兩次讓一個程式員感到偉大的"Hello,World",就是一個字串。或者說不管用英文還是中文還是別的某種問,寫出來的文字都可以做為字串對待,當然,裡面的特殊符號,也是可以做為字串的,比如空格等。
操練一下字串吧。
>>> print "good good study, day day up"good good study, day day up>>> print "----good---study---day----up"----good---study---day----up
在print後面,列印的都是字串。注意,是雙引號裡面的,引號不是字串的組成部分。它是在告訴電腦,它裡麵包裹著的是一個字串。也就是在python中,通常用一對雙引號、或者單引號來包裹一個字串。或者說,要定義一個字串,就用雙引號或者單引號。
愛思考的看官肯定發現上面這句話有問題了。如果我要把下面這句話看做一個字串,應該怎麼做?
小明說"我沒有燒圓明園"
或者這句
What's your name?
問題非常好,有道理。在python中有一種方法專門解決類似的問題。看下面的例子:
>>> print "小明說:\"我沒有燒圓明園\""小明說"我沒有燒圓明園"
這個例子中,為了列印出那句含有雙引號的字串,也就是雙引號是字串的一部分了,使用了一個符號:\,在python中,將這個符號叫做轉義符。本來雙引號表示包括字串,它不是字串一部分,但是如果前面有轉義符,那麼它就失去了原來的含義,轉化為字串的一部分,相當於一個特殊字元了。
下面用轉義符在列印第二句話:
>>> print 'what\'s your name?'what's your name?
另外,雙引號和單引號還可以嵌套,比如下面的句子中,單引號在雙引號裡面,雖然沒有在單引號前面加轉義符,但是它被認為是字串一部分,而不是包裹字串的符號
>>> print "what's your name?" #雙引號包裹單引號,單引號是字元what's your name?>>> print 'what "is your" name' #單引號包裹雙引號,雙引號是字元what "is your" name
變數串連到字串
前面講過變數了,並且有一個釣魚的比喻。如果忘記了,請看前一章內容。
其實,變數不僅可以跟數字串連,還能夠跟字串串連。
>>> a=5>>> a5>>> print a5>>> b="hello,world">>> b'hello,world'>>> print bhello,world
還記得我們曾經用過一個type命令嗎?現在它還有用,就是檢驗一個變數,到底跟什麼類型聯絡著,是字串還是數字?
>>> type(a)>>> type(b)
程式員們經常用一種簡單的說法,把a稱之為數字型變數,意思就是它能夠或者已經跟數字連著呢;把b叫做字元(串)型變數,意思就是它能夠或者已經跟字串連著呢。
對字串的簡單操作
對數字,有一些簡單操作,比如四則運算就是,如果3+5,就計算出為8。那麼對字串都能進行什麼樣的操作呢?試試吧:
>>> "py"+"thon"'python'
跟我那個不為大多數人認可的發現是一樣的,你還不認可嗎?兩個字串相加,就相當於把兩個字串串連起來。(別的運算就別嘗試了,沒什麼意義,肯定報錯,不信就試試)
>>> "py"-"thon"Traceback (most recent call last): File "", line 1, in TypeError: unsupported operand type(s) for -: 'str' and 'str'
以上就是對字串的第一種操作。
連接字串
方法1:
在IDLE中按照下面方法操作
>>> a = "老齊">>> b= "教python">>> c = a+b>>> print c老齊教python>>> c'\xe8\x80\x81\xe9\xbd\x90\xe6\x95\x99python'
這是一種最簡單串連兩個字串的方法。注意上面例子的最後一行,怎麼出現亂碼了?那不是亂碼,是字元編碼的問題。這個你權當沒看見好了。不過的確是看見了。請看官google字元編碼就知道了。這裡推薦一篇非常好的文章:字元集和字元編碼
老齊提示:看官做為學習者,一定要對所學的對象有一種好奇心,比如上面例子中,如果你滿足於print c,發現結果跟自己所預料一樣,這還遠遠不夠。如果你向下走了一行,就發現一個怪怪的結果了,這就讓你在編程路上又前進一大步。所以,要有對世界好奇的心,不斷探索、思考和嘗試。反正在電腦上嘗試,也沒有多大成本。最壞的結果是關掉IDLE罷了。
對字串的簡單操作暫且到這裡,下一篇文章繼續,還沒完,請明天再來。