Quand j'essaie de l'utiliser après un long moment, j'oublie diverses choses, alors j'ai écrit un mémo comme Bootcamp. Vous trouverez ci-dessous un exemple de son utilisation sur Ubuntu. En plus, c'est le système Python 2, donc je ne sais pas.
Tout d'abord, préparez les outils pour installer diverses bibliothèques Python.
easy_install
$ sudo apt-get install python-setuptools
pip
$ sudo apt-get install python-pip
Si vous avez besoin d'une bibliothèque, ajoutez-la avec la commande pip. (Exemple: feedparser)
(Exemple)
$ sudo pip install feedparser
Lorsque via un proxy.
(Exemple)
$ sudo pip install feedparser --proxy proxy.yourdomain.xx:8080
Exécution d'un fichier qui décrit un script (par exemple my_python.py).
$ python my_python.py
Vous pouvez créer des règles communes pour les projets, mais le raccourci est de se conformer à PEP8.
Il existe également un guide de style Google Python.
Si vous voulez vous rappeler rapidement comment l'utiliser, le contenu de cette page vous aidera, mais si vous voulez commencer à programmer sérieusement, il est préférable de lire les règles ci-dessus. (Comme pour la notation, diverses techniques peuvent être utiles)
Vous trouverez ci-dessous les principaux points.
Avec 4 espaces. (N'utilisez pas d'onglets)
Ne mettez pas d'espaces entre parenthèses, crochets et crochets ondulés.
# Yes:
spam(ham[1], {eggs: 2}, [])
# No:
spam( ham[ 1 ], { eggs: 2 }, [ ] )
Ne mettez pas d'espace avant la virgule, le point-virgule ou le deux-points. Insérez un espace après la virgule, le point-virgule et deux-points autre que la fin de la ligne.
# Yes:
if x == 4:
print x, y
x, y = y, x
# No:
if x == 4 :
print x , y
x , y = y , x
N'insérez aucun espace avant d'ouvrir les arguments, le tableau, les parenthèses au début de la tranche et le crochet.
# Yes:
spam(1)
dict['key'] = list[index]
# No:
spam (1)
dict ['key'] = list [index]
Opérateurs de termes tels que affectation (=), comparaison (==, <,> ,! =, <>, <=,> =, In, not in, is, is not), évaluation (et, ou, pas) Mettez un espace des deux côtés de. Les blancs des deux côtés de l'opérateur arithmétique sont un jugement personnel, mais mettent des caractères vides des deux côtés du terme opérateur.
# Yes:
x == 1
# No:
x<1
Ne placez pas d'espaces de chaque côté du symbole «=» pour les valeurs de mots clés ou les valeurs initiales.
# 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)
N'insérez pas de blancs pour aligner des lignes consécutives verticalement, car cela réduirait la maintenabilité. (:, #, =, etc.):
# 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,
type | interne | Externe |
---|---|---|
paquet | lower_with_under | |
module | lower_with_under | _lower_with_under |
classe | CapWords | _CapWords |
exception | CapWords | |
une fonction | lower_with_under() | _lower_with_under() |
global/Constante de classe | CAPS_WITH_UNDER | _CAPS_WITH_UNDER |
global/Variable de classe | lower_with_under | _lower_with_under |
Variable d'instance | lower_with_under | _lower_with_under (protected) or __lower_with_under (private) |
Nom de la méthode | lower_with_under() | _lower_with_under() (protected) or __lower_with_under() (private) |
une fonction/Paramètres de méthode | lower_with_under | |
Variables locales | lower_with_under |
Hello World
print 'Hello World'
Super bases de Python. Bloquer avec indentation au lieu de «{}».
Styles tels que le langage C
if (cond) {
...
}
else {
...
}
Style Python
if cond:
...
else:
...
Formater la sortie en utilisant «% d» ou «% s» est possible.
ans = 100
print 'answer is %d' % ans
Lorsque vous manipulez plusieurs variables, mettez-les entre ()
count = 1
line = 'hogehoge'
print '%d: %s' % (count, line)
L'instruction d'impression est automatiquement interrompue même si vous n'ajoutez pas \ n
à la fin.
print 'My name is '
print 'John' #Sortie avec sauts de ligne
Pour éviter les sauts de ligne, ajoutez ,
à la fin du littéral de caractère. Attachez-le à l'extérieur du littéral, pas à l'intérieur.
print 'My name is ', # ,Mettez
print 'John' # My name is John.
Le texte du commentaire est après «#»
# comment!
var = 10 # initial value
Il n'y a pas de notation de commentaire sur plusieurs lignes. Il peut être remplacé en utilisant la notation de chaîne de caractères `` '' ''. (Ces descriptions sont invalidées au moment de la compilation)
'''
xxxx
'''
class MyClass:
pass
Contrairement à Java etc., ;
à la fin de la ligne n'est pas nécessaire.
Au lieu de cela, vous ne pouvez pas facilement couper une ligne dans une ligne.
NG
# NG
msg = 'I am not in Japan now.'
+ 'But I have been there.'
Vous pouvez couper une ligne au milieu en ajoutant \
à la fin de la ligne.
OK
# OK
msg = 'I am not in Japan now.' \
+ 'But I have been there.'
Vous pouvez couper une ligne dans la phrase entre «()» ou «[]». De plus, l'indentation après le saut de ligne peut être libre.
OK
my_method('My', 'Name',
'Is', 'Mike', 'Davis', '.')
def func():
v = [1, 2, 3,
4, 5, 6] #Grammaticalement OK,Évitez-le car il est difficile à voir.
Pas besoin de spécifier le type dans la déclaration de variable. Les valeurs numériques, les chaînes de caractères et les tableaux sont tous des objets.
val = 10
msg = 'foo'
ary = [1, 2, 3]
c = MyClass()
Une forme qui est souvent vue dans d'autres langues. Un saut de ligne peut être inséré entre les éléments.
list = [
"Ichiro",
"Jiro",
"Saburo"]
Vous ne pouvez pas utiliser «|» ou «&».
Utilisez ʻand et ʻor
à la place.
if a == 1 and b == 2:
# do something
Utilisez «True», «False».
if True:
print "Always True"
Utilisez "None" au lieu de "null".
if value is None:
# do something
Notez que la notation est différente de Java.
data = 100
value = 'even' if data % == 0 else 'odd'
Utilisez def
.
En python, les fonctions sont aussi des objets.
def func(value):
return value*2
Ecrire comme suit facilite la compréhension du processus principal.
def main():
# do something
...
if __name__ == "__main__":
main()
Utilisez le module sys. ʻArgvs [0] `est le nom du script.
import sys
argvs = sys.argv
argc = len(argvs)
if (argc != 2):
print 'Usage: %s <file>' % argvs[0]
quit()
print 'param: %s' % argvs[1]
ʻIsest l'identité (== en Java)
==` est l'égalité (equals () en Java)
De plus, contrairement à Java, tous les nombres sont des objets.
Dans le cas de ce nombre, c'est un peu déroutant.
a = 1
b = 1
if a is b:
print "a is b"
if a == b:
print "a == b"
Intuitivement, "a == b" ne doit pas être "a is b", Lorsque ce qui précède est exécuté, "a is b" est également émis.
"a is b"
"a == b"
Cela semble être dû à la réutilisation de données immuables et à l'efficacité de la mise en cache. Au fait, probablement parce que le compilateur est intelligent, ce sera "a is b" même dans les cas suivants. (Bien sûr a == b)
a = 1 + 3
b = 2 + 2
if a is b:
print "a is b"
Dans le cas d'une chaîne de caractères, True est renvoyé avec ʻis quand il est réutilisé comme une valeur numérique. Cependant, notez que ʻis
peut être faux s'il est généré dynamiquement.
x = "X"
a = "XY"
b = x + "Y"
if a == b:
print "a == b"
if a is b:
print "a is b"
output
a == b
Au fait, vous pouvez utiliser la fonction ʻid () pour obtenir l'adresse de l'objet. Si ʻis
se comporte différemment que prévu, utilisez-le à des fins de débogage.
a = "foo"
print "a at 0x%x" % id(a)
J'oublie souvent cela, mais j'utilise «elif».
if i % 15 == 0:
print 'FizzBuzz'
elif i % 3 == 0:
print 'Fizz'
elif i % 5 == 0:
print 'Buzz'
else:
print i
Il est pratique d'utiliser range ()
.
Le deuxième argument de range ()
est la valeur maximale, mais cette valeur n'est ** pas incluse **.
for i in range(0, 5):
print 'id = %d' % i
output
id = 0
id = 1
id = 2
id = 3
id = 4
En partant du milieu.
for i in range(2, 3):
print 'id = %d' % i
output
id = 2
Vous pouvez spécifier l'étape avec le troisième argument. Dans ce cas également, la valeur maximale du deuxième argument n'est pas dépassée.
for i in range(0, 10, 2):
print 'id = %d' % i
output
id = 0
id = 2
id = 4
id = 6
id = 8
Vous pouvez également spécifier un tableau.
for i in [0, 2, 3]:
print 'id = %d' % i
for c in ['red', 'green', 'blue']:
print 'color = %s' % c
Vous pouvez également spécifier un tableau partiel.
colors = ['red', 'green', 'blue']
for c in colors[1:]:
print 'color = %s' % c
output
color = green
color = blue
Il existe une syntaxe pour-else. La clause else est exécutée lorsque le traitement en boucle de for est terminé.
for i in range(0, 3):
print 'i = %d' % i
else:
print 'done'
output
i = 0
i = 1
i = 2
done
Si vous coupez au milieu, la clause else ne sera pas exécutée.
for i in range(0, 3):
print 'i = %d' % i
if i == 1:
break
else:
print 'done' #Non exécuté
instruction while. Vous pouvez également utiliser la clause else ici.
i = 5
while 0 < i:
print 'id = %d' % i
i -= 1
else:
print 'done'
Insérez dans `` '' ''.
val = '''this is a pen.
but it's not my favorite color.
I love red.
'''
Si vous souhaitez mettre en retrait et écrire dans le code, il existe les méthodes de description suivantes.
import textwrap
print textwrap.dedent('''\
AIUEO
Kakikukeko
SA Shi Su Se So''')
Vous pouvez gérer les exceptions avec la syntaxe try-except-finally, similaire à la syntaxe try-catch-finally de Java. De plus, en Python, la clause else peut être spécifiée et elle est exécutée lorsque le processus est terminé sans l'occurrence d'une exception dans try.
try:
val = int("123") # no exception
print 'val = %d' % val
except ValueError:
raise
else:
print '>> else'
finally:
print '>> finally'
Dans ce cas, Erreur / Exception ne se produit pas dans la clause try, donc la sortie est la suivante.
output
val = 123
>> else
>> finally
Osez générer une erreur dans la clause try.
try:
val = int("abc") # ValueError
print 'val = %d' % val
except ValueError:
# raise
pass
else:
print '>> else'
finally:
print '>> finally'
Dans ce cas, la sortie sera:
output
>> finally
De plus, des erreurs et exceptions supplémentaires peuvent être spécifiées collectivement avec ()
.
try:
...
except (XXXError, YYYError, ZZZException):
...
Il peut être défini comme suit. Les variables membres ne doivent pas être déclarées une par une. Le premier argument «self» est toujours requis et n'a pas besoin d'être spécifié lors de l'appel.
class ClassName:
def __init__(self, arg1, arg2):
self.member1 = arg1
self.member2 = arg2
def method(self, param1):
// logic
Instanciation-> Appel.
data = ClassName('nameA', 'nameB')
data.method('param1')
Dans l'exemple suivant, l'impression n'est pas possible.
val = 120
print "val + " val
Vous pouvez le convertir explicitement en chaîne avec str ()
.
printt "hoge=" + str(123)
Convertit une chaîne en entier.
val = int("23")
Si la conversion n'est pas possible, «ValueError» se produit.
try:
v = int("abc")
except ValueError:
print 'ValueError occurs'
Spécifiez le deuxième argument de int ()
value10 = int ('0xF6', 16)
Pour la portabilité, ne l'utilisez pas.
import os
os.system('<command>')
(Exemple)
os.system('grep TvC -R .')
Vous pouvez recevoir le résultat de la commande système sous forme de chaîne de caractères. Lorsqu'il n'y a pas de résultat, il semble qu'un caractère vide soit renvoyé au lieu de None.
Ceci est également portable et ne sera pas utilisé de manière intensive.
import commands
r = commands.getoutput('<command>')
(Exemple)
r = commands.getoutput('date')
Si --elif doit être utilisé.
Les types numériques peuvent également être des objets (immuables) et ne peuvent pas être écrits sous la forme «i ++» ou «--i». Utilisez ʻi + = 1` et ainsi de suite.
Recommended Posts