模仿python中的range功能
阿新 • • 發佈:2018-08-22
else xrange sta 一個bug 第一個 start 問題 函數 div
主要是利用生成器來寫的一個函數:
def myxrange(start, stop = 0, step = 1): if stop == 0 and step == 1: #只輸入一個形參時 stop = start start = 0 while start < stop: yield start start +=1 elif step == 1: #輸入兩個形參時 while start < stop:yield start start += 1 else: #輸入三個形參時 if stop < start and step < 0: while start > stop: yield start start += step elif stop >= start and step > 0:while start < stop: yield start start += step else: print("不合法") print(sum(x**2 for x in myxrange(1, 10) if x % 2 != 0 )) #這裏是利用了叠代器推導式直接求和
輸出結果:165
只不過還有一個bug,就是當輸入兩個形參時,第一個形參小於第二個形參且第二個形參為0,其它的都沒有問題了。
模仿python中的range功能