1. 程式人生 > >模仿python中的range功能

模仿python中的range功能

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功能