SORU
9 NİSAN 2013, Salı


Python ile yanlış matematik?

Sadece Python ile başlayan bu muhtemelen benim hatam, ama...

Python deniyorum. Bir hesap makinesi olarak kullanmak istiyorum, ve yavaş yavaş bazı dersler ile çalışıyorum.

Garip işler bugün koştum. 2013*2013 ama yanlış bir şey yazdım ve 2013*013, yazdı ve bunu öğrenmek istedim:

>>> 2013*013
22143

Benim hesap makinesi ile kontrol ettim ve 22143 yanlış cevap! 2013 * 13 26169 olması gerekiyordu.

Neden beni yanlış cevap vererek Python? Eski Casio hesap makinem böyle yapmaz...

CEVAP
9 NİSAN 2013, Salı


Sekizli çünkü aritmetik, 013 aslında tamsayı 11.

>>> 013
11

, 013 sıfır baz-8 Bir sayı olarak yorumlanır ve 1*818*30= 11.

Not: bu davranış changed in python 3 oldu. Burada PEP 3127 özellikle uygun bir alıntı

Tamsayılar varsayılan sekizlik gösterimi için kafa karıştırıcı sessizce. insanlar C gibi diller ile yabancı. Son derece kolaydır yanlışlıkla yanlış değer tamsayı nesne, çünkü oluşturun '"Anlamına gelen"', 'ondalık 13', Python dili için değil ondalık 11 013 çoğu insan bu anlamı değil kendisi, bu atamak değişmez.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • iNCH

    iNCH

    20 Temmuz 2009
  • Jonathan Leack

    Jonathan Lea

    26 ŞUBAT 2007
  • Matus Slovak

    Matus Slovak

    5 Temmuz 2007