Umwandlung von Zahl in wissenschaftlicher notation int

Könnte mir jemand erklären, warum ich nicht verwenden kann int() zum konvertieren einer integer-Zahl dargestellt mit der string-wissenschaftliche notation in python int?

Zum Beispiel funktioniert nicht:

print int('1e1')

Aber das bedeutet:

print int(float('1e1'))

print int(1e1)  # Works

Warum int nicht erkennen der Zeichenfolge als integer? Sicher ist es so einfach wie die überprüfung der Vorzeichen der exponent?

  • Aus dem gleichen Grund, dass int() die nicht funktioniert, sagen, '1.0': es ist beabsichtigt, für Ganzzahlen.
  • Was denkst du, was passieren würde, mit int('hello world')? Es schlägt fehl, für die exakt gleiche Grund, die int('1e1') tut - int() analysiert integer-Zeichenfolgen, wie es auf dem zinn sagt.
  • int('1e1') funktioniert nicht. float('1e1') funktioniert. Was sagt Euch das?
  • 1e1 ist ein integer! Es ist die Nummer 10. Ich wollte nur wissen, warum Sie zu interpretieren ist ein string, der es wie ein Schwimmer, um zu realisieren, es ist eine ganze Zahl.
  • Nein, es ist nicht. Setzen 1e1 in einem interpreter und beobachten Sie es zurück 10.0. Wenn das nicht sagen, "float", versuchen Sie doch type(1e1) und beobachten Sie es zurück <class 'float'>. Natürlich, die Tatsache, dass nur float(), und nicht int() könnte analysiert die Zeichenfolge '1e1' ist ein gutes Indiz dafür, wie gut.
  • Python stellt 1e1 wie ein Schwimmer, aber im mathematischen Sinn ist es eine Ganzzahl ist. 1e1 10
  • Sie hat Ihre Frage mit python, nicht math. Wenn Sie versuchen, zu schreiben, Python-code, basierend auf Regeln, die natürlich nicht für Python, werden Sie stoßen auf viele Schwierigkeiten.
  • Die Frage ist: warum, wenn Python behandelt ints als Schwimmer (numerisch Hierarchie)... tut es nicht behandeln, ein klares int als int. Wie machst du eine int das ist 1e100? Versuchen Sie es. In Python Ist3. Spaß. 1e1000? Rechts aus.

InformationsquelleAutor kezzos | 2015-09-30
Schreibe einen Kommentar