Python-Spickzettel (für C ++ erfahren)

Zweck: Personen, die die C-Sprache gelernt haben, "genießen" das Erlernen von Python (es werden nur pythonspezifische Notationen und Regeln beschrieben).

Da es sich jedoch um einen Spickzettel handelt, wird nur die Existenz der Funktion gelehrt, und eine detaillierte Erklärung wird aus Gründen der guten Sichtbarkeit nicht beschrieben.

Python-weite Regeln

-Jedes Mal, wenn Sie eine Funktion aufrufen, wird ein Namespace für die lokalen Variablen in dieser Funktion erstellt und beim Beenden der Funktion freigegeben. -Alle werden mit Ausnahme der Zuordnung unveränderlicher Objekte als Referenz übergeben -ob und für sind nicht Umfang

##Funktionsdefinition -def Funktionsname(Argument 1,Argument 2,...) -Mit benannten Argumenten kann die Reihenfolge der Argumente beliebig sein(C++Funktionen nicht gefunden in)

Wenn jedoch beim Lesen der Argumentliste von links nach rechts ein benanntes Argument angezeigt wird, müssen die nachfolgenden Argumente benannt werden.(Benannte Argumente sind richtig gerechtfertigt)。

-Standardwert für Argument verfügbar(C++gleich wie.)

C aufgrund des Vorhandenseins benannter Argumente++Es kann ein weiterer Standardwert festgelegt werden(Weil die Reihenfolge der Argumente abhängig vom genannten Argument frei ist)

c++Muss den Standardwert rechtsbündig haben

-Keine Header-Datei erforderlich, um Funktionen zu definieren

-Der Rückgabetyp muss nicht in der Funktionsdefinition angegeben werden(Keine Eingabe erforderlich)

##import (#Entsprechend enthalten)

import sysMuss zuerst gemacht werden

Beispielsys.path.insert(0, new_path) Modulname.Name der Klasse.Funktionsname()

###Verwenden Sie from, um die Klassen im Modul in den globalen Namespace zu laden(Der Modulname kann weggelassen werden)

Beispiel `` `aus dem sys-Importpfad aus Modulname Importklassenname

Wenn Sie also alle Klassen in einem Modul aufrufen möchten vom Modulnamenimport*

Datentyp

Eingebauter Typ

Modellname Funktion Spezifische Inhalte
Bool Richtig oder falsch True False ,0 ≠ wahr 0=falsch
Numerischer Wert Ganzzahl, Bruch, komplex(Besetzung ist abgeschnitten) 1, 1.0,
aufführen Anordnung, die jeden Bujek speichern kann(aufführenの要素にaufführenも代入可) a_list = ['a', 'b', 'mpilgrim', 'z', 'example']
Taple Gesperrt, damit es nicht in die Liste geändert werden kann(もとのTapleが破壊的変更を受けるメンバ関数なし) a_tuple=('a', 'b', 'mpilgrim', 'z', 'example')
einstellen Ungeordnete, nicht doppelte Liste a_set ={'a', 'b', 'mpilgrim', 'z', 'example'}
Wörterbuch(Schlüsselsatz) Eine Reihe von Schlüssel / Wert-Paaren(Schlüssel können anstelle von Indizes in Sätzen verwendet werden)Der Schlüssel ist einzigartig a_dict = {'key1': 'value1', 'key2': 'value2'}
NoneType Typen, die nur null verarbeiten null ist für NoneType eindeutig

Operator

Operator Funktion Kommentar
** Leistung

Operationen auf Listen

Funktion Methode Kommentar
Zugriff auf Elemente a[indesx] Die Grenze ist periodischa[-1]Zeigt auf das letzte Element
Slice, um eine Unterspalte zu generieren a[n:m] n<=i<m a[i]Wird als Liste extrahiert.a[:]Bezieht sich auf alle Elemente
Element hinzufügen a.append(n) a.insert(n,m) append wird am Ende hinzugefügt, n wird am mth hinzugefügt,+Sie können Listen auch mit kombinieren
Element hinzufügen(Verwenden einer Liste) a.extend([list]) Am Ende wird verlängern hinzugefügt, wobei ein Listenobjekt als Argument verwendet wird
Element löschen del a[1] a.remove('Elementname') 位置で削除する方法と、具体的なElementnameで削除する方法

Schleife

Die folgende Schleife ist nützlich

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

Ausgabeergebnis

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

Dateien lesen und schreiben

Zahlen können nicht direkt in Python geschrieben werden (Lesen / Schreiben ist eine Zeichenfolge oder eine Binärdatei). Daher sind float (a) und str (a) erforderlich, um es als Zahl zu behandeln.

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

Zahlen sollten so gesetzt werden, dass sie schweben, sobald sie gelesen werden

Schließung

Eine Clojures ist eine Funktion, bei der eine außerhalb des globalen Bereichs definierte Funktion Informationen zum Bereich umgibt, der sie "zum Zeitpunkt der Definition" umgibt. In Python erforderliche Funktionen, die Funktionen in Funktionen definieren können

clojures.py


>>> def outer():
...     x = 2
...     def inner():
...         print x
...     return inner
>>> foo = outer()   #innere Funktion kehrt zurück
>>> foo()
2	#Denken Sie daran, dass 2 nicht im Bereich der inne-Funktion liegt

Dies kann verwendet werden, um benutzerdefinierte Funktionen zu generieren, die feste Argumente annehmen.

Dekorateur

Hinzufügen einer Funktion zu einer Funktion (unter Verwendung des Mechanismus, der die ursprüngliche Funktion als Argument verwendet, die Funktion hinzufügt und die angeordnete Funktion der ursprünglichen Funktion neu zuweist) Kann mit @ abgekürzt werden

Laden Sie die Funktion, um das Protokoll mit dem Decoder auszugeben.py


def logger(func):
     def inner(*args, **kwargs): #Erstellen Sie eine Funktion mit hinzugefügten Funktionen
         print "Arguments were: %s, %s" % (args, kwargs)
         return func(*args, **kwargs) #Jede zugrunde liegende Funktion
     return inner
          
#Logger zur foo-Funktion hinzufügen
@logger
def foo(x, y):
     return x * y
#Dies@logger def foo ist foo=logger(foo)Syntax Zucker

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

Einschlussausdruck

Die Liste kann wie folgt erstellt werden. Erstellen Sie mit x eine Liste mit f (x) als Element, die die Bedingung P (x) unter den in S enthaltenen Elementen x erfüllt Übrigens, wenn als Option weggelassen werden kann (das zweite Beispiel ist ein Generator)

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

Tips

Machen Sie einen Kommentar auf Japanisch

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

Index des Maximalwerts in der 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]

#Wenn es ein maximales Element gibt
>>>a.index(max(a))

Matrixerzeugung (Array zu MxN-Matrix)

    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)

Löse lineare Gleichungen

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

Graph

import matplotlib.pyplot as plt


plt.plot( [1,2,3], '-')  #Gestrichelten Linie
plt.plot( [1,2,3], '--') #Gestrichelten Linie
plt.plot( [1,2,3], '-.') #Einzelpunkt unterbrochene Linie
plt.plot( [1,2,3], ':')  #gepunktete Linie
plt.plot( [1,2,3], '.')  #Punkt
plt.plot( [1,2,3], ',')  #Punkt
plt.plot( [1,2,3], 'o')  #Kreis
plt.plot( [1,2,3], 'v')  #Abwärtsdreieck
plt.plot( [1,2,3], '^')  #Dreieck nach oben
plt.plot( [1,2,3], '<')  #Nach links zeigendes Dreieck
plt.plot( [1,2,3], '>')  #Nach rechts zeigendes Dreieck
plt.plot( [1,2,3], 's')  #Quadrat
plt.plot( [1,2,3], 'p')  #Pentagon
plt.plot( [1,2,3], 'h')  #Hexagon(Vertikal)
plt.plot( [1,2,3], 'H')  #Hexagon(Seite)
plt.plot( [1,2,3], '+')  #Kreuz
plt.plot( [1,2,3], 'x')  #X.
plt.plot( [1,2,3], 'd')  #Diamant
plt.plot( [1,2,3], 'D')  #Quadrat(Diagonale)
plt.plot( [1,2,3], '|')  #Vertikale Linie
plt.plot( [1,2,3], '_')  #horizontale Linie

#Matching-Technik
plt.plot( [1,2,3], '-o')   #Gestrichelten Linie+Kreis
plt.plot( [1,2,3], '--o')  #Gestrichelten Linie+Kreis

plt.plot( [1,2,3], 'b') #Blau
plt.plot( [1,2,3], 'g') #Grün
plt.plot( [1,2,3], 'r') #rot
plt.plot( [1,2,3], 'c') #Cyan
plt.plot( [1,2,3], 'm') #Magenta
plt.plot( [1,2,3], 'y') #Gelb
plt.plot( [1,2,3], 'b') #schwarz
plt.plot( [1,2,3], 'w') #Weiß

#Gleichzeitige Spezifikation mit Plotmethode
plt.plot( [1,2,3], '--b') #Gestrichelten Linie+Blau
plt.show() #Zeichnung
plt.savefig("graph.png ") #sparen

Untersuchen Sie Arten und Methoden

print type(obj) #Schimmel
print dir(obj) #Methodenliste

Recommended Posts

Python-Spickzettel (für C ++ erfahren)
AtCoder Spickzettel in Python (für mich)
PySpark Cheet Sheet [Python]
Python-Spickzettel
[Aktualisierung] Python Syntax Spickzettel für Java Shop
[Python3] Standardeingabe [Cheet Sheet]
Python Django Tutorial Cheet Sheet
Apache Beam Cheet Sheet [Python]
Tipps zum Aufrufen von Python von C.
Blender Python Mesh Datenzugriffsprüfblatt
Cheet Sheet (Python) des Mathematical Optimization Modeler (PuLP)
R-Code-kompatibles Blatt für Python-Benutzer
Eine Einführung in Python für C-Sprachprogrammierer
2016-10-30 sonst für Python3> für:
Python [für mich]
Python C ++ Notizen
Python, openFrameworks (c ++)
Curry Spickzettel
SQLite3 Spickzettel
pyenv Spickzettel
Erstellen Sie ein C-Array aus einer Python> Excel-Tabelle
Boost.NumPy Tutorial zum Erweitern von Python in C ++ (Übung)
Wrap C ++ mit Cython zur Verwendung von Python
Über Python für Schleife
[Für die Datenwissenschaft] Oreore Jupyter Spickzettel [Jupyter Notebook / Lab]
conda Befehl Spickzettel
PIL / Kissen Spickzettel
Python-Grundlagen ② für Anweisung
C-Sprache, Java, Python-Benchmarks mit Primfaktorisierung
Über Python für ~ (Bereich)
Spark API Spickzettel
[Einführung in Python] Hochgeschwindigkeits-Einführung in Python für vielbeschäftigte C ++ - Programmierer
Python Lehrbuch für Anfänger
Refactoring-Tools, die mit Python verwendet werden können
Toolchain für Python für Android
Tiefes Lernen mit Python Kapitel 2 (Material für runde Vorlesung)
C-API in Python 3
ABC147 C --HonestOrUnkind2 [Python]
Python-basierte PDF-Spickzettel
Einstellungen zum Testen von C ++ 11 Python-Modulen mit Travis CI
OpenCV für Python-Anfänger
Installieren Sie Python (für Windows)
[Python] für Anweisungsfehler
Programmieren Sie überall mit Ihrem Smartphone! (Empfohlen für C-Sprache / Python)
Wartung der Python-Umgebung für Projekte
Newtons Methode in C ++, Python, Go (zum Verständnis von Funktionsobjekten)
Verwenden Sie eine Skriptsprache für ein komfortables C ++ - Leben - OpenCV-Port Python zu C ++ -
Erweitern Sie Python in C ++ (Boost.NumPy)
Tox Einstellungsdatei Spickzettel
Python-Memo (für mich): Array
Fabric unterstützt Python 3
Python-Liste, für Anweisung, Wörterbuch
Python für die Datenanalyse Kapitel 4
Geschwindigkeitsvergleich von Python, Java, C ++
Lernablauf für Python-Anfänger
Installationsverfahren für Python 3.6 [für Windows]