1,算法是什么?
“算法”不過是“步驟”或者“食譜”的另外一種文縐縐的說法--對(duì)于如何做某事的一份詳細(xì)描述。
2,數(shù)字和表達(dá)式
2.1, ?Python可作為強(qiáng)大的計(jì)算器,默認(rèn)情況下,一個(gè)整數(shù)(無小數(shù)部分的數(shù))被另一個(gè)整數(shù)除,計(jì)算結(jié)果的小數(shù)部分被截除了,只留下整數(shù)部分。
>>> 1/5
0????????????????????? ####沒有小數(shù)部分只有整數(shù)部分,這是怎么回事?!
2.2, ?為解決2.1的問題,希望Python只執(zhí)行普通的除法,有兩個(gè)方案:
· 用實(shí)數(shù)(包含小數(shù)點(diǎn)的數(shù))而不是整數(shù)進(jìn)行運(yùn)算
*實(shí)數(shù)在Python被稱為浮點(diǎn)數(shù),如果參與除法的兩個(gè)數(shù)中有任何一個(gè)為浮點(diǎn)數(shù),那么結(jié)果也是浮點(diǎn)數(shù);如下面三個(gè)例子所示:
>>> 1.0/5.0
0.2
>>> 1.0/5
0.2
>>> 1/5.0
0.2
· 讓Python改變除法的執(zhí)行方式,有兩種情況,分別如下:
①,直接在解釋器里面執(zhí)行它:
from __future__ import division
②,通過命令行(比如在Linux系統(tǒng)上)運(yùn)行Python,可以使用命令開關(guān)
>>>python -Qnew
2.3? 取余(模除)運(yùn)算符 --- x%y 的結(jié)果為x除以y的余數(shù)
>>> 10%3
1
>>> 9%3
0
>>> 2.75%0.5
0.25
>>>
2.4? 冪(乘方)運(yùn)算符
>>> 2**3
8
>>> -3**2
-9
>>> (-3)**2
9
2.5 長(zhǎng)整數(shù)
普通整數(shù)的取值范圍為? 2147483647 < X < -2147483647 ,如果需要更大的數(shù),可以使用長(zhǎng)整數(shù)。長(zhǎng)整數(shù)和普通整數(shù)的書寫方法一樣,只是最后加多了一個(gè)大寫的L。
>>> 1000000000000000000000000000000000
1000000000000000000000000000000000L
長(zhǎng)整數(shù)和普通整數(shù)可以混合使用,可以進(jìn)行運(yùn)算,無需擔(dān)心長(zhǎng)整數(shù)和整數(shù)的區(qū)別,除非需要進(jìn)行類型的檢查。
>>> 471875905791745L * 5789248538984091374L + 24
2731806898186654482206902894907654L
2.6 十六進(jìn)制和八進(jìn)制
書寫如下,首位數(shù)字都是0.
>>> 0xaf
175
>>> 0xAF
175
>>> 010
8
2.7 函數(shù)---Python有很多內(nèi)建函數(shù)
>>> 2**3
8
>>> pow(2,3)?? ---計(jì)算乘方,等同于上面的運(yùn)算
8
>>> abs(-10)? ---得到數(shù)的絕對(duì)值
10
>>> round(1.0/2.0)? ---會(huì)把浮點(diǎn)數(shù)四舍五入為最接近的整數(shù)值
1.0
2.8 模塊
>>> import math?? ---- 導(dǎo)入模塊
>>> math.floor(32.9)? --- 將給定的數(shù)值向下取整為某個(gè)特定的整數(shù)
32.0
>>> math.ceil(32.9) --- 與floor相反,將給定的數(shù)值轉(zhuǎn)換成為大于或等于它的最小整數(shù)
33.0
***如果不想每次調(diào)用函數(shù)的時(shí)候都要寫上模塊的名字,那么,在確保自己不會(huì)導(dǎo)入多個(gè)同名函數(shù)(從不同模塊導(dǎo)入)的情況下,可以使用import命令的另外一種形式:
>>> from math import floor? ----使用這個(gè)方式就不需要模塊名作為前綴了
>>> floor(32.9)
32.0
***事實(shí)上,也可以通過使用變量來引用函數(shù),eg:
>>> apple=math.sqrt
>>> apple(9)? --- 變量apple就可以直接計(jì)算平方根了!
3.0