[Aktualisierung] Python Syntax Spickzettel für Java Shop

Ich habe kürzlich Python gestartet. Was ich jedoch tun möchte, kommt heraus, wenn ich google, und dank Python 3, das objektorientiert ist, ist es gut, weil ich ein Gefühl dafür bekommen kann, aber wenn ich es schreibe, ist es die Grammatik, die stolpert. Ist es nicht? (Nur ich?) Wenn ich an Java gewöhnt bin, schreibe ich es in Java, aber wie schreibe ich es in Python? Es wird eine Art Idee sein, also hoffe ich, dass es für Leute nützlich sein wird, die über ähnliche Dinge nachdenken.

Also habe ich das in Java geschrieben, aber ich habe es in Python3 geschrieben. Es ist nur der Anfang, also mag es ein bisschen falsch in der Denkweise sein, aber es ist süß. Es ist rau. Ich bin der Typ, an den ich mich beim Schreiben erinnern muss. Ich werde es aktualisieren, wenn ich Lust dazu habe.

Umgebung

Python 3.8 Java 8

Offizielles Tutorial

https://docs.python.org/ja/3/tutorial/index.html

Offizieller Unit Test

https://docs.python.org/ja/3/library/unittest.html

Cheet Blatt

Kommentar

Java

//Zeile für Zeile Kommentar
/*
 *Kommentar blockieren
 */

Python

#Kommentar

Klassendefinition

Java

public class Hoge {

}

Python

class Hoge:  #Doppelpunkt ist wichtig! !!

Konstruktordefinition

Java

public Hoge(){
  //Ich initialisiere
} 

Python

(Ergänzung) Im Fall von Python scheint es sich eher um eine Methode als um einen Konstruktor zu handeln. Es scheint besser, es als eine Methode zu betrachten, die aus dem Konstruktor heraus aufgerufen wird

def __init__(self):
  #Ich initialisiere

Instanzgenerierung

Java

Hoge hoge = new Hoge();

Python

hoge = Hoge()

Verarbeitungsstartpunkt (sogenannter Hauptpunkt)

Java

public static void main(String[] args) {
    // body of main()
}

Python

if __name__ == "__main__":
  hoge.hoge()

Ich möchte ein anderes Modul (Klasse) verwenden.

Java

import jp.co.hoge.Hoge;

Python

Es gibt viele Möglichkeiten zu schreiben ...! https://nansystem.com/python-module-package-import/

Bedingter Ausdruck

https://docs.python.org/ja/3/tutorial/controlflow.html

Java

// a = b and b = c
if (a == b && b == c) {
  System.out.println(a)
}

// a = b or b = c
if (a == b || b == c) {
  System.out.println(a)
}
//Verweigerung
if (!enable) {
  System.out.println(a)
}

Python

# a = b and b = c
if a = b and b = c:
  print(a)

# a = b or b = c
if a = b or b = c:
  print(a)

#Verweigerung
if not enable:
  print(a)

Vergleichsoperator

Die Vergleichsoperatoren sind für Java und Python gleich

<  <=   >   >=   ==   !=

null und keine

Java null hat keine Objekte Python None hat keinen Wert Bedeutet jeweils

https://www.quora.com/What-is-the-difference-between-Javas-null-and-Pythons-None

In Java, null is an instance of nothing, it is often referred as "no object" or "unknown" or "unavailable" .

In Python None is an object, denoting lack of value. This object has no methods. It needs to be treated just like any other object with respect to reference counts.

So these two are not much alike, however since Java 8 Optional has come along which is more similar to None. It is a class that encapsulates an optional value. You can view Optional as a single-value container that either contains a value or doesn't (it is empty)

Genau genommen haben null und None unterschiedliche Bedeutungen, daher können sie nicht auf die gleiche Weise verwendet werden. None ist in Java nahe an Optional.

While the difference is nuanced, Python's None by being an object itself, helps avoid some types of programming errors such a NullPointerExceptions in Java.

Da None jedoch ein Objekt ist, ist es nützlich für Dinge wie schleimige Verarbeitung.

Es scheint eine Geschichte zu sein.

Leerzeichen / Null-Urteil

Python ist None, nicht null. https://pg-chain.com/python-null

Java

// str != null && str != ""
if (str.isEmpty()) {
  return true;
}

Python

if not str:
  return True
else
  return False

Error

https://docs.python.org/ja/3/tutorial/errors.html Die Standardklasse ist die Ausnahmeklasse für Java und Python

java

try {
  //Verarbeitung, die eine Ausnahme auslöst
} catch (Exception e) {
  e.printstacktrace();
  throw new CustomizeException();
} finally {
  //Das Letzte, was Sie tun möchten
}

Python

try:
  //Verarbeitung, die eine Ausnahme auslöst
except Exception as e:
  print(e)

aufführen

https://docs.python.org/ja/3/tutorial/datastructures.html

Die Python-Liste sieht aus wie eine nette Variante von Java-Arrays und ArrayList. Das Schreiben ähnelt Java-Arrays. Python hat auch einen Array-Typ, der fast mit einem Java-Array identisch ist. Der Array-Typ kann standardmäßig nicht verwendet werden und muss importiert werden.

Java

List<String> list = new ArrayList<>;

//Holen Sie sich die Länge des Arrays
list.size();

//Zur Liste hinzufügen
list.add("lemon");

Python

l = ["John", "Bob", "Carry"]

#Holen Sie sich die Anzahl der Elemente in der Liste(Verwenden Sie die len-Funktion)
len(l)

#Zur Liste hinzufügen
l.append("Mickey")

Karte → Wörterbuch

Map in Java ist ein Python-Diktat. https://docs.python.org/ja/3/tutorial/datastructures.html

Java

Map<String, String> map = new HashMap<>();

Python

#Wellen{}Beim Erstellen mit
d = {'key1': 'aaa', 'key2': 'bbb'}

#Kann auch mit einem Konstruktor erstellt werden
d2 = dict()
d3 = dict('k1'='aaa', 'key2'='bbb')
#Es gibt viele andere Möglichkeiten zu schreiben

Andere Websites, die auf verschiedene Weise hilfreich waren

Referenz

https://qiita.com/karadaharu/items/37403e6e82ae4417d1b3 https://www.rose-hulman.edu/class/cs/csse220/200910/Resources/Python_vs_Java.html https://python.keicode.com/lang/oop-basics.php

Vielen Dank

Vielen Dank, dass Sie @shiracamus

Recommended Posts

[Aktualisierung] Python Syntax Spickzettel für Java Shop
Python-Spickzettel (für C ++ erfahren)
AtCoder Spickzettel in Python (für mich)
Python3 Spickzettel (Basic)
PySpark Cheet Sheet [Python]
Python-Spickzettel
[Python3] Standardeingabe [Cheet Sheet]
Data Science Cheet Sheet (Python)
Python Django Tutorial Cheet Sheet
Apache Beam Cheet Sheet [Python]
Unterschiede zwischen Python- und Java-Syntax
Blender Python Mesh Datenzugriffsprüfblatt
Cheet Sheet (Python) des Mathematical Optimization Modeler (PuLP)
SublimeText2 und SublimeLinter - Syntax prüfen auf Python3--
R-Code-kompatibles Blatt für Python-Benutzer
2016-10-30 sonst für Python3> für:
Python [für mich]
mit Syntax (Python)
Curry Spickzettel
SQLite3 Spickzettel
pyenv Spickzettel
Syntax zur Steuerung der Python-Syntax
LeetCode Python [Aktualisierung]
[Für die Datenwissenschaft] Oreore Jupyter Spickzettel [Jupyter Notebook / Lab]
C-Sprache, Java, Python-Benchmarks mit Primfaktorisierung
Ein Java-Programmierer studierte Python. (für, if, while-Anweisung)
[Python of Hikari-] Kapitel 05-05 Steuerungssyntax (für Anweisungs-Mehrfachschleifen-)