1. 程式人生 > >Python(三)——條件判斷與迴圈,鍵值儲存

Python(三)——條件判斷與迴圈,鍵值儲存

條件判斷
計算機能處理很多自動化任務的原因就是可以做條件判斷
在python中實現輸入年齡,列印不同內容
a=5
if a>=18:
    print('your age is',a)
    print('成人')
else:
    print('your age is:',a)
    print('未成年')    
input的使用,input用來讀取使用者的輸出,預設為str,數值型別需要轉換。
s = input('請輸出您的出生年份:')
birth=int(s)
if birth>=2000:
    print('您是00後')
elif birth>=1995 :
    print('您是95後')
else:
    print('您的年齡是:',birth)
練習
# -*- coding: utf-8 -*-
h1 = input('請輸出您的身高(M):')
w2 = input('請輸出您的體重(KG):')
h=float(h1)
w=float(w2)
bmi=w/(h*h)
if bmi<18.5:
    print('您的體重過輕,您的BMI指數是:',bmi,'%')
elif 18.5<=bmi<25 :
    print('您的體重正常,您的BMI指數是',bmi,'%')
elif 25<=bmi<32:
    print('您的體重肥胖,您的BMI指數是', bmi, '%')
else:
    print('您的體重嚴重肥胖,您的BMI指數是', bmi, '%')
########################################################################################

python的迴圈有兩種,一種是 for...in迴圈,一種把list與tuple中的每個元素迭代出來,例如:

names = ['mars','tom','jurry']
for i in names:
print(i)
執行程式碼,會依次列印list裡的元素
如果要求1-10之和,可以這麼寫:
sum = 0
for i in [1,2,3,4,5,6,7,8,9,10]:
    sum = sum + i
print(sum)
但是如果要求1-100之和,就很麻煩了,python提供了一個方法range()
,可以生成一個整數序列,再通過list()函式可以轉換為list,例如:range(5)生成的序列就是從0開始小於5的整數,即[0,1,2,3,4]
所以,求1-100之和可以寫成
sum = 0
for i in range(101):
    sum = sum + i
print(sum)
第二種迴圈是while迴圈,只要條件滿足,就不斷迴圈,條件不滿足時推出迴圈,例如,計算1-100以內所有奇數之和,使用while迴圈實現
sum = 0
n = 99
while n<0:
    sum = sum + n
    n = n - 2
print(sum)
break,在迴圈中,break可以提前退出迴圈,例如,本來要迴圈列印1-100的數字
n = 0
while n <101:
    print(n)
    n = n+1
print('over')
如果要提前結束迴圈,可以使用break,例如:
n = 0
while n < 101:
    if n > 20:
        break
    print(n)
    n = n + 1
print('over')
continue,跳過本次迴圈,直接開始下次迴圈,例如:列印1-100之間的偶數
n = 0
where n <=100
    if n % 2 !=0
    continue
    print(n)
    n = n + 1
#######################dict與set鍵值對應###########################
dict全程dictionary,在其他語言中也稱為map,使用鍵值儲存,具有極快的查詢速度
例如 :
d = {'michael':100,'xiaoming':80,'xiaohong':66,'xiaohua':59}
查詢某個key對應的value
d['xiaoming']

修改某個key對應的value
d['xiaoming']=99

一個key只能對應一個value,判斷key是否存在的方法
'xiaoying' in d
False
另一種方法就是get
d.get('tom')
d.get('tom',-1)
結果返回none或者自己制定的返回結果-1

要刪除一個key的方法,對應的value也會隨之刪除
d.pop('xiaoming')

和list相比較,dict有以下特點:1,查詢和插入的速度極快,不會隨著key 的增加而變慢,2,佔用大量的記憶體,記憶體浪費多
list有以下特點:1,查詢和插入的時間隨意key值的增加而變得緩慢,2,佔用空間記憶體小


set與dict類似,也是一種key的集合,但是不儲存value,而且key不會重複。
要建立一個set,需要一個list作為輸入集合:
s = set([1,2,3])
傳入的引數是[1,2,3]是一個list,而顯示的是{1,2,3}告訴你這個set內部有三個元素,set無序。
重複的元素在set中自動會被過濾,通過add()函式可以新增元素到set中,重複新增沒有效果。
使用remove()方法可以刪除元素,set可以看成是數學上無序和無重複的元素稽核,兩個set可以看成數學意義上的交集,並集。
s1=set([1,2,3])
s2=set([2,3,4])
s1 & s2
輸出:{2,3}
s1 | s2
輸出:{1,2,3,4}