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.
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.
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
python 3.8.2 Ubuntu 18.04
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.
IDE ・ PyCharm ・ Spyder éditeur ・ Atome ・ Code VS
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 |
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
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
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.
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]
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()
Certaines fonctions principales ont été omises pour plus de clarté.
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)
c++.cpp
#include "hogohoge.h"
python.py
import hogehoge
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.
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)
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)
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")
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
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
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()
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.
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): #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)
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.
Veuillez vous référer à cet article pour savoir comment écrire.
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
pip3 install module_name
python3 file_name
anaconda
python file_name
Les opérations sur les fichiers sont assez faciles avec python. https://qiita.com/hiroyuki_mrp/items/8bbd9ab6c16601e87a9c
https://note.nkmk.me/python-import-usage/
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.
Yukinaga Gazuma (Auteur) "Premier apprentissage en profondeur: réseau neuronal et rétro-propagation appris avec Python"
Recommended Posts