條件判斷
if <條件判斷1>:
<執(zhí)行1>
elif <條件判斷2>:
<執(zhí)行2>
elif <條件判斷3>:
<執(zhí)行3>
else:
<執(zhí)行4>
小明身高1.75指孤,體重80.5kg与帆。請(qǐng)根據(jù)BMI公式(體重除以身高的平方)幫小明計(jì)算他的BMI指數(shù),并根據(jù)BMI指數(shù):
低于18.5:過(guò)輕
18.5-25:正常
weigth = 80.5
height = 1.75
bmi = weigth / (height * height)
if bmi < 18.5 :
print('體重過(guò)輕了!')
elif bmi < 25 and bmi > 18.5 :
print('正常')
else:
print('超重啦')
循環(huán)
循環(huán)分為兩種,類似于oc
種forin
和for
計(jì)算0-100的和
- 1.
for
sum = 0
for x in range(101): #range(101)就可以生成0-100的整數(shù)序列
sum = sum + x
print(sum)
# 5050
- 2.
forin
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
輸出結(jié)果
Michael
Bob
Tracy
字典
字典與
OC
字典用法大致差不多
創(chuàng)建一個(gè)字典
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
查詢一個(gè)字典是否包含某個(gè)key
'tomail' in d
返回值
false
從字典里取某個(gè)key,如果key存在返回對(duì)應(yīng)的value,如果不存在就會(huì)報(bào)錯(cuò).可以使用get方法,取值,如果不存在返回none或者自己設(shè)定的元素
d.get('tomail')
返回值:
none
d.get('tomail',-1)
返回值:
-1
刪除某個(gè)key,其對(duì)應(yīng)的value也會(huì)刪除
d.pop('Bob')
print(d)
{'Michael': 95, 'Tracy': 85}
dict內(nèi)部存放的順序和key放入的順序是沒(méi)有關(guān)系的是辕。key是不可變的
和list比較私蕾,dict有以下幾個(gè)特點(diǎn):
查找和插入的速度極快,不會(huì)隨著key的增加而變慢摄闸;
需要占用大量的內(nèi)存善镰,內(nèi)存浪費(fèi)多苹享。
而list相反:
查找和插入的時(shí)間隨著元素的增加而增加博其;
占用空間小,浪費(fèi)內(nèi)存很少揉抵。
Set
set和dict類似熏兄,也是一組key的集合品洛,但不存儲(chǔ)value树姨。由于key不能重復(fù),所以桥状,在set中帽揪,沒(méi)有重復(fù)的key。
要?jiǎng)?chuàng)建一個(gè)set辅斟,需要提供一個(gè)list作為輸入集合:
創(chuàng)建一個(gè)set
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
傳入的參數(shù)[1, 2, 3]
是一個(gè)list转晰,而顯示的{1, 2, 3}
只是告訴你這個(gè)set內(nèi)部有1,2士飒,3這3個(gè)元素查邢,顯示的順序也不表示set是有序的。酵幕。
重復(fù)元素在set中自動(dòng)被過(guò)濾:
>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}
通過(guò)add(key)方法可以添加元素到set中扰藕,可以重復(fù)添加,但不會(huì)有效果
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
通過(guò)remove(key)
方法可以刪除元素:
>>> s.remove(4)
>>> s
{1, 2, 3}
set可以看成數(shù)學(xué)意義上的無(wú)序和無(wú)重復(fù)元素的集合芳撒,因此邓深,兩個(gè)set可以做數(shù)學(xué)意義上的交集、并集等操作:
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}
set和dict的唯一區(qū)別僅在于沒(méi)有存儲(chǔ)對(duì)應(yīng)的value笔刹,但是芥备,set的原理和dict一樣,所以舌菜,同樣不可以放入可變對(duì)象门躯,因?yàn)闊o(wú)法判斷兩個(gè)可變對(duì)象是否相等,也就無(wú)法保證set內(nèi)部“不會(huì)有重復(fù)元素”