2.1 計算機(jī)會算數(shù)
1.數(shù)值運(yùn)算
除了簡單的加減乘除以及他們的復(fù)合運(yùn)算以外,字符串也能加法運(yùn)算:
"lammmya say:"+"hello world!"#連接起來就是"lammmya say: hello world!"
其效果就是把字符串連接起來。
字符串也可以進(jìn)行乘法運(yùn)算:
“l(fā)ammmya"*#結(jié)果為”lammmyalammmya"
2.邏輯運(yùn)算
布爾值(Boolean)
在python中我們用True和False兩個關(guān)鍵字來表示真假,這樣的數(shù)據(jù)被稱為布爾值。
True and Ture #結(jié)果為True
False and True #結(jié)果為False
False and False #結(jié)果為False
用and來連接兩個命題,需要兩個命題都為真,整體命題才為真,若其中一個為假,則整體就為假。而另一種是用or連接:
True or False #結(jié)果為True
False or False #結(jié)果為False
整體命題中,只要其中之一是正確的,即命題一或命題二是正確的,則整體命題為真。另外not True即與True相反,結(jié)果為False。
3.判斷表達(dá)式
判斷運(yùn)算符:==,等于;!=,不等于;<,小于;>,大于;<=,小于或等于;>=,大于或等于。
4.運(yùn)算優(yōu)先級
運(yùn)算符按照優(yōu)先級先后歸為:乘方:**;乘除:*,%;加減:+,-;判斷(如前);邏輯:!, and, or。如果是優(yōu)先級相同,從左往右進(jìn)行運(yùn)算。而括號會打破優(yōu)先級。
2.2計算機(jī)記性好
1.變量
數(shù)據(jù)賦給變量,再通過變量提取數(shù)據(jù)。
v="lammmya"
print(v)
此過程稱為賦值。
lammmya=20
lammmya=lammmya+5
print(lammmya)#打印出了25
這段代碼中計算機(jī)會先計算等號右邊的運(yùn)算,即原變量+5再賦值給了同一個變量。
2.變量的類型
lammmya=10
print(type(lammmya))
輸出的結(jié)果是:<class 'int'>
我們可以通過type() 這一函數(shù)來查看變量的類型。
常見變量的類型包括:int,整數(shù);Float,浮點數(shù)(即帶有小數(shù)點的數(shù));String(str),字符串;bool,布爾值。為了記錄一個布爾值,我們只需讓1代表真值,0代表假值,布爾值這樣就只需1位來進(jìn)行儲存。
3.序列
序列,有兩種,一種是元組(tuple)而另一種是列表(list)。兩者區(qū)別在于,一旦建立,元組的各個元素不可再變更,為列表元素可變更。因此,元組有固定的數(shù)據(jù),也稱為“定值表”。
tuple=(2,1.3,"lam",False)
list=[True,5,1.2,"lam"]
type(tuple)#結(jié)果為'tuple'
type(list) #結(jié)果為'list'
序列元素位置索引稱為下標(biāo),從0開始:
tuple[0] #結(jié)果為2
list[3] #結(jié)果為'lam'
嵌套列表中的位置索引:
nest_list=[1,[3,4,5]]
nest_list[1][2]#結(jié)果為5
改變元素賦值:
list[1]=3.0#list列表中第二個元素變?yōu)?.0
范圍引用:序列名[下限,上限,步長],從下標(biāo)的多少至多少,每隔多少個元素引用一個。
(-1,倒數(shù)第一個)
4.詞典
詞典包含多個元素每個元素以逗號分隔。其元素包含兩部分,鍵(key)和值(Value)。鍵是數(shù)據(jù)的索引,值是數(shù)據(jù)本身。
dict={"tom":11,"sam":12,"lily":100}
在詞典中修改或增添一個值:
dict["tom"]=30
dict["paul"]=99
2.3 計算機(jī)懂選擇
1.if結(jié)構(gòu)
total=980000
if total>500000:#條件
? ? print(total)#條件成立時執(zhí)行的任務(wù)
? ? rate=0.01
else:#不符合條件(非必須)
? ? print("500000")
? ? rate=0.02
print(rate)
2.小弟靠后站
也即縮進(jìn),通過縮進(jìn),python識別出縮進(jìn)下的語句是否屬于縮進(jìn)上的語句,不同的縮進(jìn)產(chǎn)生的效果完全不同。
3.if的嵌套與elif
i=1
if i>0:#先檢測if的條件,if若為假,則跳過隸屬于if的程序塊,檢測elif的條件
? ? print("postive i")
? ? i=i+1
elif i==0:#若elif的條件還是假,則執(zhí)行else塊
? ? print("i is 0")
? ? i=i*10
else:#程序根據(jù)條件,只執(zhí)行三個分支中的一個
? ? print("negative i")
? ? i=i-1
我們還可以然一個if結(jié)構(gòu)嵌套在另一個if結(jié)構(gòu)中:
i=5
if i>1:#條件成立程序依次執(zhí)行
? ? print("i bigger than 1")
if i>2:#遇到第二個if結(jié)構(gòu),繼續(xù)根據(jù)條件判斷是否執(zhí)行
? ? print("i bigger than 2")
2.4 計算機(jī)能循環(huán)
1.for循環(huán)
for a in [3.1,4,"lam"]:#列表元素依次取出賦值給a,依次循環(huán)
? ? print(a)
for I in range(5):#簡單地重復(fù)特定次數(shù),i為每次循環(huán)起到了計數(shù)的作用
? ? print("lam")?
for k in range(5):#可知此計數(shù)也是從0開始的,0,1,2,3,4,五次
? ? print(k, "lam")
2.while循環(huán)
如果說for循環(huán),重復(fù)次數(shù)是確定的,那么如果條件為真,while循環(huán)則會不停地循環(huán)執(zhí)行力屬于他的語句,只有條件為假時,程序才會停止。
I =0
while I<10:
? ? print(I)
? ? I=I+1
3.跳過或終止
continue#跳過循環(huán)的這一次執(zhí)行,進(jìn)行下一次循環(huán)的操作
break#停止執(zhí)行整個循環(huán)
小練習(xí)
P=500000
i=0
list=[0.01,0.02,0.03,0.035]
pay=30000
while P>0:
? ? i=i+1
? ? print("第",i,"年要還",P,"元")
? ? if i<=4:
? ? ? ?? rate=list[i-1]
? ? else:
? ? ? ?? rate=0.05
? ?? P=P*(rate+1)-pay
print("第",i+1,"年將錢還清")#結(jié)果為31年