[Introduction à python] Introduction rapide à Python pour les programmeurs C ++ occupés

Aperçu

Nous avons résumé les points pour ceux qui peuvent utiliser C ++ mais ne comprennent pas python pour acquérir la notation de programmation minimale qui permet un apprentissage automatique rapide. Si vous le savez, vous pouvez utiliser les fonctions minimales.

Avantages de Python

La bibliothèque étant étendue, vous pouvez facilement écrire du code compliqué en écrivant en C ++. La coopération Web est relativement simple. Il y a beaucoup d'informations sur le net.

Comment utiliser Python (exemple)

Les éléments suivants ont tous des bibliothèques. Maîtriser la bibliothèque signifie maîtriser python. ・ Apprentissage automatique ・ Grattage Web ・ Opération Excel ・ Prétraitement des données ・ Visualisez

Environnement de vérification

python 3.8.2 Ubuntu 18.04

Environnement

Dans le cas de Linux, python3 est inclus en standard, il n'est donc pas nécessaire de créer un environnement. Si vous souhaitez l'exécuter sur Anaconda, veuillez vous référer à ici. Cliquez ici pour une explication d'Anaconda (https://py-prog.com/whats-anaconda-and-its-merit-for-python-programming/) Anaconda facilite la création d'environnements virtuels. En python, qui installe beaucoup de paquets, vous voulez souvent changer d'environnement, donc si vous voulez l'utiliser sérieusement, Anaconda peut être indispensable.

Environnement de développement recommandé

IDE ・ PyCharm ・ Spyder éditeur ・ Atome ・ Code VS

Liste des différences entre C ++ et Python

C++ Python
Type de variable Oui Aucun
Affectation des variables copie Aiguille
Délimiteur de fonction {}Support central :Et indenté
Opérateur arithmétique C++En plus de**Ajoutez de la puissance
Opérateur logique &&,ll,! and,or,not
Pause de code ; nouvelle ligne
Aiguille Clair 不Clair
Commenter // #
Importer des bibliothèques externes #include import
compiler nécessaire Inutile
fonction principale Oui Aucun
Calcul matriciel(la norme) impossible Possible avec la bibliothèque numpy

Différence de type de variable

Puisque python est un langage typé dynamiquement, les types de variables qui sont courants en C ++ n'existent pas. Par conséquent, la variable est définie uniquement par le nom de la variable tel qu'il est. Le type est déterminé par la valeur attribuée.

a=1234 #Type entier
b=12.345 #Type à virgule flottante
c="hello world" #Type de chaîne
d=[1,2,3,4] #Type de liste

Aiguille

Il n'y a pas de pointeurs explicites en python. Au lieu de cela, l'affectation à la variable ** passe une référence plutôt qu'une copie, car la variable est à la fois un détenteur de valeur et un pointeur. ** ** Si vous modifiez la valeur de la destination de l'affectation, la valeur de la variable de la source d'affectation changera également, faites donc attention à la différence de traitement. (Pour la liste) Reportez-vous à ce qui suit https://qiita.com/maruman029/items/21ad04e326bb4fb6f71a

1 plage de codes

Dans le cas de C ++, 1 code est reconnu quel que soit le nombre de sauts de ligne effectués sans le délimiteur ;, mais dans le cas de python, le saut de ligne est un délimiteur clair.

Retrait

En python, le retrait indique la plage de portée. Par conséquent, même un caractère ne sera pas reconnu comme la même plage de code si le retrait n'est pas aligné. C'est un langage très indentable, donc le codage peut être difficile sans la fonction de formatage indent de l'éditeur. Par exemple, le code suivant entraînera une erreur d'indentation. Sachez que les indentations se déplacent souvent en boucles et provoquent des bogues.

a=1234 
b=12.345 
 c="hello world" #Pas dans la même gamme
d=[1,2,3,4] 

Variables globales

Les variables globales C ++ sont accessibles directement à partir de la fonction, mais dans le cas de python, elles ne peuvent pas être affectées à moins qu'elles ne soient déclarées localement comme «nom de variable globale» dans la fonction.

a = 123


def Global():
    global a
    a = 456
    print("global variable:", a)


Global()

Différence d'écriture

Certaines fonctions principales ont été omises pour plus de clarté.

Sortie standard

Puisque python est un saut de ligne automatique, vous n'avez pas besoin de \ n.

c.c


int a=123;
printf("%d\n",a);

python.py


a=123
print(a)

Importer des bibliothèques externes

c++.cpp


#include "hogohoge.h"

python.py


import hogehoge 

Tableau

En python, cela s'appelle une "liste". La zone de mémoire du tableau python est allouée dynamiquement, vous pouvez donc ajouter des éléments plus tard. Utilisez append () pour ajouter un élément. Soyez prudent car une erreur se produira si vous affectez avec ʻa [3] = 4` comme en C ++.

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)

En regardant le code python, je trouve ʻa.append (4) . Il s'agit d'une méthode de liste, une fonction utilisée lors de la manipulation de listes. python traite les variables et les bibliothèques externes comme une sorte d'objet, et vous pouvez accéder aux méthodes fournies par python avec . method`. Il existe diverses autres méthodes à insérer au milieu, donc ici sera utile.

Tableau invariant

Un tableau dont la valeur ne peut pas être modifiée ultérieurement. En c ++, il est déclaré const, mais dans le cas de pyton, il est appelé taple et est écrit différemment de la liste.

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]#Obtenir l'élément
print(b)

Étiquetage variable

python a une fonction appelée dictionnaire. C'est comme un tableau qui peut stocker des données avec une combinaison de clés et de valeurs. Vous pouvez l'appeler en spécifiant la clé. Par conséquent, la lisibilité est améliorée. Cela peut être plus facile à comprendre si vous l'imaginez comme quelque chose de similaire à l'énumération c ++.

python.py


lang={"c":1,"python":2,"ruby":3}#Créer un dictionnaire
print(lang["python"])

lang["ruby"]=4#Swap éléments
print(lang["ruby"])

lang["java"]=3 #Ajouter un élément
print(lang)

si déclaration

Contrairement à C ++, python n'a pas de délimiteurs tels que {}. Par conséquent, en ouvrant la ligne suivante de ʻif hogehoge: `par un onglet, * le retrait est modifié pour indiquer clairement qu'il s'agit du traitement de l'instruction if. Si vous amenez pirnt à l'extrémité gauche, il sera indenté de la même manière que l'instruction if, donc ce sera le processus exécuté à l'extérieur de if. Décalez également le retrait lors de l'imbrication.

c++.cpp


int a = 7;
int b = 12;
if (a <= 10 && b <= 10)
{
    printf("A et b valent 10 ou moins");
}
else if (a % 2 == 0)
{
    printf("c'est pair");
}
else
{
    printf("Ne remplit pas les conditions")
}

python.py


a = 7
b = 12
if a <= 10 and b <= 10:
    print("A et b valent 10 ou moins")
elif a % 2 == 0:
    print("c'est pair")
else:
    print("Ne remplit pas les conditions")

pour déclaration

Dans le cas de c ++, si vous souhaitez récupérer le contenu du tableau un par un, vous devez spécifier le nombre d'éléments dans le tableau et la boucle. Dans le cas de python, tous les éléments sont récupérés un par un simplement en lançant la liste.

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

déclaration while

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

une fonction

Lors de la réception d'un argument de longueur variable, préfixez l'argument formel avec «*». Lorsque vous développez le contenu d'une liste ou appuyez sur un argument et que vous le passez, ajoutez * avant l'argument réel.

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):  #Recevoir tous les arguments sous forme de super arguments variables
    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))  #Il est également possible de développer l'argument d'une liste ou de tapoter et de le passer
    return


if __name__ == "__main__":
    main()

classe

Définition de classe

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)

En c ++, le constructeur a le même nom que la classe, mais dans la "classe" python, le constructeur est représenté par def __init __ (self, a):, et les variables de la classe sont déclarées comme self.a dans le constructeur. Faire. La définition elle-même peut être faite de n'importe où. Accédez à la variable d'instance via "self" en passant "self", qui est une référence de la classe elle-même, à l'argument de la fonction membre. Assurez-vous de vous écrire comme argument.

Manipuler la classe

classcntrol.cpp


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

classcontrol.py


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

Héritage de classe

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): #Hériter de 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)

Bibliothèque phare de Python

Numpy (bibliothèque arithmétique matricielle)

Son utilisation rend les opérations matricielles très faciles. Requis pour l'apprentissage automatique. Cette personne décrit comment l'utiliser en détail, veuillez donc vous y référer.

Matplotlib (bibliothèque de dessins graphiques)

Veuillez vous référer à cet article pour savoir comment écrire.

Supplément

Remplacer le module d'importation

En python, les bibliothèques externes sont traitées comme des objets, mais vous pouvez les remplacer par ʻas` car l'écriture de noms longs est fastidieuse.

import numpy as np

Installation du module

pip3 install module_name

Exécuter le script Python

python3 file_name

anaconda

python file_name

Bibliothèque standard

Les opérations sur les fichiers sont assez faciles avec python. https://qiita.com/hiroyuki_mrp/items/8bbd9ab6c16601e87a9c

Importation de l'objet spécifié

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

finalement

Ce n'est encore qu'une petite partie de python, c'est donc une bonne idée de savoir s'il existe des fonctionnalités qui vous intéressent.

référence

Yukinaga Gazuma (Auteur) "Premier apprentissage en profondeur: réseau neuronal et rétro-propagation appris avec Python"

Recommended Posts

[Introduction à python] Introduction rapide à Python pour les programmeurs C ++ occupés
Une introduction à Python pour les programmeurs en langage C
Introduction à Python pour, pendant
Introduction à Protobuf-c (langage C ⇔ Python)
Premiers pas avec Python pour les non-ingénieurs
Utilisez un langage de script pour une vie C ++ confortable-OpenCV-Port Python vers C ++ -
Super Introduction Arithmétique Bit Python
[Introduction à Python] Comment utiliser l'opérateur in dans l'instruction for?
Une introduction à Python pour l'apprentissage automatique
[Introduction à Udemy Python3 + Application] 47. Traitez le dictionnaire avec une instruction for
Une introduction aux applications Web Python auto-conçues pour un ingénieur Web de troisième année paresseux
[Introduction à Python3, Jour 23] Chapitre 12 Devenir un Paisonista (12.1 à 12.6)
[Introduction à l'application Udemy Python3 +] 43. instruction for else
Introduction à la programmation (Python) TA Tendency pour les débutants
Comprendre le développement de Python pour Pepper. -Introduction à Python Box-
Introduction au langage Python
Introduction à OpenCV (python) - (2)
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Essayez de créer un module Python en langage C
Introduction à l'algèbre linéaire avec Python: Décomposition A = LU
[Introduction à Python] Comment écrire des instructions répétitives à l'aide d'instructions for
[Python] Comment appeler une fonction de c depuis python (édition ctypes)
Une route vers Python intermédiaire
Une super introduction à Linux
Introduction à la communication série [Python]
Python lancé par des programmeurs C
[Introduction à Python] <liste> [modifier le 22/02/2020]
Introduction à Python (version Python APG4b)
Une introduction à la programmation Python
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
[Introduction à l'application Udemy Python3 +] 42. pour instruction, instruction break et instruction continue
Expérimentez pour créer un PDF indépendant pour Kindle avec Python
Un moyen simple d'éviter plusieurs boucles for en Python
Comment définir plusieurs variables dans une instruction Python for
Comment créer un package Python (écrit pour un stagiaire)
Introduction à Python pour les utilisateurs de VBA - Appeler Python depuis Excel avec xlwings -
[Python] Introduction à la création de graphiques à l'aide de données de virus corona [Pour les débutants]
Orientation des objets Prolog pour les programmeurs Python
[Présentation de l'application Udemy Python3 +] 58. Lambda
[Présentation de l'application Udemy Python3 +] 31. Commentaire
Introduction à Pyblish, un cadre pour soutenir la construction de pipelines, première partie
Résoudre ABC163 A ~ C avec Python
Pour ajouter un module C à MicroPython ...
Introduction à la bibliothèque de calcul numérique Python NumPy
Une introduction à Mercurial pour les non-ingénieurs
Entraine toi! !! Introduction au type Python (conseils de type)
[Introduction à Python3 Jour 1] Programmation et Python
[Introduction à Python] Comment fractionner une chaîne de caractères avec la fonction split
[Introduction à Python] <numpy ndarray> [modifier le 22/02/2020]
[Présentation de l'application Udemy Python3 +] 57. Décorateur
Introduction à Python Hands On Partie 1
[Introduction à Python3 Jour 13] Chapitre 7 Chaînes de caractères (7.1-7.1.1.1)
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitre 10 Introduction à Cupy
[Introduction à Python] J'ai comparé les conventions de nommage de C # et Python.
[Introduction à Python] Comment analyser JSON
[Présentation de l'application Udemy Python3 +] 56. Clôture
De la création d'un environnement Python pour les personnes inexpérimentées à Hello world
[Introduction à Python3 Jour 14] Chapitre 7 Chaînes de caractères (7.1.1.1 à 7.1.1.4)