Ik probeer een lus van 100 naar 0 te maken. Hoe doe ik dit in Python?
for i in range (100,0)
werkt niet.
Antwoord 1, autoriteit 100%
Probeer range(100,-1,-1)
, waarbij het derde argument de te gebruiken toename is (gedocumenteerd hier).
(“range” opties, start, stop, step zijn gedocumenteerd hier)
Antwoord 2, autoriteit 46%
Naar mijn mening is dit de meest leesbare:
for i in reversed(xrange(101)):
print i,
Antwoord 3, autoriteit 9%
for i in range(100, -1, -1)
en een iets langere (en langzamere) oplossing:
for i in reversed(range(101))
for i in range(101)[::-1]
Antwoord 4, autoriteit 4%
Over het algemeen kun je in Python negatieve indices gebruiken om vanaf de achterkant te beginnen:
numbers = [10, 20, 30, 40, 50]
for i in xrange(len(numbers)):
print numbers[-i - 1]
Resultaat:
50
40
30
20
10
Antwoord 5, autoriteit 3%
Waarom uw code niet werkte
Je codeert for i in range (100, 0)
is prima, behalve
de derde parameter (step
) is standaard +1
. U moet dus de 3e parameter voor bereik() specificeren als -1
om achteruit te gaan.
for i in range(100, -1, -1):
print(i)
Opmerking: dit omvat 100 & amp; 0 in de uitvoer.
Er zijn meerdere manieren.
betere manier
Voor Pythonic Way, controleer PEP 0322 .
Dit is Python3 Pythonic-voorbeeld om af te drukken van 100 tot 0 (inclusief 100 & amp; 0).
for i in reversed(range(101)):
print(i)
Antwoord 6
een andere oplossing:
z = 10
for x in range (z):
y = z-x
print y
Resultaat:
10
9
8
7
6
5
4
3
2
1
TIP:
Als u deze methode gebruikt om indexcijfers in een lijst te tellen, wilt u – 1 van de ‘Y’-waarde, omdat uw lijstindices beginnen bij 0.
Antwoord 7
Het eenvoudige antwoord om uw probleem op te lossen, kan zo zijn:
for i in range(100):
k = 100 - i
print(k)
Antwoord 8
for var in range(10,-1,-1)
werkt
Antwoord 9
Kort en lief. Dit was mijn oplossing bij het uitvoeren van codeaccademie. Drukt een string in REV-bestelling af.
def reverse(text):
string = ""
for i in range(len(text)-1,-1,-1):
string += text[i]
return string
Antwoord 10
U kunt altijd het bereik doen en aftrekken van een variabele in uw geval 100 - i
waar i in range( 0, 101 )
.
for i in range( 0, 101 ):
print 100 - i
Antwoord 11
Ik wilde tegelijkertijd twee lijsten achteruit doorlopen, dus ik had de negatieve index nodig. Dit is mijn oplossing:
a= [1,3,4,5,2]
for i in range(-1, -len(a), -1):
print(i, a[i])
Resultaat:
-1 2
-2 5
-3 4
-4 3
-5 1
Antwoord 12
Ik heb dit geprobeerd in een van de codeacademy-oefeningen (tekens in een string omkeren zonder reversed noch :: -1)
def reverse(text):
chars= []
l = len(text)
last = l-1
for i in range (l):
chars.append(text[last])
last-=1
result= ""
for c in chars:
result += c
return result
print reverse('hola')
Antwoord 13
O, oké, ik heb de vraag verkeerd gelezen, ik denk dat het gaat over achteruit gaan in een array? zo ja, dan heb ik dit:
array = ["ty", "rogers", "smith", "davis", "tony", "jack", "john", "jill", "harry", "tom", "jane", "hilary", "jackson", "andrew", "george", "rachel"]
counter = 0
for loop in range(len(array)):
if loop <= len(array):
counter = -1
reverseEngineering = loop + counter
print(array[reverseEngineering])
Antwoord 14
Misschien wilt u de functie reversed
gebruiken in python.
Voordat we in de code springen, moeten we onthouden dat het range
functie retourneert altijd een lijst (of een tuple die ik niet ken), dus range(5)
retourneert [0, 1, 2, 3, 4]
. De functie reversed
keert een lijst of een tuple om zodat reversed(range(5))
[4, 3, 2, 1, 0]
dus uw oplossing zou kunnen zijn:
for i in reversed(range(100)):
print(i)
Antwoord 15
Je kunt ook een aangepast omkeermechanisme maken in Python. Die overal kan worden gebruikt om een iterable achteruit te herhalen
class Reverse:
"""Iterator for looping over a sequence backwards"""
def __init__(self, seq):
self.seq = seq
self.index = len(seq)
def __iter__(self):
return self
def __next__(self):
if self.index == 0:
raise StopIteration
self.index -= 1
return self.seq[self.index]
>>> d = [1,2,3,4,5]
>>> for i in Reverse(d):
... print(i)
...
5
4
3
2
1
Antwoord 16
a = 10
for i in sorted(range(a), reverse=True):
print i