Δημοσιεύτηκε: 14 Ιούλ 2009, 22:07
@malos: Επίσης μόλις διάβασα οτι αυτό που ήθελες να κάνεις αρχικά είναι να φτιάξεις το δικό σου αντίστοιχο της range(x), αλλά να ξεκινά από ένα δικό σου αριθμό και να αυξάνει με βήμα που καθορίζεις εσύ μέχρι να φτάσει ένα άνω(ή κάτω) όριο. Αυτό μπορείς να το κάνεις εύκολα με μία συνάρτηση που επιστρέφει μία λίστα. Για την κατασκευή της λίστας κάνεις μία επαναληπτική διαδικασία και κάθε φορά προσθέτεις ένα στοιχείο στη λίστα μέχρι να φτάσεις το όριο:
Edit: Προστέθηκαν μερικά σχόλια στον κώδικα
- Κώδικας: Επιλογή όλων
#!/usr/bin/env python3
def myrange(start, end, step): #start=αρχή, end=τέλος, step=βήμα
result = []
if(step>0): #το βήμα είναι θετικό άρα έχουμε άνω όριο
current = start # η μεταβλητή current κρατά την τρέχουσα τιμή και κάθε φορά αυξάνεται κατά το βήμα - στην αρχή παίρνει την πρώτη τιμή
while(current<end): #ελέγχουμε αν ξεπεράσαμε το άνω όριο
result.append(current) # προσθέτουμε στη λίστα την τρέχουσα τιμή
current = current + step # αυξάνουμε την τρέχουσα τιμή
elif(step<0): #το βήμα είναι αρμητικό άρα έχουμε κάτω όριο
current = start
while(current>end):
result.append(current)
current = current + step #Το βήμα είναι αρνητικό οπότε προσθέτοντάς το μειώνεται η τρέχουσα τιμή
return result #επιστρέφουμε τη λίστα-αποτέλεσμα
#αν το βήμα ήταν 0 δεν κάναμε τίποτα άρα θα επιστρέψουμε μία άδεια λίστα
li = myrange(5,60,10)
print(li)
Edit: Προστέθηκαν μερικά σχόλια στον κώδικα