注意點:
assert 3 > 7
# assertionerror
while 布林表示式:
**塊else:
**塊
當while迴圈正常執行完的情況下,執行else輸出,如果while迴圈中執行了跳出迴圈的語句,比如 break,將不執行else**塊的內容。
for迴圈是迭代迴圈,在python中相當於乙個通用的序列迭代器,可以遍歷任何有序序列,如str、list、tuple等,也可以遍歷任何可迭代物件,如dict。
每次迴圈,迭代變數被設定為可迭代物件的當前元素,提供給**塊使用。
遍歷dict的例子:
dic =
for key, value in dic.items():
print(key, value, sep=':', end=' ')
# a:1 b:2 c:3 d:4
dic =
for key in dic.keys():
print(key, end=' ')
# a b c d
dic =
for value in dic.values():
print(value, end=' ')
# 1 2 3 4
注:遍歷鍵就用dic.keys()
,遍歷值就用dic.values()
,遍歷鍵和值就用dic.items()
是否執行else迴圈的規則和while-else的規則相同,當for迴圈正常執行完的情況下,執行else輸出,如果for迴圈中執行了跳出迴圈的語句,比如 break,將不執行else**塊的內容,與while - else語句一樣。
range([start,] stop[, step=1])
enumerate(sequence, [start=0])
seasons = ['spring', 'summer', 'fall', 'winter']
lst = list(enumerate(seasons))
print(lst)
# [(0, 'spring'), (1, 'summer'), (2, 'fall'), (3, 'winter')]
#返回元組陣列
lst = list(enumerate(seasons, start=1)) # 下標從 1 開始
print(lst)
# [(1, 'spring'), (2, 'summer'), (3, 'fall'), (4, 'winter')]
for i, a in enumerate(a)
do something with a
#i,a的變數名不影響,前面的代表索引值也就是元組的第0個元素,後面的代表元組的第1個元素
break語句跳出最內層迴圈,注意,不跳出條件語句。
continue同理,終止最內層本輪迴圈,不跳出條件語句。
pass 語句的意思是「不做任何事」,如果你在需要有語句的地方不寫任何語句,那麼直譯器會提示出錯,而 pass 語句就是用來解決這些問題的。
pass是空語句,不做任何操作,只起到佔位的作用,其作用是為了保持程式結構的完整性。儘管pass語句不做任何操作,但如果暫時不確定要在乙個位置放上什麼樣的**,可以先放置乙個pass語句,讓**可以正常執行。
eg:
def a_func():
# syntaxerror: unexpected eof while parsing
def a_func():
pass
[ expr for value in collection [if condition] ]#if語句可有可無
eg:
x = [i for i in range(100) if (i % 2) != 0 and (i % 3) == 0]
print(x)
# [3, 9, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 87, 93, 99]
a = [(i, j) for i in range(0, 3) for j in range(0, 3)]
print(a)
# [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
#返回的陣列中(0, 0), (0, 1), (0, 2)是前三個,說明在前面的for確實為外層迴圈
規則同陣列推導式
eg:
b =
print(b)
#
規則同陣列推導式,但是會捨去重複的元素
eg:
c =
print(c)
#
d = 'i for i in "i love lsgogroup"'
print(d)
# i for i in "i love lsgogroup"
編寫乙個python程式來查詢那些既可以被7整除又可以被5整除的數字,介於1500和2700之間。
for i in range(1500,2701):
if not i % 7 and not i % 5:
print(i)
龜兔賽跑遊戲
題目描述:
話說這個世界上有各種各樣的兔子和烏龜,但是研究發現,所有的兔子和烏龜都有乙個共同的特點——喜歡賽跑。於是世界上各個角落都不斷在發生著烏龜和兔子的比賽,小華對此很感興趣,於是決定研究不同兔 子和烏龜的賽跑。他發現,兔子雖然跑比烏龜快,但它們有眾所周知的毛病——驕傲且懶惰,於是在與烏龜的比賽中,一旦任一秒結束後兔子發現自己領先t公尺或以 上,它們就會停下來休息s秒。對於不同的兔子,t,s的數值是不同的,但是所有的烏龜卻是一致——它們不到終點決不停止。
然而有些比賽相當漫長,全程**會耗費大量時間,而小華發現只要在每場比賽開始後記錄下兔子和烏龜的資料——兔子的速度v1(表示每秒兔子能跑v1 公尺),烏龜的速度v2,以及兔子對應的t,s值,以及賽道的長度l——就能**出比賽的結果。但是小華很懶,不想通過手工計算推測出比賽的結果,於是他找 到了你——清華大學計算機系的高才生——請求幫助,請你寫乙個程式,對於輸入的一場比賽的資料v1,v2,t,s,l,**該場比賽的結果。
輸入:輸入只有一行,包含用空格隔開的五個正整數v1,v2,t,s,l,其中(v1,v2< =100;t< =300;s< =10;l< =10000且為v1,v2的公倍數)
輸出:輸出包含兩行,第一行輸出比賽結果——乙個大寫字母「t」或「r」或「d」,分別表示烏龜獲勝,兔子獲勝,或者兩者同時到達終點。
第二行輸出乙個正整數,表示獲勝者(或者雙方同時)到達終點所耗費的時間(秒數)。
string_input = input('請輸入v1,v2,t,s,l:')
v1,v2,t,s,l = (int(x) for x in string_input.split(' '))
time_turtle = l / v2
time_all = 0
length_rabbit = 0
length_turtle = 0
while length_turtle < l or length_rabbit < l:
length_rabbit += (t-(length_rabbit - length_turtle))/(v1-v2) * v1
time_all += (t-(length_rabbit - length_turtle))/(v1-v2) + s
length_turtle = time_all * v2
time_rabbit = time_all - s - (length_rabbit -l) /v1
if length_turtle >=l and length_rabbit = l and length_rabbit < 1:
print('r')
print('%d'%time_rabbit)
else:
if time_turtle < time_rabbit:
print('t')
print('%d'%time_turtle)
elif time_turtle > time_rabbit:
print('r')
print('%d'%time_rabbit)
else:
print('d')
print('%d'%time_turtle)
02條件篩選
使用者有可能會根據分類搜尋 品牌搜尋,還有可能根據規格搜尋,以及 搜尋和排序操作。根據分類和品牌搜尋的時候,可以直接根據指定域搜尋,而規格搜尋的域資料是不確定的,是乙個區間搜尋,所以我們可以分為三段實現,先實現分類 品牌搜素,再實現規格搜尋,然後實現 區間搜尋。2.1.1需求分析 頁面每次向後台傳入...
02 條件語句
if 條件 條件成立後的 else 條件不成立後的 示例1print 開始 if 5 5 print 123 else print 456 print 結束 示例2num 19 if num 10 print num變數對應值大於10 else print num變數對應值不大於10 示例3 use...
學習進度條02
學習進度條 第二週星期一 星期二星期三 星期四星期五 星期六所花時間 8 00 9 50 上課時間 14 30 15 30 查閱資料 15 30 16 52討論四則運算2的設計思路 19 00 21 00 編寫程式的大致框架 19 00 20 00 編寫程式的詳細內容 8 00 9 40 修改程式的...