[Einführung in Python] Hochgeschwindigkeits-Einführung in Python für vielbeschäftigte C ++ - Programmierer

Überblick

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.

Vorteile von Python

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.

Verwendung von Python (Beispiel)

Die folgenden haben alle Bibliotheken. Das Beherrschen der Bibliothek bedeutet das Beherrschen von Python. · Maschinelles Lernen ・ Web Scraping ・ Excel-Betrieb ・ Datenvorverarbeitung ・ Visualisieren

Überprüfungsumgebung

python 3.8.2 Ubuntu 18.04

Umgebung

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.

Empfohlene Entwicklungsumgebung

IDE ・ PyCharm ・ Spyder Editor ・ Atom ・ VS-Code

Liste der Unterschiede zwischen C ++ und Python

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

Unterschied im Variablentyp

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

Zeiger

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

1 Codebereich

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.

Einzug

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] 

Globale Variablen

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()

Unterschied schriftlich

Einige Hauptfunktionen wurden aus Gründen der Übersichtlichkeit weggelassen.

Standardausgabe

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)

Externe Bibliotheken importieren

c++.cpp


#include "hogohoge.h"

python.py


import hogehoge 

Array

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.

Invariantes Array

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)

Variable Kennzeichnung

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)

if-Anweisung

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")

zur Aussage

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-Anweisung

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

Funktion

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()

Klasse

Klassendefinition

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.

Die Klasse manipulieren

classcntrol.cpp


Hoge hoge(3);
hoge.add(4);
hoge.mutipl(4);

classcontrol.py


hoge = Hoge(3)
hoge.add(4)
hoge.mutipl(4)

Klassenvererbung

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)

Pythons Flaggschiff-Bibliothek

Numpy (Matrixarithmetikbibliothek)

Dies macht Matrixoperationen sehr einfach. Erforderlich für maschinelles Lernen. Diese Person beschreibt die Verwendung im Detail. Weitere Informationen finden Sie hier.

Matplotlib (Grafikzeichnungsbibliothek)

Informationen zum Schreiben finden Sie in diesem Artikel.

Ergänzung

Importmodul ersetzen

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

Modulinstallation

pip3 install module_name

Führen Sie das Python-Skript aus

python3 file_name

anaconda

python file_name

Standardbibliothek

Dateivorgänge sind mit Python ziemlich einfach. https://qiita.com/hiroyuki_mrp/items/8bbd9ab6c16601e87a9c

Objekt angegebener Import

https://note.nkmk.me/python-import-usage/

Schließlich

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.

Referenz

Yukinaga Gazuma (Autor) "Erstes tiefes Lernen: Neuronales Netzwerk und Rückenausbreitung mit Python gelernt"

Recommended Posts

[Einführung in Python] Hochgeschwindigkeits-Einführung in Python für vielbeschäftigte C ++ - Programmierer
Eine Einführung in Python für C-Sprachprogrammierer
Einführung in Python For, While
Einführung in Protobuf-c (C-Sprache ⇔ Python)
Erste Schritte mit Python für Nicht-Ingenieure
Verwenden Sie eine Skriptsprache für ein komfortables C ++ - Leben - OpenCV-Port Python zu C ++ -
Python Bit Arithmetic Super Einführung
[Einführung in Python] Wie verwende ich den Operator in in der for-Anweisung?
Eine Einführung in Python für maschinelles Lernen
[Einführung in die Udemy Python3 + -Anwendung] 47. Verarbeiten Sie das Wörterbuch mit einer for-Anweisung
Eine Einführung in selbst erstellte Python-Webanwendungen für einen trägen Webingenieur im dritten Jahr
[Einführung in Python3, Tag 23] Kapitel 12 Werden Sie Paisonista (12.1 bis 12.6)
[Einführung in die Udemy Python3 + -Anwendung] 43. for else-Anweisung
Einführung in die Programmierung (Python) TA Tendenz für Anfänger
Grundlegendes zur Python for Pepper-Entwicklung. -Einführung in Python Box-
Einführung in die Python-Sprache
Einführung in OpenCV (Python) - (2)
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
Versuchen Sie, ein Python-Modul in C-Sprache zu erstellen
Einführung in die lineare Algebra mit Python: A = LU-Zerlegung
[Einführung in Python] So schreiben Sie sich wiederholende Anweisungen mit for-Anweisungen
[Python] So rufen Sie eine Funktion von c aus Python auf (ctypes edition)
Ein Weg zum mittleren Python
Eine super Einführung in Linux
Einführung in die serielle Kommunikation [Python]
Python wurde von C-Programmierern gestartet
[Einführung in Python] <Liste> [Bearbeiten: 22.02.2020]
Einführung in Python (Python-Version APG4b)
Eine Einführung in die Python-Programmierung
~ Tipps für Python-Anfänger mit Liebe von Pythonista ③ ~
[Einführung in die Udemy Python3 + -Anwendung] 42. für Anweisung, break-Anweisung und continue-Anweisung
Experimentieren Sie mit Python, um ein PDF für Selbstversorger für Kindle zu erstellen
Eine einfache Möglichkeit, mehrere for-Schleifen in Python zu vermeiden
So definieren Sie mehrere Variablen in einer Python for-Anweisung
Wie erstelle ich ein Python-Paket (geschrieben für Praktikanten)
Einführung in Python für VBA-Benutzer - Aufrufen von Python aus Excel mit xlwings-
[Python] Einführung in die Diagrammerstellung mit Corona-Virendaten [Für Anfänger]
Prolog-Objektorientierung für Python-Programmierer
[Einführung in die Udemy Python3 + -Anwendung] 58. Lambda
[Einführung in die Udemy Python3 + -Anwendung] 31. Kommentar
Einführung in Pyblish, ein Framework zur Unterstützung des Pipelinebaus Teil 1 Übersicht
Löse ABC163 A ~ C mit Python
So fügen Sie MicroPython ein C-Modul hinzu ...
Einführung in die Python Numerical Calculation Library NumPy
Eine Einführung in Mercurial für Nicht-Ingenieure
Trainieren! !! Einführung in Python Type (Type Hints)
[Einführung in Python3 Tag 1] Programmierung und Python
[Einführung in Python] So teilen Sie eine Zeichenfolge mit der Funktion split
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 8 Einführung in Numpy
[Einführung in Python] <numpy ndarray> [edit: 2020/02/22]
[Einführung in die Udemy Python3 + -Anwendung] 57. Decorator
Einführung in Python Hands On Teil 1
[Einführung in Python3 Tag 13] Kapitel 7 Zeichenfolgen (7.1-7.1.1.1)
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 10 Einführung in Cupy
[Einführung in Python] Ich habe die Namenskonventionen von C # und Python verglichen.
[Einführung in Python] So analysieren Sie JSON
[Einführung in die Udemy Python3 + -Anwendung] 56. Abschluss
Vom Aufbau einer Python-Umgebung für unerfahrene Personen bis zur Hello-Welt
[Einführung in Python3 Tag 14] Kapitel 7 Zeichenfolgen (7.1.1.1 bis 7.1.1.4)