Aide-mémoire Python (pour les expérimentés C ++)

Objectif: les personnes qui ont appris le langage C «aiment» apprendre python (seules les notations et règles spécifiques à python sont décrites)

Cependant, comme il s'agit d'un aide-mémoire, il n'enseigne que l'existence de la fonction, et une explication détaillée n'est pas décrite dans un souci de bonne visibilité.

Règles à l'échelle de Python

-Chaque fois que vous appelez une fonction, un espace de noms est créé pour les variables locales de cette fonction et libéré lorsque vous quittez la fonction. -Tous passent par référence sauf pour l'attribution d'objets immuables -si et pour ne sont pas définis

##Définition des fonctions -nom de la fonction def(Argument 1,Argument 2,...) -Les arguments nommés permettent à l'ordre des arguments d'être arbitraire(C++Fonctionnalités introuvables dans)

Cependant, si un argument nommé apparaît lors de la lecture de la liste d'arguments de gauche à droite, les arguments suivants doivent être nommés.(Les arguments nommés sont justifiés à droite)。

-Valeur par défaut disponible pour l'argument(C++le même que.)

C en raison de la présence d'arguments nommés++Plus de valeur par défaut peut être définie(Parce que l'ordre des arguments est libre en fonction de l'argument nommé)

c++Doit avoir la valeur par défaut justifiée à droite

-Aucun fichier d'en-tête requis pour définir les fonctions

-Pas besoin de spécifier le type de retour dans la définition de la fonction(Aucune saisie requise)

##import (#Correspondant à inclure)

import sysDoit être fait en premier

Exemplesys.path.insert(0, new_path) Nom du module.nom de la classe.Nom de la fonction()

###Utilisez from pour charger les classes du module dans l'espace de noms global(Le nom du module peut être omis)

Exemple à partir du chemin d'importation sys à partir du nom du module importation du nom de la classe

Ainsi, lorsque vous souhaitez appeler toutes les classes d'un module depuis l'importation du nom du module*

Type de données

Type intégré

Nom du modèle une fonction Contenu spécifique
Bool Vrai ou faux True False ,0 ≠ vrai 0=faux
Valeur numérique Entier, fraction, complexe(la distribution est tronquée) 1, 1.0,
liste Arrangement qui peut stocker n'importe quel bujek(listeの要素にlisteも代入可) a_list = ['a', 'b', 'mpilgrim', 'z', 'example']
Taple Verrouillé afin qu'il ne puisse pas être changé dans la liste(もとのTapleが破壊的変更を受けるメンバ関数なし) a_tuple=('a', 'b', 'mpilgrim', 'z', 'example')
ensemble Liste non ordonnée, non dupliquée a_set ={'a', 'b', 'mpilgrim', 'z', 'example'}
dictionnaire(Ensemble à clé) Un ensemble de paires clé / valeur(Les clés peuvent être utilisées à la place des index dans les ensembles)La clé est unique a_dict = {'key1': 'value1', 'key2': 'value2'}
NoneType Types qui ne gèrent que null null est unique à NoneType

opérateur

opérateur une fonction commentaire
** Puissance

Opérations sur listes

une fonction Méthode commentaire
Accès aux éléments a[indesx] La limite est périodiquea[-1]Pointe vers le dernier élément
Tranche pour générer une sous-chaîne a[n:m] n<=i<m a[i]Est extrait sous forme de liste.a[:]Se réfère à tous les éléments
Ajouter un élément a.append(n) a.insert(n,m) append est ajouté à la fin, n est ajouté au mois,+Vous pouvez également combiner des listes avec
Ajouter un élément(Utiliser une liste) a.extend([list]) extend est ajouté à la fin, prenant un objet de liste comme argument
Supprimer l'élément del a[1] a.remove('Nom de l'élément') 位置で削除する方法と、具体的なNom de l'élémentで削除する方法

boucle

La boucle suivante est utile

for i,word in enumerate(['a','b','c']):
  print i,word

Résultat de sortie

0 a
1 b
2 c
for i in range(0,11,1) 

Lecture et écriture de fichiers

Les nombres ne peuvent pas être écrits directement en python (la lecture / écriture est une chaîne ou un binaire) Par conséquent, float (a) et str (a) sont nécessaires pour le traiter comme un nombre.

f = open('text.txt', 'r')
addressList = []
for line in f:
    name, zip, address = line[:-1].split('\t')
    print name, zip, address
	addressList.append(float(address))

Les nombres doivent être lancés pour flotter dès qu'ils sont lus

fermeture

Un clojures est une fonction dans laquelle une fonction définie en dehors de la portée globale stocke des informations sur la portée qui l'entoure "au moment de la définition". Fonctions requises en python pouvant définir des fonctions dans des fonctions

clojures.py


>>> def outer():
...     x = 2
...     def inner():
...         print x
...     return inner
>>> foo = outer()   #retour de fonction interne
>>> foo()
2	#Rappelez-vous 2 pas dans le cadre de la fonction inne

Cela peut être utilisé pour générer des fonctions personnalisées qui acceptent des arguments fixes.

Décorateur

Ajouter une fonction à une fonction (en utilisant le mécanisme qui prend la fonction d'origine comme argument, ajoute la fonction et réaffecte la fonction arrangée à la fonction d'origine) Peut être abrégé en utilisant @

Charger la fonction de sortie de journal à l'aide du décodeur.py


def logger(func):
     def inner(*args, **kwargs): #Créer une fonction avec des fonctions supplémentaires
         print "Arguments were: %s, %s" % (args, kwargs)
         return func(*args, **kwargs) #Toute fonction sous-jacente
     return inner
          
#Ajouter un enregistreur à la fonction foo
@logger
def foo(x, y):
     return x * y
#cette@logger def foo est foo=logger(foo)Syntaxe sucre

foo(2,3)
Arguments were: (2, 3), {}
6

Expression d'inclusion

La liste peut être générée comme suit. Créer une liste avec f (x) comme élément en utilisant x qui satisfait la condition P (x) parmi les éléments x contenus dans S Au fait, si peut être omis en option (le deuxième exemple est un générateur)

[f(x) for x in S if P(x)] 
max(x*x for x in [1,5,3] if x<3)

Tips

Faire un commentaire en japonais

# -*- coding: utf-8 -*-

Index de la valeur maximale dans la liste

>>> a = [2,3,4,3,4,4,4]
>>> b = [i for i,j in enumerate(a) if j == max(a)]
>>> b
[2, 4, 5, 6]

#Quand il y a un élément maximum
>>>a.index(max(a))

Génération de matrice (matrice vers matrice MxN)

    A = []
    for i in range(0,M+1):
            for j in range(0,N+1):
                tmp = i+j
                A.append(tmp)
    A = array(A).reshape(M,N)

Résoudre des équations linéaires

results_vector = np.linalg.solve(A_matrix,T_vector)

Graphique

import matplotlib.pyplot as plt


plt.plot( [1,2,3], '-')  #Ligne brisée
plt.plot( [1,2,3], '--') #Ligne brisée
plt.plot( [1,2,3], '-.') #Ligne brisée à point unique
plt.plot( [1,2,3], ':')  #ligne pointillée
plt.plot( [1,2,3], '.')  #point
plt.plot( [1,2,3], ',')  #Point
plt.plot( [1,2,3], 'o')  #Cercle
plt.plot( [1,2,3], 'v')  #Triangle vers le bas
plt.plot( [1,2,3], '^')  #Triangle vers le haut
plt.plot( [1,2,3], '<')  #Triangle pointant vers la gauche
plt.plot( [1,2,3], '>')  #Triangle pointant vers la droite
plt.plot( [1,2,3], 's')  #carré
plt.plot( [1,2,3], 'p')  #Pentagone
plt.plot( [1,2,3], 'h')  #Hexagone(Verticale)
plt.plot( [1,2,3], 'H')  #Hexagone(côté)
plt.plot( [1,2,3], '+')  #traverser
plt.plot( [1,2,3], 'x')  #X
plt.plot( [1,2,3], 'd')  #diamant
plt.plot( [1,2,3], 'D')  #carré(Diagonale)
plt.plot( [1,2,3], '|')  #Ligne verticale
plt.plot( [1,2,3], '_')  #ligne horizontale

#Technique de correspondance
plt.plot( [1,2,3], '-o')   #Ligne brisée+Cercle
plt.plot( [1,2,3], '--o')  #Ligne brisée+Cercle

plt.plot( [1,2,3], 'b') #Bleu
plt.plot( [1,2,3], 'g') #vert
plt.plot( [1,2,3], 'r') #rouge
plt.plot( [1,2,3], 'c') #cyan
plt.plot( [1,2,3], 'm') #Magenta
plt.plot( [1,2,3], 'y') #Jaune
plt.plot( [1,2,3], 'b') #noir
plt.plot( [1,2,3], 'w') #blanc

#Spécification simultanée avec la méthode de tracé
plt.plot( [1,2,3], '--b') #Ligne brisée+Bleu
plt.show() #dessin
plt.savefig("graph.png ") #sauvegarder

Examiner les types et les méthodes

print type(obj) #Moule
print dir(obj) #liste de méthodes

Recommended Posts

Aide-mémoire Python (pour les expérimentés C ++)
Fiche de triche AtCoder en python (pour moi-même)
Fiche technique PySpark [Python]
Feuille de triche de tri Python
[Mise à jour] Aide-mémoire de la syntaxe Python pour la boutique Java
[Python3] Entrée standard [Cheet sheet]
Fiche technique du didacticiel Python Django
Apache Beam Cheet Sheet [Python]
Conseils pour appeler Python à partir de C
Fiche technique de l'accès aux données Blender Python Mesh
Feuille de calcul du modélisateur d'optimisation mathématique (PuLP) (Python)
Fiche compatible avec le code R pour les utilisateurs de Python
Une introduction à Python pour les programmeurs en langage C
30/10/2016 else pour Python3> pour:
python [pour moi]
notes de python C ++
python, openFrameworks (c ++)
Aide-mémoire au curry
Aide-mémoire SQLite3
feuille de triche pyenv
Créer un tableau C à partir d'une feuille Python> Excel
Tutoriel Boost.NumPy pour l'extension de Python en C ++ (pratique)
Envelopper C ++ avec Cython pour une utilisation à partir de Python
À propos de Python for loop
[Pour la science des données] Aide-mémoire Oreore Jupyter [Jupyter Notebook / Lab]
feuille de triche de commande conda
Aide-mémoire PIL / Pillow
Bases de Python ② pour déclaration
Benchmarks langage C, Java, Python avec factorisation prime
À propos de Python, pour ~ (plage)
Aide-mémoire de l'API Spark
[Introduction à python] Introduction rapide à Python pour les programmeurs C ++ occupés
Manuel python pour les débutants
Refactoring des outils utilisables avec Python
Toolchain pour Python pour Android
Apprendre en profondeur à l'expérience avec Python Chapitre 2 (Matériel pour une conférence ronde)
API C en Python 3
ABC147 C --HonestOrUnkind2 [Python]
Feuilles de triche PDF basées sur Python
Paramètres de test des modules Python C ++ 11 avec Travis CI
OpenCV pour les débutants en Python
Installez Python (pour Windows)
[Python] pour une erreur d'instruction
Programmez avec votre smartphone n'importe où! (Recommandé pour le langage C / Python)
Maintenance de l'environnement Python pour les projets
Méthode de Newton en C ++, Python, Go (pour comprendre les objets de fonction)
Utilisez un langage de script pour une vie C ++ confortable-OpenCV-Port Python vers C ++ -
Étendre python en C ++ (Boost.NumPy)
feuille de triche de fichier de réglage tox
Mémo Python (pour moi): Array
Prise en charge de Fabric pour Python 3
Liste Python, pour instruction, dictionnaire
Python pour l'analyse des données Chapitre 4
Comparaison de vitesse de Python, Java, C ++
Flux d'apprentissage pour les débutants en Python
Procédure d'installation de Python 3.6 [pour Windows]