szymcio10

my_range_yield

Mar 27th, 2020
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.18 KB | None | 0 0
  1. def my_range(*args):
  2.     li = []
  3.     if len(args)>3 or len(args)<1:
  4.         raise ValueError
  5.     if len(args)==1:
  6.         k=1.0
  7.         a=0.0
  8.         while a<=args[0]:
  9.             yield a
  10.             a+=k
  11.     elif len(args)==2:
  12.         k=1.0
  13.         a=args[0]
  14.         while a<=args[1]:
  15.             yield a
  16.             a+=k
  17.     elif len(args)==3:
  18.         a = args[0]
  19.         k = args[2]
  20.         if args[2]==0.0: raise ValueError
  21.         elif args[2]>0:
  22.             while a <= args[1]:
  23.                 yield a
  24.                 a += k
  25.         else:
  26.             while a >= args[1]:
  27.                 yield a
  28.                 a += k
  29. def main():
  30.     try:
  31.         for i in my_range(2):
  32.             print(i)
  33.         for i in my_range(2,3):
  34.             print(i)
  35.         for i in my_range(1.1,2.2,0.5):
  36.             print(i)
  37.         for i in my_range():
  38.             print (i)
  39.  
  40.     except:
  41.         print ("Zla wartosc")
  42.  
  43. if __name__=='__main__':
  44.     main()
  45. try:
  46.     for i in my_range(2):
  47.         print i
  48.     for i in my_range(2,3):
  49.         print i
  50.     for i in my_range(1.1,2.2,0.5):
  51.         print i
  52.     for i in my_range():
  53.         print i
  54.  
  55. except:
  56.     print "Zla wartosc"
Advertisement
Add Comment
Please, Sign In to add comment