Wir haben die Punkte für diejenigen zusammengefasst, die C ++ verwenden können, aber Python nicht verstehen, um die minimale Programmiernotation zu erhalten, die schnelles maschinelles Lernen ermöglicht. Wenn Sie dies wissen, können Sie die Mindestfunktionen verwenden.
Da die Bibliothek umfangreich ist, können Sie leicht komplizierten Code schreiben, indem Sie in C ++ schreiben. Die Zusammenarbeit im Internet ist relativ einfach. Es gibt viele Informationen im Netz.
Die folgenden haben alle Bibliotheken. Das Beherrschen der Bibliothek bedeutet das Beherrschen von Python. · Maschinelles Lernen ・ Web Scraping ・ Excel-Betrieb ・ Datenvorverarbeitung ・ Visualisieren
python 3.8.2 Ubuntu 18.04
Unter Linux ist Python3 standardmäßig enthalten, sodass keine Umgebung erstellt werden muss. Wenn Sie es auf Anaconda ausführen möchten, lesen Sie bitte hier. Klicken Sie hier für eine Erklärung von Anaconda (https://py-prog.com/whats-anaconda-and-its-merit-for-python-programming/) Anaconda macht es einfach, virtuelle Umgebungen zu erstellen. In Python, das viele Pakete installiert, möchten Sie häufig die Umgebung ändern. Wenn Sie sie also ernsthaft verwenden möchten, ist Anaconda möglicherweise unverzichtbar.
IDE ・ PyCharm ・ Spyder Editor ・ Atom ・ VS-Code
C++ | Python | |
---|---|---|
Variablentyp | Ja | Keiner |
Variablenzuordnung | Kopieren | Zeiger |
Funktionsbegrenzer | {}Mittelhalter | :Und einrücken |
Arithmetischer Operator | C++Zusätzlich zu** Power hinzufügen |
|
Logischer Operator | &&,ll,! | and,or,not |
Codebruch | ; | Neue Zeile |
Zeiger | klar | 不klar |
Auskommentieren | // | # |
Externe Bibliotheken importieren | #include | import |
kompilieren | notwendig | Nicht notwendig |
Hauptfunktion | Ja | Keiner |
Matrixberechnung(Standard) | unmöglich | Möglich mit numpy Bibliothek |
Da Python eine dynamisch typisierte Sprache ist, existieren die in C ++ üblichen Variablentypen nicht. Daher wird die Variable nur durch den Variablennamen definiert. Der Typ wird durch den zugewiesenen Wert bestimmt.
a=1234 #Ganzzahliger Typ
b=12.345 #Gleitkomma-Typ
c="hello world" #Zeichenfolgentyp
d=[1,2,3,4] #Listentyp
In Python gibt es keine expliziten Zeiger. Stattdessen übergibt die Zuweisung an die Variable ** eher eine Referenz als eine Kopie, da die Variable sowohl ein Werthalter als auch ein Zeiger ist. ** ** ** Wenn Sie den Wert des Zuweisungsziels ändern, ändert sich auch der Wert der Variablen der Zuweisungsquelle. Achten Sie daher auf den Unterschied in der Behandlung. (Liste) Siehe Folgendes https://qiita.com/maruman029/items/21ad04e326bb4fb6f71a
Im Fall von C ++ wird 1 Code unabhängig von der Anzahl der Zeilenumbrüche erkannt, sofern nicht das Trennzeichen ;
hinzugefügt wird. Im Fall von Python ist der Zeilenumbruch jedoch ein klares Trennzeichen.
In Python gibt der Einzug den Bereich an. Daher wird nicht einmal ein Zeichen als derselbe Codebereich erkannt, wenn der Einzug nicht richtig ausgerichtet ist. Es ist eine sehr einrückbare Sprache, daher kann das Codieren ohne die Einrückungsformatierungsfunktion des Editors schwierig sein. Der folgende Code führt beispielsweise zu einem Einrückungsfehler. Beachten Sie, dass sich Einrückungen häufig in Schleifen verschieben und Fehler verursachen.
a=1234
b=12.345
c="hello world" #Nicht im gleichen Bereich
d=[1,2,3,4]
Auf globale C ++ - Variablen kann direkt von der Funktion aus zugegriffen werden. Im Fall von Python können sie jedoch nur zugewiesen werden, wenn sie in der Funktion lokal als "globaler Variablenname" deklariert sind.
a = 123
def Global():
global a
a = 456
print("global variable:", a)
Global()
Einige Hauptfunktionen wurden aus Gründen der Übersichtlichkeit weggelassen.
Da Python ein automatischer Zeilenumbruch ist, benötigen Sie kein \ n.
c.c
int a=123;
printf("%d\n",a);
python.py
a=123
print(a)
c++.cpp
#include "hogohoge.h"
python.py
import hogehoge
In Python heißt es "Liste". Der Speicherbereich des Python-Arrays wird dynamisch zugewiesen, sodass Sie später Elemente hinzufügen können. Verwenden Sie append (), um ein Element hinzuzufügen. Seien Sie vorsichtig, da Sie eine Fehlermeldung erhalten, wenn Sie wie in C ++ mit "a [3] = 4" zuweisen.
c++.cpp
int a[4]={1,2,3,};
int b = a[2];
printf("%d\n", b);
a[3] = 4;
printf("%d\n", a);
python.py
a=[1,2,3]
b=a[2]
print(b)
a.append(4)
print(a)
Wenn man sich den Python-Code ansieht, gibt es "a.append (4)". Dies ist eine Listenmethode, eine Funktion, die beim Bearbeiten von Listen verwendet wird. Python behandelt Variablen und externe Bibliotheken als eine Art Objekt, und Sie können mit . method
auf die von Python bereitgestellten Methoden zugreifen. Es gibt verschiedene andere Methoden zum Einfügen in die Mitte, daher ist hier hilfreich.
Ein Array, dessen Wert später nicht mehr geändert werden kann. In c ++ wird es als const deklariert, im Fall von pyton wird es als taple bezeichnet und anders als in der Liste geschrieben.
tupl.cpp
const int a[4] = {1, 2, 3, 4};
b = a[2];
printf("%d", b);
tupl.py
a = (1, 2, 3, 4)
b = a[2]#Element abrufen
print(b)
Python hat eine Funktion namens Wörterbuch. Es ist wie ein Array, das Daten mit einer Kombination aus Schlüsseln und Werten speichern kann. Sie können es aufrufen, indem Sie den Schlüssel angeben. Daher wird die Lesbarkeit verbessert. Es ist möglicherweise einfacher zu verstehen, wenn Sie sich etwas Ähnliches wie die C ++ - Aufzählung vorstellen.
python.py
lang={"c":1,"python":2,"ruby":3}#Wörterbuch erstellen
print(lang["python"])
lang["ruby"]=4#Elemente tauschen
print(lang["ruby"])
lang["java"]=3 #Element hinzufügen
print(lang)
Im Gegensatz zu c ++ hat Python keine Trennzeichen wie {}. Daher wird durch Öffnen der nächsten Zeile von "if hogehoge:" durch eine Registerkarte * der Einzug geändert, um deutlich anzuzeigen, dass es sich um die Verarbeitung der if-Anweisung handelt. Wenn Sie pirnt an das linke Ende bringen, wird es genauso eingerückt wie die if-Anweisung, sodass es sich um den Prozess handelt, der außerhalb des if ausgeführt wird. Verschieben Sie auch den Einzug beim Verschachteln.
c++.cpp
int a = 7;
int b = 12;
if (a <= 10 && b <= 10)
{
printf("Sowohl a als auch b sind 10 oder weniger");
}
else if (a % 2 == 0)
{
printf("a ist gerade");
}
else
{
printf("Erfüllt nicht die Bedingungen")
}
python.py
a = 7
b = 12
if a <= 10 and b <= 10:
print("Sowohl a als auch b sind 10 oder weniger")
elif a % 2 == 0:
print("a ist gerade")
else:
print("Erfüllt nicht die Bedingungen")
Wenn Sie in C ++ den Inhalt des Arrays einzeln abrufen möchten, müssen Sie die Anzahl der Elemente im Array und in der Schleife angeben. Im Fall von Python werden alle Elemente einzeln abgerufen, indem einfach die Liste geworfen wird.
for.cpp
int ls[3] = {1, 2, 5};
for (int i = 0; i < sizeof ls / sizeof ls[0]; i++)
{
printf("%d\n", ls[i]);
}
for (int i = 0; i < 3; i++)
{
printf("%d\n", i);
}
for.py
ls = [1, 2, 5]
for i in ls:
print(i)
for i in range(3):
print(i)
1 2 5 0 1 2
while.cpp
int a = 0;
while(a < 3)
{
printf("%d", a);
a += 1;
}
while.py
a = 0
while a < 3:
print(a)
a += 1
0 1 2
Wenn Sie ein Argument variabler Länge erhalten, stellen Sie dem formalen Argument "" voran. Wenn Sie den Inhalt einer Liste oder eines Taples zu einem Argument erweitern und übergeben, fügen Sie vor dem eigentlichen Argument "" hinzu.
function.cpp
int Add(a, b)
{
c = a + b;
return c;
}
int Add3(int *c)
{
int d = 0;
d = c[0] + c[1] + c[2];
return d;
}
int main()
{
printf("%d\n", Add(1, 2));
const int e[3] = {1, 2, 3};
printf("%d\n", Add3(e));
}
function.py
def Add(a, b):
c = a + b
return c
def Add3(*c): #Empfangen Sie alle Argumente als variable Superargumente
d = c[0] + c[1] + c[2]
return d
def main():
print(Add(1, 2))
print(Add3(1, 2, 3))
e = (4, 5)
print(Add(*e)) #Es ist auch möglich, das Argument einer Liste oder eines Taples zu erweitern und zu übergeben
return
if __name__ == "__main__":
main()
classdefine.cpp
class Hoge
{
public:
int a;
Hoge(int a)
{
this->a = a;
}
void add(int b)
{
printf("%d\n", a + b);
}
void mutipl(int b)
{
printf("%d\n", a * b);
}
}
classdefine.py
class Hoge:
def __init__(self, a):
self.a = a
def add(self, b):
print(self.a + b)
def mutipl(self, b):
print(self.a * b)
In c ++ hat der Konstruktor den gleichen Namen wie die Klasse, aber in der "Klasse" von Python wird der Konstruktor durch "def __init __ (self, a):" dargestellt, und die Variablen in der Klasse werden im Konstruktor als "self.a" deklariert. Machen. Die Definition selbst kann von überall aus erfolgen. Greifen Sie über "self" auf die Instanzvariable zu, indem Sie "self", eine Referenz der Klasse selbst, an das Argument der Member-Funktion übergeben. Stellen Sie sicher, dass Sie sich selbst als Argument schreiben.
classcntrol.cpp
Hoge hoge(3);
hoge.add(4);
hoge.mutipl(4);
classcontrol.py
hoge = Hoge(3)
hoge.add(4)
hoge.mutipl(4)
Inheritance.cpp
class Fuga : public Hoge
{
public:
void subtract(int b)
{
printf("%d\n", a - b);
}
void divide(int b)
{
printf("%d\n", a / b);
}
}
Fuga fuga(3);
fuga.add(4);
fuga.mutipl(4);
fuga.subtract(4);
fuga.divide(4);
Inheritance.py
class Fuga(Hoge): #Erben Sie Hoge
def subtract(self, b):
print(self.a - b)
def divide(self, b):
print(self.a/b)
fuga = Fuga(3)
fuga.add(4)
fuga.mutipl(4)
fuga.subtract(4)
fuga.divide(4)
Dies macht Matrixoperationen sehr einfach. Erforderlich für maschinelles Lernen. Diese Person beschreibt die Verwendung im Detail. Weitere Informationen finden Sie hier.
Informationen zum Schreiben finden Sie in diesem Artikel.
In Python werden externe Bibliotheken als Objekte behandelt, aber Sie können sie durch "as" ersetzen, da das Schreiben langer Namen umständlich ist.
import numpy as np
pip3 install module_name
python3 file_name
anaconda
python file_name
Dateivorgänge sind mit Python ziemlich einfach. https://qiita.com/hiroyuki_mrp/items/8bbd9ab6c16601e87a9c
https://note.nkmk.me/python-import-usage/
Es ist immer noch nur ein kleiner Teil von Python, daher ist es eine gute Idee herauszufinden, ob es Funktionen gibt, an denen Sie interessiert sind.
Yukinaga Gazuma (Autor) "Erstes tiefes Lernen: Neuronales Netzwerk und Rückenausbreitung mit Python gelernt"
Recommended Posts