一、簡介
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ù)學上的寫法一模一樣,例如:1
,100
,-8080
,0
,等等。
計算機由于使用二進制,所以,有時候用十六進制表示整數(shù)比較方便,十六進制用0x
前綴和0-9,a-f表示,例如:0xff00
,0xa5b4c3d2
,等等。浮點數(shù)
浮點數(shù)也就是小數(shù),之所以稱為浮點數(shù),是因為按照科學記數(shù)法表示時,一個浮點數(shù)的小數(shù)點位置是可變的,比如,1.23x109和12.3x108是相等的。浮點數(shù)可以用數(shù)學寫法,如1.23
,3.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ù)的表示完全一致,一個布爾值只有
True
、False
兩種值,要么是True
,要么是False
,在Python中,可以直接用True
、False
表示布爾值(請注意大小寫),也可以通過布爾運算計算出來。布爾值可以用
and
、or
和not
運算。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'