第二章 先做鍵盤俠

先做鍵盤俠

2.1 計算機(jī)會算術(shù)

1.數(shù)值運(yùn)算

話不多說篙耗,直接上代碼解釋:

1+9             #加法迫筑。結(jié)果為10
1.3-5           #減法宪赶。結(jié)果為-3.7
3*7             #乘法。結(jié)果為21
7.5/1.5         #除法脯燃。結(jié)果為5.0
2**3            #乘方搂妻。結(jié)果為8
14%3            #取余。結(jié)果為2

那么辕棚,我們?nèi)绻鉀Q一些實際的算術(shù)問題時欲主,不可能只單用一種運(yùn)算符。例如:存入超級銀行10000元逝嚎,年利率為10%扁瓢,進(jìn)行復(fù)利計算,兩年后本息和為多少补君?
假定利率不變涤妒,那么十年后取出本息和進(jìn)行投資,每月投資5000元赚哗,不足5000時將剩余的錢存入銀行,問可以連續(xù)投資幾個月硅堆,剩余的錢有多少屿储?

10000*(1+0.1)**2+10000   #結(jié)果為22100.0,本息和為2萬2千1百元
(10000*(1+0.1)**10+10000)%5000   #結(jié)果為937.4246010000206,剩余約937.425元
((10000*(1+0.1)**10+10000)-(10000*(1+0.1)**10+10000)%5000)/5000    #結(jié)果為7.0渐逃,即可以連續(xù)投資7個月

除了常見的數(shù)值運(yùn)算以外够掠,字符串也可以進(jìn)行加法運(yùn)算,它會起到連接的作用:

"I like Python"+",but just like it"   #連接成"I like Python,but just like it"

那么一個字符串與一個整數(shù)進(jìn)行乘法運(yùn)算(對字符串的重復(fù)):

"HHH "*2     #結(jié)果為"HHH HHH "
2.數(shù)值運(yùn)算

在Python中我們使用TrueFalse兩個關(guān)鍵詞表示真假茄菊,它們被稱為布爾型疯潭。那么Python的邏輯運(yùn)算有如下:

“與”運(yùn)算
True and True    #結(jié)果為True
False and True   #結(jié)果為False
False and False  #結(jié)果為False
"或"運(yùn)算
True or True     #結(jié)果為True
True or False    #結(jié)果為True
False or False   #結(jié)果為False
“非”運(yùn)算
not True    #結(jié)果為False

簡單記憶:一假與假,一真或真

3.判斷表達(dá)式

用數(shù)學(xué)形式寫出來的命題面殖,Python代碼如下:

1.0 == 1.0   #結(jié)果為True,==,等于
2.0 != 2     #結(jié)果為False,!=,不等于
5 < 3        #結(jié)果為False,<,小于
5 <= 2       #結(jié)果為False,<=,小于等于
5 > 3        #結(jié)果為True,>,大于
6 >= 4       #結(jié)果為True,>=,大于等于

利用上面超級銀行的例子竖哩,若十年后拿出去投資的錢可確定獲得60%本金的利潤,現(xiàn)在我想要將來得到50000元脊僚,那么現(xiàn)在有兩個選擇相叁,一個是10年后進(jìn)行投資,一個是15年后取出本息辽幌,那么問這兩個選擇都可以實現(xiàn)我的愿望嗎增淹?

10000*(1+0.1)**15+10000 >= 50000 and ((10000*(1+0.1)**10+10000)-(10000*(1+0.1)**10+10000)%5000)*(1+0.6) >=50000

結(jié)果是True,當(dāng)然可以乌企,畢竟是超級銀行虑润!

4.運(yùn)算優(yōu)先級

運(yùn)算有先后,先乘除后加減加酵,判斷再邏輯拳喻,括號要先行:


括號:()
乘方:**
乘除:* /
加減:+ -
判斷:== > >= < <=
邏輯:哭当! and or


關(guān)于其他
關(guān)于Python的運(yùn)算符,還有位運(yùn)算符舞蔽、成員運(yùn)算符荣病、身份運(yùn)算符,但是不那么常用渗柿,我便簡單列一下个盆,了解一下:
位運(yùn)算符:
"& " :按位與運(yùn)算
" | " :按位或運(yùn)算
" ^ " :按位異或運(yùn)算
"~" :按位取反運(yùn)算
"<<" :左移動運(yùn)算符
">>" :右移動運(yùn)算符

成員運(yùn)算符:
in 如果在指定的序列中找到值返回True,否則返回 False
not in 如果在指定的序列中沒有找到值返回True,否則返回False

身份運(yùn)算符:
is 判斷兩個標(biāo)識符是不是引用自一個對象
is not 判斷兩個標(biāo)識符是不是引用自不同對象


2.2 計算機(jī)記性好

1. 賦值

用變量的方式進(jìn)行數(shù)據(jù)的存儲朵栖,以便在后面重復(fù)使用颊亮,使得數(shù)據(jù)保留而不會消失,這是一場變量革命陨溅。而實現(xiàn)的這一過程被稱為賦值终惑。還是用代碼解釋吧!

yourmoney = 10000
mymoney = yourmoney*(1+0.5)
print(mymoney)          #打印結(jié)果是15000.0

以上說明了门扇,你有10000元雹有,我的錢是你把本金交給我,還得給我50%本金的利息臼寄。如果你有更多或更少的錢霸奕,就可以修改10000這個數(shù)值或者進(jìn)行加減,以達(dá)到要求和目的吉拳。

2.變量的類型

前面有涉及到的整形质帅、浮點(diǎn)型、布爾型留攒、字符串都是數(shù)據(jù)類型煤惩,我們可以把各種類型的數(shù)據(jù)賦予同一變量:

s = 5
print(s)                   #s存儲的內(nèi)容為整數(shù)5
s = "i love Python"        
print(s)                   #s存儲的內(nèi)容從整形變?yōu)樽址?s = 10.0
print(s)                   #然后變成浮點(diǎn)型
s = 1 > 2 
print(s)                   #最后變成布爾型

Python能自由改變變量類型的特征被稱為動態(tài)類型
不能改變變量類型的特征被稱為靜態(tài)類型炼邀。

3.序列

序列和詞典同屬容器型變量魄揉。序列包含的一個數(shù)據(jù)被稱為元素。序列又可以分為元組(Tuple)列表(List)汤善,它們的區(qū)別主要是:元組建立之后各個元素不可再變更什猖,而列表可變。創(chuàng)建元組和列表的方式如下:

tuple = (1,2.0,'python',233,False)   #一個元組
list = [False,4,'yeah',2.0]          #一個列表
type(tuple)               #結(jié)果為'tuple'
type(list)                #結(jié)果為'list'

由上可知红淡,序列中是可以包含不同類型的元素的不狮,所以嵌套(套娃)是可以實現(xiàn)的:

list1 = [1,[2,3,4,[5,6,7]]]    #列表中嵌套另一個列表,另一個列表嵌套另一個列表

因為元組不能變在旱,所以一般不創(chuàng)建空元組摇零,而經(jīng)常創(chuàng)建空列表,一般用來準(zhǔn)備儲存一些數(shù)據(jù)桶蝎,相當(dāng)于準(zhǔn)備一個袋子:

empty_list = []     #創(chuàng)建空表

關(guān)于如何讀取序列驻仅,當(dāng)然是使用下標(biāo)(index)來讀取“袋子”里的元素了:

tuple[0]          #結(jié)果為1
list[2]           #結(jié)果為‘yeah’
list1[1][3][0]    #結(jié)果為5

對于列表谅畅,可以對其中的元素進(jìn)行賦值改變,而元組上面說了不可以變噪服,所以不能進(jìn)行以下操作毡泻。

list[1] = 2.0   
list                #列表第二個元素從整型4變浮點(diǎn)型2.0了

對于單個元素的查找,是上面的操作粘优,而多元素呢仇味?多元素的尋找可以遵循以下基本樣式:


序列名[下限:上限:步長]


下限就是下標(biāo)起始,上限就是下標(biāo)結(jié)尾雹顺,步長就是按多少間隔來找元素丹墨。引用的多個元素會自成一個新的序列

tuple[:5]              #從下標(biāo)0到下標(biāo)4的所有元素
tuple[2:]              #從下標(biāo)2到最后一個元素
tuple[0:5:2]           #下標(biāo)為0,2嬉愧,4的元素
m=tuple[2:0:-1]        #從下標(biāo)2到下標(biāo)1
type(m)                #范圍引用的結(jié)果還是一個元組

表的范圍引用效果完全與上相同(范圍引用的上限元素是不包括在結(jié)果內(nèi)的)

尾部引用語法贩挣,用于序列尾部的元素:

tuple[-1]          #序列最后一個元素
tuple[-3]          #序列倒數(shù)第三個元素
tuple[1:-1]        #序列的第二個到倒數(shù)第二個元素

序列的好處是可以有序地儲存一組數(shù)據(jù)。一些數(shù)據(jù)本身具有有序性没酣,就可以儲存在序列中王财。

4.詞典

創(chuàng)建詞典:

dict = {"Attack":100,"Defense":59,"Health":250}
type(dict)

詞典由鍵值對組成,詞典的對應(yīng)鍵的值(value)可以通過鍵(key)來引用:

dict["Attack"]    #結(jié)果為100

詞典的修改增添

dict["Attack"] = 88
dict["magic"] = 99
dict       # 結(jié)果為{"Attack":88,"Defense":59,"Health":250,"magic":99}

構(gòu)建空詞典

dict={}
dict     #結(jié)果為{}

詞典與序列不同裕便,它不具備連續(xù)有序性搪搏,適用于存儲結(jié)構(gòu)松散的一組數(shù)據(jù)。

2.3 計算機(jī)懂選擇

1.if結(jié)構(gòu)

假如到超級銀行存錢闪金,若存的本金超過5000就按10%的年利率結(jié)算利息,否則就按5%的年利率進(jìn)行結(jié)算论颅。那么哎垦,直接上代碼:

money = 5001
if money > 5000:
   annual_rate = 0.1
else:
   annual_rate = 0.05
print(annual_rate)               #輸出0.1

當(dāng)然,if和else后面也可跟多行代碼恃疯,在此便不進(jìn)行贅述了漏设。
else也并非必需的,無else即是else為空今妄,if后的條件若不成立郑口,就什么也不做。

2.縮進(jìn)

冒號的強(qiáng)制縮進(jìn)其實說明了代碼塊的歸屬權(quán)盾鳞,與C語言中的大括號是一樣的效果犬性,例如:

if i > 0:
    x=1
    y=2

即說明這x=1和y=2是屬于if的,如果if后條件成立腾仅,就執(zhí)行這個程序塊乒裆。

如果是這樣:

if i > 0:
    x=1
y=2

那么,無論如何y=2都會被執(zhí)行推励,而x=1只有在if后條件成立之后才能執(zhí)行鹤耍。

3.if的嵌套與elif

其實elif可以視作else if肉迫,顧名思義就是另外的如果,畢竟一個if只能容納一個條件稿黄,多個elif就是為了容納更多的條件喊衫,形成多個分支,構(gòu)成不同的輸出結(jié)果杆怕。示例代碼:

i=1
if i > 0:                       #因為i=1族购,則執(zhí)行這部分代碼
    print("hhhhhh")
    i = i+1
elif i == 0:                    #不執(zhí)行
    print("i is 0")
    i = i*10
else:                           #不執(zhí)行
    print("hiahiahia")
    i = i-1

嵌套:

i=5
if i > 1:                 #條件成立,執(zhí)行內(nèi)部代碼
    print("hahahahahaha")
    if i > 2:             #條件也成立财著,也執(zhí)行其內(nèi)部代碼
        print("hhhhhh")

if的嵌套联四,先對最外面的if進(jìn)行判斷,條件成立后執(zhí)行附屬的內(nèi)部代碼撑教,其中就包括了嵌套的if朝墩,于是對它后面的條件再行判斷,然后......(就是可以無限套娃了伟姐!)

2.4 計算機(jī)能循環(huán)

1.for循環(huán)

循環(huán)用于重復(fù)執(zhí)行一些程序塊收苏。
for循環(huán)有如下示例:

for i in [3,4,5.0,"python"]
print(i)         #依次打印列表里的各個元素

對上面代碼進(jìn)行總結(jié)歸納出for的一個基本用法:


for 變量 in 序列:
????statement


序列中有多少個元素,就重復(fù)多少次愤兵。如果只是想重復(fù)次數(shù)鹿霸,而不想創(chuàng)建序列,就如下:

for i in range(6):
    print("Hello python!")   #打印六次"Hello python!"

for后面跟的變量i是起到計數(shù)功能的:

for i in range(6):
    print(i,"Hello python!")   #打印序號和"Hello python!"

用for循環(huán)來做一個實用例子秆乳,假如在超級銀行存了10000元懦鼠,存10年,每年利率為固定10%屹堰,那么每年的本息和有多少肛冶?用for循環(huán)進(jìn)行計算:

money = 10000
for i in range(11):
    interest = money*(1+0.1)**i
    print("第",i,"年的利息:",interest)
2.while循環(huán)

while是另外一種循環(huán)結(jié)構(gòu),其用法如下:

i = 0
while i < 10:
    print(i)
    i += 1      #從0打印到9

while的結(jié)構(gòu)其實和if相似扯键,同樣后面跟著條件睦袖,但這個條件不是一次性的,而是循環(huán)使用的荣刑,直到條件不成立才會跳出整個循環(huán)馅笙。

無限循環(huán)

while True:
    print("Hello World!")

循環(huán)實現(xiàn)了相同代碼的重復(fù)執(zhí)行

3.跳過或終止

continue????#跳過當(dāng)前的循環(huán),進(jìn)入下一循環(huán)
break????#跳出整個循環(huán)


進(jìn)行綜合性應(yīng)用來說明吧!

for i in range(10):
    if i == 2:
        continue
    print(i)      #打印0厉亏、1董习、3、4爱只、5阱飘、6、7、8沥匈、9蔗喂,跳過了2

for i in range(10):
    if i == 2:
        break
    print(i)    #只打印0和1
    

練習(xí)

最后,做一個綜合性的練習(xí)來重溫一下:
假設(shè)可以全額貸款買房高帖,房子總價120萬缰儿,為吸引購房者,房貸前7年利率有折扣散址,分為為1%乖阵、1.5%、2%预麸、3%瞪浸、3.5%、4%吏祸、4.2%对蒲,其余年份的房貸年利率皆為5%,若我逐年還款贡翘,每次最多還5萬元蹈矮,那么還清需要幾年?

以下代碼作為參考:

i       = 0
total = 1200000.0
repay = 50000.0
tuple = (0.01,0.015,0.02,0.03,0.035,0.04,0.042)

while total > 0:
    i = i + 1
    print("我太難了!今年是第",i,"年還是要還款的C泛鸟!")
    if i <= 7:
        interest = tuple[i - 1]
    else:
        interest = 0.05
        total = total*(interest + 1) - repay
        break
print("yeah!第",i + 1,"年,終于還完了踊东!哈哈哈哈哈1崩摹!")

恭喜你第9年就還完了U⒊帷碑韵!(你其實還在做夢)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市缎脾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌占卧,老刑警劉巖遗菠,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異华蜒,居然都是意外死亡辙纬,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門叭喜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贺拣,“玉大人,你說我怎么就攤上這事∑┪校” “怎么了闪幽?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長涡匀。 經(jīng)常有香客問我盯腌,道長,這世上最難降的妖魔是什么陨瘩? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任腕够,我火速辦了婚禮,結(jié)果婚禮上舌劳,老公的妹妹穿的比我還像新娘帚湘。我一直安慰自己,他們只是感情好甚淡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布大诸。 她就那樣靜靜地躺著,像睡著了一般材诽。 火紅的嫁衣襯著肌膚如雪底挫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天脸侥,我揣著相機(jī)與錄音建邓,去河邊找鬼。 笑死睁枕,一個胖子當(dāng)著我的面吹牛官边,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播外遇,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼注簿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了跳仿?” 一聲冷哼從身側(cè)響起诡渴,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎菲语,沒想到半個月后妄辩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡山上,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年眼耀,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片佩憾。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡哮伟,死狀恐怖干花,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情楞黄,我是刑警寧澤熊锭,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布幸撕,位于F島的核電站蒸眠,受9級特大地震影響前翎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜桑阶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一柏副、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蚣录,春花似錦割择、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至虐杯,卻和暖如春玛歌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背擎椰。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工支子, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人达舒。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓值朋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親巩搏。 傳聞我的和親對象是個殘疾皇子昨登,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 2.1 計算機(jī)會算術(shù) 2.1.1 數(shù)值運(yùn)算 運(yùn)算符:在需要進(jìn)行運(yùn)算的兩個數(shù)值之間使用。加法:+減法 :-乘法:*除...
    SibyLtuI閱讀 91評論 0 0
  • 2.1 計算機(jī)會算數(shù) 1.數(shù)值運(yùn)算 除了簡單的加減乘除以及他們的復(fù)合運(yùn)算以外贯底,字符串也能加法運(yùn)算: "lammmy...
    lammmya閱讀 167評論 0 0
  • 2.1 計算機(jī)會算術(shù) 1.數(shù)值運(yùn)算 加 + 減 - 乘 * 除 / 求余數(shù) % 字符串也能進(jìn)行運(yùn)算:(加法)"Va...
    XavieR_ZzQ閱讀 166評論 0 0
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,381評論 0 5
  • 小柚子姐姐丰辣,你比蘆葦姐姐和兮兮更活潑幽默,你們在一起相互配合相得益彰禽捆。這學(xué)期里我們見到你的次數(shù)不如上學(xué)期多笙什,這讓我...
    外聯(lián)一家人閱讀 182評論 0 0