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
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.
Python ile daha hızlı olan: x**.5 veya...
Neden'in matematik Python.() ceil...
Python UnicodeDecodeError - kodlamak y...
Python nasıl eğer bir değişken Yok, Do...
Neden bu ifade 0 < 0 == 0 Python Ya...