SORU
21 Aralık 2010, Salı


Neden range(başlangıç, bitiş) uç içermez?

>>> range(1,11)

verir

[1,2,3,4,5,6,7,8,9,10]

Neden 1-11 değil mi?

Sadece rastgele gibi yapmaya karar verdiler ya da görmüyorum bazı değeri var mı?

CEVAP
21 Aralık 2010, Salı


Daha yaygın len(range(0, 10)) eşittir 10 element içeren [0,1,2,3,4,5,6,7,8,9] döner range(0, 10) aramak için çünkü. Programcılar 0-tabanlı dizin tercih unutmayın.

Ayrıca, aşağıdaki ortak kod parçası göz önünde bulundurun:

for i in range(len(li)):
  pass

Bu sorunlu olacaktır range() tam 11 ** giderse verebilir misin? Programcı açıkça 1 çıkarmak gerekir. Bu da programcılar for(int i = 0; i <= 9; i ) for(int i = 0; i < 10; i ) tercih eden ortak bir eğilim izler.

Eğer 1 sık sık bir başlangıç aralığı arıyorsanız, kendi fonksiyonlarınızı tanımlamak için isteyebilirsiniz:

>>> range1 = lambda start, end: range(start, end 1)
>>> range1(1, 10)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • talkandroid

    talkandroid

    27 Mayıs 2010
  • TheXiaxue

    TheXiaxue

    3 AĞUSTOS 2009
  • TSE

    TSE

    12 Kasım 2012