2013-05-07 11 views
5

Jako początkujący w python, próbowałem przetestować zakres funkcji() w terminalu IDLE. pisałem w terminalu poniżej pisał kodu i spodziewałem się zobaczyć spowodować tak:Zakres funkcji() w języku Python nie daje oczekiwanego rezultatu

range(10)==>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 

ale niestety, ja nie dostać oczekiwanego rezultatu

kodu Pythona Próbowałem:

range(10) 
print(range(10)) 

wyniku z powłoki:

>>> 
print(range(10)) 
+0

Nie przypisałeś "zakresu (10)" do zmiennej w pierwszym wierszu. Druga linia 'print (range (10)) powinna działać. –

+0

'zasięg (11)'? 'zasięg (1, 11)'? – jamylak

+1

Czy używasz Pythona 3.x? –

Odpowiedz

8

W Pythonie 3, range() zwraca generator, dlatego że pokazuje obiekt zamiast wartości:

>>> print(range(10)) 
range(0, 10) 

Jeśli spodziewali listę, trzeba będzie przekształcić go do jednego przed wydrukowaniem :

>>> print(list(range(10))) 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 

Generatory tworzą tylko jedną wartość naraz, aby zaoszczędzić pamięć. Możesz przeczytać na ich temat here, który zawiera przykład dopasowany do twojego przypadku testowego.

+0

Eh, ten sam wniosek doszedłem. – Torxed

1


Krzyż rozwiązanie wersja

C:\Documents and Settings\U009071\Desktop>python 
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] on 
win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 
>>> print(list(range(10))) 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> 
>>> for i in range(10): 
...  print(i) 
... 
0 
1 
2 
3 
4 
5 
6 
7 
8 
9 
>>> 

python2:

>>> print(range(10)) 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> print range(10) 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> a = range(10) 
>>> print(a) 
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 

nie wiem wersję Pythona, ale kopalnia działa dobrze. Spróbuj podać range(0,10), aby się upewnić.

+1

'zasięg (0, 10)' jest równoważny 'zakresowi (10)' dla dowolnej wersji Pythona (przynajmniej z wersji 2.0 i jeśli korzystasz z Pythona sprzed 2001 r.) – msw

+0

Jestem nieobecny, jestem również świadomy, że opisał problem, który nie powinien wystąpić ... więc dowolna opcja które można tam wrzucić, aby rozwiązać problem z błędem tajemnicy, należy koniecznie zanotować :) – Torxed

+0

'print (lista (zakres (10)))' powinno być również w wersji krzyżowej ... – glglgl

Powiązane problemy