Python學習筆記(一)

一、簡介

Python 是世界上十大流行的編程語言之一。

  • 創(chuàng)始人:龜叔 Guido van Rossum 荷蘭人
  • 特點: 優(yōu)雅、明確、簡單
  • 適合的領域: web網(wǎng)站和各種網(wǎng)站服務;工具腳本
  • 缺點:Python源碼不能加密

二、Python的變量和數(shù)據(jù)類型

1、數(shù)據(jù)類型
  • 整數(shù)
    Python可以處理任意大小的整數(shù),當然包括負整數(shù),在Python程序中,整數(shù)的表示方法和數(shù)學上的寫法一模一樣,例如:1100-80800,等等。
    計算機由于使用二進制,所以,有時候用十六進制表示整數(shù)比較方便,十六進制用0x前綴和0-9,a-f表示,例如:0xff000xa5b4c3d2,等等。

  • 浮點數(shù)
    浮點數(shù)也就是小數(shù),之所以稱為浮點數(shù),是因為按照科學記數(shù)法表示時,一個浮點數(shù)的小數(shù)點位置是可變的,比如,1.23x109和12.3x108是相等的。浮點數(shù)可以用數(shù)學寫法,如1.233.14-9.01,等等。但是對于很大或很小的浮點數(shù),就必須用科學計數(shù)法表示,把10用e替代,1.23x10^9就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。
    整數(shù)和浮點數(shù)在計算機內部存儲的方式是不同的,整數(shù)運算永遠是精確的(除法難道也是精確的?是的!),而浮點數(shù)運算則可能會有四舍五入的誤差。

  • 字符串

    字符串是以''""括起來的任意文本,比如'abc'"xyz"等等。請注意,''""本身只是一種表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c這3個字符。

  • 布爾值

    布爾值和布爾代數(shù)的表示完全一致,一個布爾值只有TrueFalse兩種值,要么是True,要么是False,在Python中,可以直接用TrueFalse表示布爾值(請注意大小寫),也可以通過布爾運算計算出來。

    布爾值可以用andornot運算。

    and運算是與運算,只有所有都為 True,and運算結果才是 True。
    or運算是或運算,只要其中有一個為 True,or 運算結果就是 True。
    not運算是非運算,它是一個單目運算符,把 True 變成 False,F(xiàn)alse 變成 True。

  • 空值
    空值是Python里一個特殊的值,用None表示。None不能理解為0,因為0是有意義的,而None是一個特殊的空值。

2、Python之print語句

print語句可以向屏幕上輸出指定的文字。比如輸出'hello, world',用代碼實現(xiàn)如下:
>>> print 'hello, world'
注意:
1.當我們在Python交互式環(huán)境下編寫代碼時,>>>是Python解釋器的提示符,不是代碼的一部分。

2.當我們在文本編輯器中編寫代碼時,千萬不要自己添加 >>>。print語句也可以跟上多個字符串,用逗號“,”隔開,就可以連成一串輸出:

>>> print 'The quick brown fox', 'jumps over', 'the lazy dog'  
 The quick brown fox jumps over the lazy dog

print會依次打印每個字符串,遇到逗號“,”會輸出一個空格,因此,輸出的字符串是這樣拼起來的:


print也可以打印整數(shù),或者計算結果:

>>> print 300
300   #運行結果
>>> print 100 + 200
300   #運行結果

因此,我們可以把計算100 + 200的結果打印得更漂亮一點:

>>> print '100 + 200 =', 100 + 200
100 + 200 = 300   #運行結果

注意: 對于100 + 200,Python解釋器自動計算出結果300,但是,'100 + 200 ='是字符串而非數(shù)學公式,Python把它視為字符串,請自行解釋上述打印結果。

3.注釋

Python的注釋以#開頭,后面的文字直到行尾都算注釋

# 這一行全部都是注釋...
print 'hello' # 這也是注釋
# 暫時不想運行下面一行代碼:
# print 'hello, python.'
4.變量

在Python程序中,變量是用一個變量名表示,變量名必須是大小寫英文、數(shù)字和下劃線(_)的組合,且不能用數(shù)字開頭。

5.Python中raw字符串與多行字符串

如果一個字符串包含很多需要轉義的字符,對每一個字符都進行轉義會很麻煩。為了避免這種情況,我們可以在字符串前面加個前綴r,表示這是一個 raw 字符串,里面的字符就不需要轉義了。例如:

r'\(~_~)/ \(~_~)/'

但是r'...'表示法不能表示多行字符串,也不能表示包含'"的字符串(為什么?)
如果要表示多行字符串,可以用'''...'''表示:

'''Line 1
Line 2
Line 3'''

上面這個字符串的表示方法和下面的是完全一樣的:

'Line 1\nLine 2\nLine 3'

還可以在多行字符串前面添加r,把這個多行字符串也變成一個raw字符串:

r'''Python is created by "Guido".
It is free and easy to learn.
Let's start learn Python in imooc!'''
6.Python中整數(shù)和浮點數(shù)

和數(shù)學運算不同的地方是,Python的整數(shù)運算結果仍然是整數(shù),浮點數(shù)運算結果仍然是浮點數(shù):

1 + 2    # ==> 整數(shù) 3
1.0 + 2.0    # ==> 浮點數(shù) 3.0

但是整數(shù)和浮點數(shù)混合運算的結果就變成浮點數(shù)了:

1 + 2.0    # ==> 浮點數(shù) 3.0

為什么要區(qū)分整數(shù)運算和浮點數(shù)運算呢?這是因為整數(shù)運算的結果永遠是精確的,而浮點數(shù)運算的結果不一定精確,因為計算機內存再大,也無法精確表示出無限循環(huán)小數(shù),比如 0.1 換成二進制表示就是無限循環(huán)小數(shù)。
那整數(shù)的除法運算遇到除不盡的時候,結果難道不是浮點數(shù)嗎?我們來試一下:

11 / 4    # ==> 2

令很多初學者驚訝的是,Python的整數(shù)除法,即使除不盡,結果仍然是整數(shù),余數(shù)直接被扔掉。不過,Python提供了一個求余的運算 % 可以計算余數(shù):

11 % 4    # ==> 3

如果我們要計算 11 / 4 的精確結果,按照“整數(shù)和浮點數(shù)混合運算的結果是浮點數(shù)”的法則,把兩個數(shù)中的一個變成浮點數(shù)再運算就沒問題了:

11.0 / 4    # ==> 2.75
7.Python中布爾類型

與運算:只有兩個布爾值都為 True 時,計算結果才為 True。

True and True   # ==> True
True and False   # ==> False
False and True   # ==> False
False and False   # ==> False

或運算:只要有一個布爾值為 True,計算結果就是 True。

True or True   # ==> True
True or False   # ==> True
False or True   # ==> True
False or False   # ==> False

非運算:把True變?yōu)镕alse,或者把False變?yōu)門rue:

not True   # ==> False
not False   # ==> True

在Python中,布爾類型還可以與其他數(shù)據(jù)類型做 and、or和not運算,請看下面的代碼:

a = True
print a and 'a=T' or 'a=F'

計算結果不是布爾類型,而是字符串 'a=T',這是為什么呢?

因為Python把0、空字符串''和None看成 False,其他數(shù)值和非空字符串都看成 True,所以:

True and 'a=T' 計算結果是 'a=T'
繼續(xù)計算 'a=T' or 'a=F' 計算結果還是 'a=T'
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容