Ein Java-Programmierer studierte Python. (Über Typ)

Ich bin ein Java-Programmierer, der angefangen hat, Python mit Schwung zu studieren, weil mir die Beiträge in Java ausgegangen sind. Klicken Sie hier, um den vorherigen Studienartikel zu if, for, while-Anweisungen anzuzeigen.

Ich habe es das letzte Mal mit einer Idee gepostet, aber die größte Anzahl von Likes aller Zeiten! Ich erhielt. (Mond und Suppon im Vergleich zum Trend ...) Mir wurde klar, dass Python immer noch in Mode ist.

Wie schön! Die Spannung steigt durch das Empfangen Der Anfang war wie Müll, aber lasst uns Python ernsthaft studieren! Dann schreibe ein Python-Nachschlagewerk! Ich denke in diesen Tagen.

Aber "Ist es für Anfänger, ist es gut für die Datenanalyse oder ist es gut für die Webentwicklung, ist die Bildanalyse auch schwer wegzuwerfen ..." Ich mache mir Sorgen, deshalb werde ich vorerst die Grundlagen der Grundlagen studieren und mich dabei auf verschiedene Einführungsseiten beziehen.

Referenzseite

Betriebsüberprüfungsumgebung

Schimmel

Wenn Sie PHP richtig studiert haben, werden Sie es nicht schwer haben, aber das altmodische Java-Gehirn hat keine Typdeklaration. "Ich kenne den Typ nicht auf einen Blick ... Ugh ..." Also habe ich diesmal über Schimmelpilze studiert. (Warum

In Python scheint es ungefähr 6 Typen (Typen?) Zu geben.

  1. Numerischer Wert
  2. String
  3. Liste
  4. Stellen Sie ein
  5. Taple
  6. Wörterbuch

Es gibt ungefähr zwei Dinge, mit denen ich nicht vertraut bin. Was sind Tapples und Wörterbücher? Ich habe noch nicht einmal von Taples gehört ... Wörterbuch ist ein Wörterbuch, wenn es wörtlich übersetzt wird, aber was ist ein Wörterbuchtyp ...

Vorerst werde ich lernen, während ich mit Java vergleiche, in der Reihenfolge von oben.

Numerischer Wert

In Python gibt es drei numerische Typen:

  1. Ganzzahl (int)
  2. lange ganze Zahl
  3. Float

Ich habe sie alle in Java gesehen und bin erleichtert.

int Mit Java

IntDemo.java


int num1 = 1234; //Dezimalzahl
int num2 = 0b10011010010; //Binärzahl
int num3 = 02322; //8 Basis
int num4 = 0x4D2; //Hexadezimal

In Python

IntDemo.py


num1 = 1234 #Dezimalzahl
num2 = 0b10011010010 #Binärzahl
num3 = 0o2322 #8 Basis
num4 = 0x4D2 #Hexadezimal

Wenn Sie versuchen, Java und Python in der Reihenfolge von oben auszugeben,

1234
1234
1234
1234

Es gab nur einen kleinen Unterschied in der Oktadezimalzahl "0" oder "0o". Bis jetzt läuft es gut.

long Weiter ist lang. Mit Java

LongDemo.java


long l = 9223372036854775807L;

Schreiben Sie Python auf die gleiche Weise.

LongDemo.py


l = 9223372036854775807L

Hmm? Gibt es einen Fehler?

SyntaxError: invalid syntax

Warum! Fügen Sie nicht einfach L am Ende hinzu! Wenn Sie die Referenzseite sorgfältig lesen,

In Python 3 werden jetzt Ganzzahlen (int) und lange Ganzzahlen (long) integriert und als alle Ganzzahlen (int) behandelt, und L und l sind ebenfalls veraltet.

\(^o^)/ Das obige war, wie man Python 2 schreibt. Es scheint, dass Python 3 nicht lange hat. Lesen Sie die Referenzseite sorgfältig durch! !! !! !! (Es tut uns leid

Und was ist noch wichtig ...

Lange Ganzzahlen haben keine Begrenzung für die Anzahl der Stellen, solange der Speicher dies zulässt, und es gibt keinen Berechnungsfehler bei Operationen zwischen langen Ganzzahlen.

Es scheint also, dass eine beliebige Anzahl von Ziffern in Ordnung ist, solange der Speicher dies zulässt.

LongDemo2.py


num = 1234567890123456789012345678901234567890123456789012345678901234567890
print(num)

Wurde richtig ausgegeben.

Sie müssen sich nicht vor den Ziffern fürchten ... Python ist großartig ...

float

In Java hat double mehr gültige Ziffern, daher verwenden wir kein float. Es wird wie unten aussehen.

FloatDemo.java


float f = 1.2345f;

Mit Python

FloatDemo.py


f = 1.2345

Versuchen Sie auszugeben.

1.2345

Es war normal. Die maximale Anzahl von Ziffern hängt vom System ab. Es scheint kein Problem mit der Erkennung zu geben, dass Java double = Python float.

String

Als nächstes folgt eine Zeichenkette.

StrDemo.java


String str1 = "String";
//Das gleiche wie oben
String str2 = new String("String");

Auch im Fall von Python wurden die Details der Bewegung nicht untersucht, aber es wird wie folgt geschrieben.

StrDemo.py


str1 = "String"
str2 = 'String'

Es scheint, dass das Gehäusezeichen entweder ein einfaches oder ein doppeltes Anführungszeichen sein kann. Als ich mir Qiita und GitHub ansah, hatte ich den Eindruck, dass viele Leute einfache Zitate verwenden. (Das Java-Gehirn möchte nur doppelte Anführungszeichen verwenden ...)

Übrigens können Sie Zeichenfolgen mithilfe des Pluszeichens verketten.

StrDemo2.py


str3 = "String" + "Verknüpfen!"

aufführen

Wie Sie sich aus dem Namen vorstellen können, ist es wie ein Array in anderen Programmiersprachen? Versuchen Sie erwartungsgemäß zunächst, ein Array in Java zu schreiben.

ListDemo.java


int foo[] = [1, 2, 3, 4, 5];

Wenn das Python ist

ListDemo.py


foo = [1, 2, 3, 4, 5]

Natürlich gibt es Funktionen wie das Hinzufügen, Einfügen, Ändern und Löschen von Elementen. Ich werde die Bewegung weglassen, aber ich habe versucht, sie zusammenzufassen.

Funktion Wie benutzt man
hinzufügen foo.append(6) #Addiere 6 zum Ende
Einfügen foo.insert(5, 6) #Fügen Sie 6 nach dem 5. in die Liste ein
Veränderung foo[5] = 6 #Ändern Sie den 5. Platz in der Liste auf 6

Soweit ich herausfinden konnte, gab es vier Arten von Löschungen.

Funktion löschen Wie benutzt man
Löschen Sie alle Elemente foo.clear()
Löschen Sie das Element an der angegebenen Position foo.pop(1)
Löschen Sie dasselbe Element wie den angegebenen Wert foo.remove("A")
Löschen Sie durch Angabe der Position und des Bereichs del foo[:3] #Entfernen Sie die vorherigen 3 Elemente

~~ Ich habe die Untersuchung übersprungen, weil es ärgerlich war, aber ~~ del scheint die Syntax ** "del Anweisung" ** anstelle der Methode zu haben. Denken Sie nur an die "Syntax zum Löschen von Variablen und Objekten" und fahren Sie fort.

Wörterbuch

Wörtlich übersetzt ist es ein Wörterbuch, aber was ist ein Wörterbuchtyp ... Auf der entsprechenden Seite der Tohoho-Referenzseite wird wie folgt geschrieben.

{...} enthält eine Liste von Schlüssel / Wert-Paaren, die als Diktat bezeichnet werden.

Ist es so etwas wie Map in Java? ?? Für den Python-Beispielcode habe ich die Tohoho-Referenzseite so ausgeliehen, wie sie ist.

DictDemo.py


d = {'Yamada': 30, 'Suzuki': 40, 'Tanaka': 80}

Die Reihenfolge ist umgekehrt, aber wenn Sie dies in Java ändern

MapDemo.java


Map<String, Integer> d = new HashMap<String, Integer>();
d.put("Yamada", 30);
d.put("Suzuki", 40);
d.put("Tanaka", 80);

Java kann ohne die put () -Methode keinen Wert festlegen. Python ist viel einfacher zu schreiben als Java. ~~ Java wirklich inkompetent ~~ Denken Sie daran, Python-Wörterbuchtyp = Java Map. Es scheint auch, dass es mehr Leute gibt, die es als Wörterbuchtyp bezeichnen, anstatt als Wörterbuch.

Taple

Ich habe noch nicht einmal mehr davon gehört. Suchen Sie zuerst Google mit "Taple"! In [Wikipedia] gab es eine "Tupple" -Seite (https://ja.wikipedia.org/wiki/%E3%82%BF%E3%83%97%E3%83%AB).

Tupel oder Tupel (Englisch: Tupel) ist ein allgemeines Konzept, das sich zusammen auf eine Menge bezieht, die aus mehreren Komponenten besteht. In der Mathematik und Informatik wird es normalerweise verwendet, um eine geordnete Folge von Objekten darzustellen. Individuell wird ein Satz von n Stücken auf Englisch als "n-Tupel" geschrieben, und wenn er ins Japanische übersetzt wird, wird er normalerweise als "n Sätze" geschrieben. Das Konzept des Tapples selbst wird manchmal als Set bezeichnet. N-Tupel bedeutet nicht nur ein mathematisches Tackel, sondern wird auch verwendet, um mehrere Wörter als Erweiterung von Doppel, Dreifach usw. auszudrücken.

_〆 (-∧- ;) Hmm ... Wakaranai ... Wenn Sie ein Idiot sind, der nicht rechnen kann, wird Ihnen gesagt: "Studieren Sie nicht Python!" (Ich werde studieren

Es tut mir Leid. Dies ist das Hauptthema.

Dieses Mal habe ich aus Python Web extrahiert.

Der Tapple-Typ ist einer der Sequenztypen sowie der Zeichenfolgen- und Listentyp. Es besteht aus mehreren Elementen und die Elemente sind in der richtigen Reihenfolge angeordnet. Insbesondere hat der Listentyp viele Gemeinsamkeiten, aber mit tapple können Sie die Elemente eines einmal erstellten Objekts nicht ändern. Auch der Taple hat keine Methode

Ist es in Java eine Array- (Listen-) Version der endgültigen Variablen? ??

Wenn ich es tatsächlich schreibe, sieht es so aus wie unten.

TapleDemo.py


tuple = (2005, 2006, 2007, 2008)

Anscheinend kann es nicht geändert werden, daher scheint es etwas schneller als die Liste zu laufen. Verwenden Sie tapple, wenn Sie den Wert nicht ändern möchten. Davon abgesehen ist es wie mit einer Liste.

Übrigens, wenn Sie einen Taple definieren möchten, der nur einen Wert hat,

TapleDemo2.py


tuple = (2005, )

Es scheint notwendig, am Ende ein Komma zu schreiben.

Bonus

Ich schrieb, dass ich Python recherchierte und dachte "Hey ~ _〆 (・ ∀ ・ *)". Ich hatte Probleme mit dem Titel, also vorerst "Bonus".

Konstanten in Python

Python hat nicht das Konzept von Konstanten. Daher erscheint es üblich, einen Variablennamen, der aus Großbuchstaben und Unterstrichen besteht, als Konstante zu verwenden. Ich habe es in [PEP8] geschrieben (https://www.python.org/dev/peps/pep-0008/#constants). (Google Übersetzung wirklich ausgezeichnet

value = 1 #Variable Variable
VALUE = 1 #Als Konstante behandeln
VALUE_MAX = 10 #Als Konstante behandeln

Zeichenfolgentyp

Bei Python 3-Serien ist die Zeichenfolge Unicode. Übrigens scheint es zwei Arten von 2 Serien zu geben, Unicode und Str.

Variablennamen, die mit einer Nummer beginnen, können nicht verwendet werden

Wie der Titel schon sagt. 123 ist nicht gut, hensu123 ist OK.

Was du mir in den Kommentaren erzählt hast

Wenn es ein Komma gibt, ist es ein Taple ohne Klammern

value = 1, 2, 3
print(value)
print(1, 2, 3)
print((1, 2, 3))

Das Ausführungsergebnis ist

(1, 2, 3)
1 2 3
(1, 2, 3)

Es wurde ein Taple. Das Java-Gehirn ist zu erfrischend und unangenehm, aber es ist schön, weil Sie die Anzahl der eingegebenen Zeichen reduzieren können.

Taple kann als Wörterbuchschlüssel verwendet werden

Da der Taple ein unveränderliches Objekt ist, kann er auch als Wörterbuchschlüssel verwendet werden. Da es nicht erforderlich ist, Klammern zu haben, scheint es auch möglich zu sein, XY-Koordinaten anzugeben.

>>> a = {}
>>> a[(1, 2)] = 'abc'
>>> a
{(1, 2): 'abc'}
>>> a[1, 2]
'abc'

Ist dieser Bereich für Statistiken wie maschinelles Lernen nützlich? Ich weiß nicht, ob ich die Mathematik vergessen habe ...

Python hat alle Werteobjekte

In Python sind alle Werte Objekte. Dies bedeutet, dass es in Java primitive Typen und Referenztypen gibt, Python jedoch in Java wie Referenztypen zu sein scheint. Python hat also eine Methode, obwohl es sich um einen numerischen Wert handelt. Erstaunlich (kleines Durchschnittsgefühl) Das Folgende ist ein Auszug aus den Kommentaren.

>>> dir(-5)
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
>>> (-5).__abs__()
5

Wie Sie sehen können, scheint dir eine Liste von Methoden zu erhalten. abs scheint eine Methode zu sein, um den absoluten Wert zu erhalten.

Eindrücke des Versuchens

Die Verwendung von Listen, Wörterbüchern (Wörterbuchtyp) und Taples scheint verwirrend. Ich dachte, also habe ich daraus einen Tisch gemacht.

Funktion löschen Wie benutzt man
aufführen []Umgeben mit
Wörterbuch(Wörterbuchtyp) {}Umgeben mit
Taple ()Umgeben von * Auch wenn Sie es nicht umgeben, ist es in Ordnung, wenn ein Komma vorhanden ist

Ich habe einen Fehler gemacht, aber es scheint, dass die Syntax und die verfügbaren Bibliotheken zwischen Python 2 und 3 sehr unterschiedlich sind. Wenn Sie jetzt mit dem Lernen beginnen, überprüfen Sie unbedingt die Referenzen und Referenzseitenversionen.

Recommended Posts

Ein Java-Programmierer studierte Python. (Über Typ)
Ein Java-Programmierer studierte Python. (Über Dekorateure)
Ein Java-Programmierer studierte Python. (für, if, while-Anweisung)
Memorandum über Korrelation [Python]
Ein Memorandum über den Python-Mock
Ein Hinweis zu [Python] __debug__
Python: Ein Hinweis zu Klasse 1 "Abstract"
Ein Hinweis zu Mock (Python-Mock-Bibliothek)
Ein bisschen mehr über Referenzen ~ Verwenden von Python und Java als Beispiele ~
Eine Geschichte über die Entwicklung eines weichen Typs mit Firestore + Python + OpenAPI + Typescript
[Python] [Meta] Ist der Python-Typ ein Typ?
Eine Geschichte über Python Pop und Append
Über den 02. Februar 2020 * Dies ist ein Python-Artikel.
Über Python-Slices
Über die Einschlussnotation von Python
Über den Referenztyp
Numerischer Python-Typ
Über Python tqdm.
Über die Python-Ausbeute
Über Python, Klasse
Python Hinweis: Behandeln Sie Listen gemeinsam als Satz
Ich habe eine Klasse in Python3 und Java geschrieben
Warum ich ein Java-Shop bin und Python starte
Ein Memo, das ich in Python zusammengeführt habe
Informationen zur Python-Vererbung
Schreiben Sie eine Notiz über die Python-Version von Python Virtualenv
Über Python, range ()
Datenanalyse in Python: Ein Hinweis zu line_profiler
Eine Geschichte über das Ausführen von Python auf PHP auf Heroku
Denken Sie daran, eine Python 3-Umgebung in einer Mac-Umgebung zu erstellen
Über Python Decorator
Ein Memorandum über die Python-Tesseract-Wrapper-Bibliothek
Python2-Zeichenfolgentyp
Python # String-Typ
Informationen zur Python-Referenz
Über Python-Dekorateure
Eine Geschichte über das Ändern von Python und das Hinzufügen von Funktionen
[Python] Über Multi-Prozess
Schreiben Sie über das Erstellen einer Python-Umgebung zum Schreiben von Qiita Qiita
So schreiben Sie einen Listen- / Wörterbuchtyp von Python3
Python zeigt aus der Perspektive eines C-Sprachprogrammierers
Die Geschichte, mit Python eine Hanon-ähnliche Partitur zu machen
Eine Geschichte über das Ausprobieren eines (Golang +) Python-Monorepo mit Bazel
Ein Memo zum Erstellen einer Django (Python) -Anwendung mit Docker
Ein Memorandum über die Umsetzung von Empfehlungen in Python
Über Python für Schleife
Ein * Algorithmus (Python Edition)
Über Funktionsargumente (Python)
Denken Sie an Java Generics
[Python] Machen Sie einen Screenshot
Erstellen Sie ein Python-Modul
Pythons Lambda-Ausdruck ...
[Python] Memo über Funktionen
Zusammenfassung über Python3 + OpenCV3
Ein Memorandum über Nan.
Über Python für ~ (Bereich)
Dämonisiere einen Python-Prozess