python基礎學習筆記(二)


繼續第一篇的內容,講解,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 "<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: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中的普通字符串在內部是以8ASCII碼形成存儲的,而Unicode字符串則存儲為16Unicode字符,這樣就能夠表示更多的字符集了,包括世界上大多數語言的特殊字符。 

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

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

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

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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM