01 數(shù)據(jù)類型
在 Python 中,能夠直接處理的數(shù)據(jù)類型有以下幾種:
整數(shù)
Python 可以直接處理任意大小的整數(shù)澎剥,包含負(fù)整數(shù)叭首。 十進(jìn)制表示整數(shù)和數(shù)學(xué)上一樣;十六進(jìn)制表示整數(shù)需要在前面加 0x 互广, 后面用十六進(jìn)制表示敛腌。
浮點(diǎn)數(shù)
浮點(diǎn)數(shù)即小數(shù),之所以叫浮點(diǎn)數(shù)惫皱,是因?yàn)榘凑湛茖W(xué)計(jì)數(shù)法表示時(shí)像樊,一個(gè)浮點(diǎn)數(shù)的小數(shù)點(diǎn)位置是可變的。 整數(shù)和浮點(diǎn)數(shù)在計(jì)算機(jī)內(nèi)部的儲存方式是不同的旅敷,整數(shù)運(yùn)算永遠(yuǎn)是精確的( 除法也是精確的生棍!) ,而浮點(diǎn)數(shù)可能會有四舍五入的誤差媳谁。
字符串
字符串是以 ' ' 涂滴," " , 括起來的任意文本晴音。
布爾值
布爾值和布爾代數(shù)的表示完全一致柔纵,一個(gè)布爾值只有 True、False 兩種值段多;Python 中可以直接使用 True首量、False 表示布爾值(注意大小寫),也可以通過布爾運(yùn)算計(jì)算出來进苍,布爾值可以用 and (與) 加缘、or (或)、not(非)運(yùn)算 觉啊。
空值
空值是 Python 里一個(gè)特殊的值拣宏,用 None 表示。 None 不能理解為 0 杠人,因?yàn)?0 是有意義的勋乾,而 None 是一個(gè)特殊的空值。
此外嗡善, Python 還提供了列表辑莫、字典、等多種數(shù)據(jù)類型罩引; 還允許創(chuàng)建自己定義的數(shù)據(jù)類型各吨, 后面繼續(xù)學(xué)習(xí)。
練習(xí):
1.計(jì)算十進(jìn)制整數(shù)和十六進(jìn)制整數(shù)之和袁铐, 自己隨便相加揭蜒。 (Python 可以直接進(jìn)行操作横浑!)
2.用字符串表示一串字符。 例如: Learn Python in 2017.6
3.計(jì)算表達(dá)式的布爾值屉更。例如: 99>100徙融, 0xff == 255 。
使用 print 命令打印
02 print 語句
print語句可以向屏幕上輸出指定的文字瑰谜。比如輸出'hello, world'欺冀,用代碼實(shí)現(xiàn)如下:
>>> print 'Hello,World'
- 在 Python 交互式環(huán)境下編寫代碼時(shí)似舵, >>> 是 Python 解釋器的提示符脚猾,而不是代碼葱峡。
- 在自己寫的時(shí)候不要加 >>> 砚哗。
print 語句也可以跟多個(gè)字符串, 用逗號隔開砰奕,就可以連成一串輸出:
>>> print 'one', 'two', 'three'
print 會一次打印每個(gè)字符串蛛芥,遇到逗號 '','' 會輸出一個(gè)空格。 從而輸出:
one two three
03 Python 的注釋
Python 中使用 # 來注釋代碼军援。
04 Python 中什么是變量
Python 程序中的變量仅淑, 是用一個(gè)變量名表示,變量名必須是 大小寫英文胸哥、數(shù)字和下劃線(_)的組合涯竟,且不能用數(shù)字開頭。
在 Python 中 = 號是賦值語句空厌,可以把任意數(shù)據(jù)類型賦值給變量庐船,同一個(gè)變量可以反復(fù)賦值, 而且可以是不同類型的變量嘲更。例如:
x = 100 # x 是整數(shù)
print x
x = 'learn python' # x 為字符串
print x
這種變量本身類型不固定的語言稱為動態(tài)語言筐钟,與之對應(yīng)的是靜態(tài)語言;靜態(tài)語言在定義變量時(shí)必須指定變量類型赋朦,否則在賦值的時(shí)候就會出錯(cuò)篓冲、像Java、C/C++ 這樣的靜態(tài)語言在賦值前都要指定變量類型宠哄。
練習(xí):
等差數(shù)列可以定義為每一項(xiàng)與它的前一項(xiàng)的差等于一個(gè)常數(shù)壹将,可以用變量 a1 表示等差數(shù)列的第一項(xiàng), 用 d 表示公差毛嫉,請計(jì)算數(shù)列 1 4 7 10 13 16 19 ...
前 100 項(xiàng)的和诽俯。
a1 = 1
d = 3
n = 100
an = a1 + (n-1) * d
s = n * a1 + n * (n-1) * d/2
print s
05 Python 中定義字符串
當(dāng)然字符串都知道是怎么定義的了。 這里主要提及到 ' ' 和 '' '' 在某些時(shí)候互相包含狱庇,或者同時(shí)存在的情況惊畏。如果同時(shí)存在恶耽, 那么就要用轉(zhuǎn)義字符 \ 來表示一個(gè)普通的字符,不代表字符串的起始颜启。
'Jane said \" I\' m OK\"!'
其他轉(zhuǎn)義字符:
\n 表示換行
\t 表示一個(gè)制表符
\\ 表示 \ 字符本身
等等......
06 Python 中 raw 字符串與多行字符串
為了避免一個(gè)字符串里包含了很多需要轉(zhuǎn)義的字符偷俭, 對每一個(gè)都進(jìn)行轉(zhuǎn)義那么就很麻煩, Python 中缰盏, 可以在前面加一個(gè) r 涌萤, 表示這是一個(gè) raw 字符串,里面需要轉(zhuǎn)義的字符就不用轉(zhuǎn)義了口猜; 但是 r'...' 表示法不能表示多行字符串负溪, 也不能表示包含 ' 和 '' 的字符串 !
如果要表示多行济炎, 就用 '''......''' 來表示川抡。( 也可以在多行字符串前面加 r , 把這個(gè)多行變成一個(gè) raw 字符串须尚。 )
07 Python 中的 Unicode 字符串
當(dāng)然字符串還會涉及一個(gè)編碼的問題崖堤。 一些關(guān)于 Unicode 的歷史,這里就不說了耐床。
在 Python 中后來添加了對 Unicode 的支持密幔, 以 Unicode 表示的字符串用 u'...'
表示, 例如 :
print u'我的世界'
注意: 不加 u 中文就不能正常顯示撩轰。 所以 Unicode 字符串除了多了一個(gè) u
之外胯甩,與普通的字符串沒什么區(qū)別。 轉(zhuǎn)義字符和多行字符串表示法堪嫂,raw + 多行 仍然有效偎箫。
如果中文字符串在 Python 環(huán)境下遇到 UnicodeDecodeError, 這是因?yàn)?.py 文件保存的格式有問題溉苛【盗可以在第一行添加注釋。
# -*- coding: utf-8 -*-
這樣的作用就是告訴 Python 解釋器愚战,用 UTF-8 編碼讀取的源代碼娇唯,然后用 Notepad++ 或者其他 另存為...并選擇 UTF-8 格式保存。
07 Python 中整數(shù)和浮點(diǎn)數(shù)
Python 中對整數(shù)和浮點(diǎn)數(shù)的運(yùn)算跟數(shù)學(xué)中的四則運(yùn)算規(guī)則完全一致寂玲, 但和數(shù)學(xué)運(yùn)算不同的地方是塔插, Python 的整數(shù)運(yùn)算結(jié)果仍然是整數(shù), 浮點(diǎn)數(shù)運(yùn)算結(jié)果仍然是浮點(diǎn)數(shù)拓哟。但整數(shù)和浮點(diǎn)數(shù)的運(yùn)算結(jié)果就變成了浮點(diǎn)數(shù)想许。
為什么要區(qū)分整數(shù)和浮點(diǎn)數(shù)?
計(jì)算機(jī)的無法表示無限循環(huán)小數(shù)。
小練習(xí):
請計(jì)算 2.5 + 10 / 4 ,并解釋計(jì)算結(jié)果為什么不是期望的 5.0 ?
請修復(fù)上述運(yùn)算流纹,使得計(jì)算結(jié)果是 5.0
print 2.5 + 10.0 / 4
08 Python 中的布爾類型
布爾值只有 2 種: True & False 糜烹。但是在布爾類型運(yùn)算有以下幾種:
與運(yùn)算:
兩個(gè)布爾值都為 True 時(shí), 計(jì)算結(jié)果才為 True漱凝。
True and True # ==> True
True and False # ==> False
False and True # ==> False
False and False # ==> False
或運(yùn)算:
一個(gè)布爾值為 True 時(shí)疮蹦, 計(jì)算結(jié)果才為 True。
True or True # ==> True
True or False # ==> True
False or True # ==> True
False or False # ==> False
非運(yùn)算:
把 True 變?yōu)?False茸炒, 或者把 False 變?yōu)?True愕乎。
not True # ==> False
not False # ==> True
在 Python 中把 0
、 空字符串''
和 None
看成是 False壁公,其他數(shù)值和非空字符串都看成是 True感论。
Python解釋器在做布爾運(yùn)算時(shí),只要能提前確定計(jì)算結(jié)果紊册,它就不會往后算了比肄,直接返回結(jié)果; 這涉及到 Python 中 and 和 or 運(yùn)算的一條重要法則短路計(jì)算湿硝。