Démarrage rapide de Python

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.

Préparation

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

Courir

Exécution d'un fichier qui décrit un script (par exemple my_python.py).

$ python my_python.py

Style de codage

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.

Retrait

Avec 4 espaces. (N'utilisez pas d'onglets)

Vide

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,

appellation

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

codage

Hello World

print 'Hello World'

Gestion des blocs de code

Super bases de Python. Bloquer avec indentation au lieu de «{}».

Styles tels que le langage C


if (cond) {
    ...
}
else {
    ...
}

Style Python


if cond:
    ...
else:
    ...

format de relevé d'impression

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)

Gestion des sauts de ligne dans les instructions d'impression

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.

Texte du commentaire

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

Pause pause au milieu

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.

variable

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

Définition du tableau

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"]

Opération logique

Vous ne pouvez pas utiliser «|» ou «&». Utilisez ʻand et ʻor à la place.

if a == 1 and b == 2:
    # do something

Gestion des booléens

Utilisez «True», «False».

if True:
    print "Always True"

Traitement de null

Utilisez "None" au lieu de "null".

if value is None:
    # do something

Opérateur binaire

Notez que la notation est différente de Java.

data = 100
value = 'even' if data % == 0 else 'odd'

Définition des fonctions

Utilisez def. En python, les fonctions sont aussi des objets.

def func(value):
     return value*2

Comment écrire le processus principal

Ecrire comme suit facilite la compréhension du processus principal.

def main():
    # do something
    ...

if __name__ == "__main__":
    main()

Gérer les paramètres d'exécution

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]

est et ==

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

syntaxe if-else

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

instruction for / while

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'

Caractère littéral incluant les sauts de ligne (ici le style du document)

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

syntaxe try-except

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

Définition de classe simple

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

Convertir en chaîne

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)

Convertir en entier

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'

Convertir une chaîne hexadécimale en entier décimal

Spécifiez le deuxième argument de int ()

value10 = int ('0xF6', 16)

Exécution de la commande système

Pour la portabilité, ne l'utilisez pas.

import os
os.system('<command>')

(Exemple)


os.system('grep TvC -R .')

Recevoir le résultat d'une commande système

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

Notation non prise en charge

instruction switch

Si --elif doit être utilisé.

Opérateur d'incrément

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

Démarrage rapide de Python
Démarrer python
Python - Démarrage rapide de la journalisation
Commencez à utiliser Python
[Python] Commencez à étudier
Python
Commencez à Selenium en utilisant python
[Gimp] Lancez la création de scripts avec Python
Démarrer / arrêter GCE à partir de python
3 raisons pour lesquelles les débutants en programmation devraient commencer avec Python
Utilisation d'Azure CosmosDB à partir de Python (démarrage rapide de l'exploration)
table de référence rapide du format datetime python
"Python startbook" mémo compatible python3
python kafka
Les bases de Python ⑤
Résumé Python
Python intégré
Technique Python
Étudier Python
Compte à rebours Python 2.7
Mémorandum Python
astuces python
Début du grattage
fonction python ①
Les bases de Python
Mémo Python
ufo-> python (3)
Installer python
Python Singleton
Les bases de Python ④
Mémorandum Python 2
mémo python
Python Jinja2
Traduction japonaise de documents Apache Spark - Démarrage rapide
Incrément Python
atCoder 173 Python
[Python] fonction
Installation de Python
Installer Python 3.4.3.
Essayez Python
Match de début / fin dans l'expression régulière python
Itératif Python
Algorithme Python
Python2 + mot2vec
[Python] Variables
Fonctions Python
Python sys.intern ()
Tutoriel Python
Fraction Python
underbar python C'est ce que
Résumé Python
[Python] Trier
Remarque: Python
Les bases de Python ③
Sortie du journal python
Les bases de Python
[Scraping] Scraping Python
Mise à jour Python (2.6-> 2.7)
mémo python