Python ile yanlış matematik? | Netgez.com
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

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • TouchePro

    TouchePro

    27 EYLÜL 2007
  • vgeller1

    vgeller1

    22 Kasım 2009