Wenn ich nach langer Zeit versuche, es zu benutzen, vergesse ich verschiedene Dinge, also habe ich ein Memo wie Bootcamp geschrieben. Unten finden Sie ein Beispiel für die Verwendung unter Ubuntu. Außerdem ist es Python 2-System, daher weiß ich es nicht.
Bereiten Sie zunächst Tools für die Installation verschiedener Python-Bibliotheken vor.
easy_install
$ sudo apt-get install python-setuptools
pip
$ sudo apt-get install python-pip
Wenn Sie eine Bibliothek benötigen, fügen Sie diese mit dem Befehl pip hinzu. (Beispiel: feedparser)
(Beispiel)
$ sudo pip install feedparser
Wenn über einen Proxy.
(Beispiel)
$ sudo pip install feedparser --proxy proxy.yourdomain.xx:8080
Ausführen einer Datei, die ein Skript beschreibt (z. B. my_python.py).
$ python my_python.py
Sie können allgemeine Regeln für Projekte erstellen, die Verknüpfung muss jedoch PEP8 entsprechen.
Es gibt auch einen Google Python Style Guide.
Wenn Sie sich schnell daran erinnern möchten, wie man es benutzt, reicht der Inhalt dieser Seite aus. Wenn Sie jedoch ernsthaft mit dem Programmieren beginnen möchten, ist es besser, die obigen Regeln zu lesen. (Wie bei der Notation können verschiedene Techniken hilfreich sein)
Nachfolgend sind nur die wichtigsten Punkte aufgeführt.
Mit 4 Feldern. (Verwenden Sie keine Tabulatoren)
Setzen Sie keine Leerzeichen in Klammern, eckige Klammern und gewellte Klammern.
# Yes:
spam(ham[1], {eggs: 2}, [])
# No:
spam( ham[ 1 ], { eggs: 2 }, [ ] )
Setzen Sie kein Leerzeichen vor das Komma, das Semikolon oder den Doppelpunkt. Fügen Sie nach dem Komma, dem Semikolon und dem Doppelpunkt ein anderes Leerzeichen als das Zeilenende ein.
# Yes:
if x == 4:
print x, y
x, y = y, x
# No:
if x == 4 :
print x , y
x , y = y , x
Fügen Sie vor dem Öffnen der Argumente, des Arrays, der Klammern am Anfang des Slice und der eckigen Klammer kein Leerzeichen ein.
# Yes:
spam(1)
dict['key'] = list[index]
# No:
spam (1)
dict ['key'] = list [index]
Begriffsoperatoren wie Zuweisung (=), Vergleich (==, <,>,! =, <>, <=,> =, In, nicht in, ist, ist nicht), Bewertung (und oder oder nicht) Setzen Sie auf beiden Seiten ein Leerzeichen. Die Leerzeichen auf beiden Seiten des arithmetischen Operators sind eine persönliche Beurteilung, setzen jedoch Leerzeichen auf beiden Seiten des Begriffsoperators.
# Yes:
x == 1
# No:
x<1
Fügen Sie für Schlüsselwortwerte oder Anfangswerte keine Leerzeichen auf beiden Seiten des Symbols "=" ein.
# Yes:
def complex(real, imag=0.0): return magic(r=real, i=imag)
# No:
def complex(real, imag = 0.0): return magic(r = real, i = imag)
Fügen Sie keine Leerzeichen ein, um aufeinanderfolgende Linien vertikal auszurichten, da dies die Wartbarkeit verringert. (:, #, = usw.):
# Yes:
foo = 1000 # comment
long_name = 2 # comment that should not be aligned
dictionary = {
"foo": 1,
"long_name": 2,
}
# No:
foo = 1000 # comment
long_name = 2 # comment that should not be aligned
dictionary = {
"foo" : 1,
"long_name": 2,
Art | intern | Extern |
---|---|---|
Paket | lower_with_under | |
Modul | lower_with_under | _lower_with_under |
Klasse | CapWords | _CapWords |
Ausnahme | CapWords | |
Funktion | lower_with_under() | _lower_with_under() |
global/Klassenkonstante | CAPS_WITH_UNDER | _CAPS_WITH_UNDER |
global/Klassenvariable | lower_with_under | _lower_with_under |
Instanzvariable | lower_with_under | _lower_with_under (protected) or __lower_with_under (private) |
Methodenname | lower_with_under() | _lower_with_under() (protected) or __lower_with_under() (private) |
Funktion/Methodenparameter | lower_with_under | |
Lokale Variablen | lower_with_under |
Hello World
print 'Hello World'
Super Grundlagen von Python. Block mit Einzug anstelle von {{}.
Stile wie C-Sprache
if (cond) {
...
}
else {
...
}
Python-Stil
if cond:
...
else:
...
Die Formatausgabe mit "% d" oder "% s" ist möglich.
ans = 100
print 'answer is %d' % ans
Wenn Sie mehrere Variablen behandeln, schließen Sie sie in ()
ein
count = 1
line = 'hogehoge'
print '%d: %s' % (count, line)
Die print-Anweisung wird automatisch unterbrochen, auch wenn Sie am Ende kein \ n
hinzufügen.
print 'My name is '
print 'John' #Ausgabe mit Zeilenumbrüchen
Um Zeilenumbrüche zu vermeiden, fügen Sie am Ende des Zeichenliterals ,
hinzu. Befestigen Sie es außerhalb des Literals, nicht innerhalb.
print 'My name is ', # ,Anziehen
print 'John' # My name is John.
Der Kommentartext steht nach #
# comment!
var = 10 # initial value
Es gibt keine auskommentierte Notation, die mehrere Zeilen umfasst. Es kann durch die Zeichenfolgen-Notation "" ersetzt werden. (Diese Beschreibungen werden beim Kompilieren ungültig.)
'''
xxxx
'''
class MyClass:
pass
Im Gegensatz zu Java usw. ist ;
am Ende der Zeile nicht erforderlich.
Stattdessen können Sie eine Zeile in einer Zeile nicht einfach unterbrechen.
NG
# NG
msg = 'I am not in Japan now.'
+ 'But I have been there.'
Sie können eine Zeile in der Mitte durchbrechen, indem Sie am Ende der Zeile \
hinzufügen.
OK
# OK
msg = 'I am not in Japan now.' \
+ 'But I have been there.'
Sie können eine Zeile im Satz von "()" oder "[]" unterbrechen. Außerdem kann die Einrückung nach dem Zeilenumbruch frei sein.
OK
my_method('My', 'Name',
'Is', 'Mike', 'Davis', '.')
def func():
v = [1, 2, 3,
4, 5, 6] #Grammatisch OK,Vermeiden Sie es, weil es schwer zu sehen ist.
Der Typ muss nicht in der Variablendeklaration angegeben werden. Numerische Werte, Zeichenfolgen und Arrays sind Objekte.
val = 10
msg = 'foo'
ary = [1, 2, 3]
c = MyClass()
Eine Form, die oft in anderen Sprachen gesehen wird. Zwischen den Elementen kann ein Zeilenumbruch eingefügt werden.
list = [
"Ichiro",
"Jiro",
"Saburo"]
Sie können nicht "|" oder "&" verwenden. Verwenden Sie stattdessen "und" und "oder".
if a == 1 and b == 2:
# do something
Verwenden Sie "True", "False".
if True:
print "Always True"
Verwenden Sie "Keine" anstelle von "Null".
if value is None:
# do something
Beachten Sie, dass sich die Notation von Java unterscheidet.
data = 100
value = 'even' if data % == 0 else 'odd'
Verwenden Sie "def". In Python sind Funktionen auch Objekte.
def func(value):
return value*2
Das Schreiben wie folgt erleichtert das Verständnis des Hauptprozesses.
def main():
# do something
...
if __name__ == "__main__":
main()
Verwenden Sie das sys-Modul.
argvs [0]
ist der Skriptname.
import sys
argvs = sys.argv
argc = len(argvs)
if (argc != 2):
print 'Usage: %s <file>' % argvs[0]
quit()
print 'param: %s' % argvs[1]
is
ist Identität (== in Java)
==
ist Gleichheit (equals () in Java)
Im Gegensatz zu Java sind alle Zahlen Objekte.
Bei dieser Nummer ist es etwas verwirrend.
a = 1
b = 1
if a is b:
print "a is b"
if a == b:
print "a == b"
Intuitiv sollte "a == b" nicht "a ist b" sein. Wenn das obige ausgeführt wird, wird auch "a ist b" ausgegeben.
"a is b"
"a == b"
Dies scheint auf die Wiederverwendung unveränderlicher Daten und die Effektivität des Caching zurückzuführen zu sein. Übrigens, wahrscheinlich weil der Compiler intelligent ist, wird er auch in den folgenden Fällen "a ist b" sein. (Natürlich a == b)
a = 1 + 3
b = 2 + 2
if a is b:
print "a is b"
Im Fall einer Zeichenfolge wird True mit "is" zurückgegeben, wenn es wie ein numerischer Wert wiederverwendet wird. Beachten Sie jedoch, dass "is" in einigen Fällen "False" ist, wenn es dynamisch generiert wird.
x = "X"
a = "XY"
b = x + "Y"
if a == b:
print "a == b"
if a is b:
print "a is b"
output
a == b
Übrigens können Sie die Funktion id ()
verwenden, um die Adresse des Objekts abzurufen.
Wenn sich is
anders verhält als erwartet, verwenden Sie es zum Debuggen.
a = "foo"
print "a at 0x%x" % id(a)
Ich vergesse das oft, aber ich benutze "elif".
if i % 15 == 0:
print 'FizzBuzz'
elif i % 3 == 0:
print 'Fizz'
elif i % 5 == 0:
print 'Buzz'
else:
print i
Es ist bequem, range ()
zu verwenden.
Das zweite Argument von "range ()" ist der Maximalwert, aber dieser Wert ist ** nicht enthalten **.
for i in range(0, 5):
print 'id = %d' % i
output
id = 0
id = 1
id = 2
id = 3
id = 4
Beim Start von der Mitte.
for i in range(2, 3):
print 'id = %d' % i
output
id = 2
Sie können den Schritt mit dem dritten Argument angeben. Auch in diesem Fall wird der Maximalwert des zweiten Arguments nicht überschritten.
for i in range(0, 10, 2):
print 'id = %d' % i
output
id = 0
id = 2
id = 4
id = 6
id = 8
Sie können auch ein Array angeben.
for i in [0, 2, 3]:
print 'id = %d' % i
for c in ['red', 'green', 'blue']:
print 'color = %s' % c
Sie können auch ein Teilarray angeben.
colors = ['red', 'green', 'blue']
for c in colors[1:]:
print 'color = %s' % c
output
color = green
color = blue
Es gibt eine Syntax für-else. Die else-Klausel wird ausgeführt, wenn die Schleifenverarbeitung von for abgeschlossen ist.
for i in range(0, 3):
print 'i = %d' % i
else:
print 'done'
output
i = 0
i = 1
i = 2
done
Wenn Sie in der Mitte brechen, wird die else-Klausel nicht ausgeführt.
for i in range(0, 3):
print 'i = %d' % i
if i == 1:
break
else:
print 'done' #Nicht ausgeführt
while-Anweisung. Sie können hier auch die else-Klausel verwenden.
i = 5
while 0 < i:
print 'id = %d' % i
i -= 1
else:
print 'done'
In '' '
einschließen.
val = '''this is a pen.
but it's not my favorite color.
I love red.
'''
Wenn Sie den Code einrücken und schreiben möchten, gibt es die folgenden Beschreibungsmethoden.
import textwrap
print textwrap.dedent('''\
AIUEO
Kakikukeko
SA Shi Su Se So.''')
Sie können Ausnahmen mit der Try-Except-finally-Syntax behandeln, ähnlich der Java-Try-Catch-finally-Syntax. In Python kann auch die else-Klausel angegeben werden, die ausgeführt wird, wenn der Prozess abgeschlossen ist, ohne dass beim Versuch eine Ausnahme auftritt.
try:
val = int("123") # no exception
print 'val = %d' % val
except ValueError:
raise
else:
print '>> else'
finally:
print '>> finally'
In diesem Fall tritt in der try-Klausel kein Fehler / keine Ausnahme auf, daher lautet die Ausgabe wie folgt.
output
val = 123
>> else
>> finally
Wagen Sie es, einen Fehler in der try-Klausel zu generieren.
try:
val = int("abc") # ValueError
print 'val = %d' % val
except ValueError:
# raise
pass
else:
print '>> else'
finally:
print '>> finally'
In diesem Fall lautet die Ausgabe:
output
>> finally
Zusätzlich können zusätzliche Fehler und Ausnahmen gemeinsam mit "()" angegeben werden.
try:
...
except (XXXError, YYYError, ZZZException):
...
Es kann wie folgt definiert werden. Mitgliedsvariablen müssen nicht einzeln deklariert werden. Das erste Argument "self" ist immer erforderlich und muss beim Aufruf nicht angegeben werden.
class ClassName:
def __init__(self, arg1, arg2):
self.member1 = arg1
self.member2 = arg2
def method(self, param1):
// logic
Instanziierung-> Anruf.
data = ClassName('nameA', 'nameB')
data.method('param1')
Im folgenden Beispiel ist kein Druck möglich.
val = 120
print "val + " val
Sie können es explizit mit "str ()" in einen String konvertieren.
printt "hoge=" + str(123)
Konvertieren Sie eine Zeichenfolge in eine Ganzzahl.
val = int("23")
Wenn keine Konvertierung möglich ist, tritt "ValueError" auf.
try:
v = int("abc")
except ValueError:
print 'ValueError occurs'
Geben Sie das zweite Argument von int () an.
value10 = int ('0xF6', 16)
Verwenden Sie es aus Gründen der Portabilität nicht.
import os
os.system('<command>')
(Beispiel)
os.system('grep TvC -R .')
Sie können das Ergebnis des Systembefehls als Zeichenfolge erhalten. Wenn es kein Ergebnis gibt, wird anscheinend ein leeres Zeichen anstelle von "Keine" zurückgegeben.
Dies ist auch portabel und wird nicht häufig verwendet.
import commands
r = commands.getoutput('<command>')
(Beispiel)
r = commands.getoutput('date')
Wenn --elif verwendet werden soll.
Numerische Typen können auch Objekte (unveränderlich) sein und nicht als "i ++" oder "--i" geschrieben werden. Verwenden Sie so etwas wie "i + = 1".
Recommended Posts