J'ai commencé Python

introduction

Décrit la méthode d'écriture de base de Python. La version est 3.4.3.

commentaire

Les commentaires commencent par "#".

#Ceci est un commentaire

Valeur numérique

Il existe des entiers, des nombres à virgule flottante et des nombres complexes.

#Quatre règles
2 + 3 # 5
2 - 3 # -1
2 * 3 # 6

#La division entière sera un nombre à virgule flottante
2 / 3 # 0.6666666666666666

# //La partie entière après division peut être extraite par calcul
3 // 2 # 1

# **C'est une puissance
2 ** 10 #1024 2 à la 10e puissance

#Nombre complexe
(1+1j) + (2+2j) # (3+3j)L'unité imaginaire est j, 1 de 1j ne peut pas être omis
c = 1 + 2j
c.real #1.0 Partie réelle
c.imag #2.0 partie imaginaire

sequence

Une structure de données dans laquelle les éléments sont classés par ordre numérique. Chaque élément est accessible avec un index entier à partir de 0.

La structure de données suivante est la séquence.

Prenons List comme exemple pour expliquer la séquence.

l = [1,2,3]
l[0]        #1 élément 0 index commence par 0
l[2]        #3 élément 2
l[-1]       #L'indice 3 élément 3 peut être négatif
len(l)      #Nombre de 3 éléments
max(l)      #3 valeur maximale
min(l)      #1 valeur minimale
l.count(1)  #1 Nombre d'apparitions
1 in l      #Si l'élément True est inclus
3 in l      # False 
1 not in l  #L'élément faux n'est pas inclus ou est inversé

#Renvoie une liste avec une plage
l[:]        # [1,2,3]Renvoie tous les éléments sous forme de liste
l[1:2]      # [2]     a:a à b au format b-Renvoie les éléments jusqu'à 1 dans la liste
l[0:]       # [1,2,3] a:Renvoie une liste d'éléments de a à la fin au format
l[:2]       # [1,2]   :b depuis le début au format b-Renvoie les éléments jusqu'à 1 dans la liste

Chaîne

Une séquence dont l'élément est un caractère. Vous ne pouvez pas modifier l'élément.

s = "string" #La chaîne de caractères est"Sortir
s = 'string' # 'Mais d'accord

#Vous pouvez accéder aux caractères avec l'index entier
s[0] # 's'

#L'élément ne peut pas être modifié
s[0] = "S" #Erreur

#Chaîne multiligne" or 'Je vais assembler 3 pièces
'''
Plusieurs lignes
Chaîne
'''

#Connecter des chaînes
"a" + "b" # 'ab'

#Répétez la chaîne
"a" * 2 # 'aa'

#Diviser la chaîne
"1,2".split(",") # ['1', '2']Liste des retours

#Combiner des chaînes
",".join(["1","2"]) # '1,2'

#Convertit une chaîne en nombre
int("0x10", 16) #16 Le deuxième argument est la base
int("10")       #10 Si le deuxième argument est omis, la base est traitée comme 10.
int("10", 2)   # 2
float("1.2")    # 1.2

#Convertir des nombres en chaînes
"dec:{0},hex:{0:X},bin:{0:b}".format(16) # 'dec:16,hex:10,bin:10000'
"{0:.2f}".format(3.1415) # '3.14'

list Une séquence qui peut avoir des données arbitraires comme élément. Vous pouvez changer l'élément.

l = [1,2,3] # ,Séparation,"[]"Sortir
l[0]        #1 élément 0 index commence par 0
l[2]        #3 élément 2
l[-1]       #L'indice 3 élément 3 peut être négatif

#Ajouter un élément à la fin
ll = l + [4] # ll = [1,2,3,4]Ajouter un élément(+)
l.append(4)  # l  = [1,2,3,4]Ajouter un élément(append)

#Extraire l'élément de la fin
l = [1,2,3]
l.pop #3 Résultat l= [1,2]

#Renvoie l'itération de l'élément
l = [2]
l * 2  # [2,2]

#Vous pouvez utiliser la notation d'inclusion pour initialiser la liste
# []Écrivez l'instruction for dans
l = [x for x in range(10)] # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

#Liste multidimensionnelle
#2D:queue
m = [[row for row in range(2)] for col in range(3)] # [[0, 1], [0, 1], [0, 1]]
#3D
m = [[[row for row in range(2)] for col in range(3)] for mat in range(4)]

tuple Une séquence qui peut avoir des données arbitraires comme élément. ** Vous ne pouvez pas modifier l'élément. C'est la différence avec List. ** **

t = (1,2,3) # ,Séparation,"()"Sortir
t[0] = 10   #Erreur, l'élément ne peut pas être modifié

range Une séquence qui peut utiliser une valeur numérique comme élément. Vous ne pouvez pas modifier l'élément. Utilisé en combinaison avec l'instruction for.

# range(x)À 0~x-Représente 1
# 0~9 s'affiche
for i in range(10):
	print(i)
	

# range(x, y)Avec x~y-Représente 1
# 1~9 s'affiche
for i in range(1, 10):
	print(i)
	

# range(x, y, step)Avec x,x+step, x+2*step, ... (y-Jusqu'à 1)Représente.
# 1,3,5,7,Représente 9.
for i in range(1, 10, 2):
	print(i)
	

Déclaration de contrôle

if Les conditions de comparaison peuvent être spécifiées au format ʻaaa <x <bbb. Vous pouvez utiliser les opérations ʻin et ʻis`.

# if .. elif .. else
x = 1
if x == 1:
	print("x == 1")
elif x == 2:
	print("x == 2")
else:
	print("else")
# result : x == 1

# < x <Calcul
x = 5
if 1 < x < 6:
	print("True")
else:
	print("False")
# result : True

#en arithmétique
if 0 in [1, 2, 3]:
	print("True")
else:
	print("False")
# result : False

#pas en arithmétique
if 0 not in [1, 2, 3]:
	print("True")
else:
	print("False")
# result : True

#est l'opération, détermine s'il s'agit du même objet
if [1] is [1]:
	print("True")
else:
	print("False")
# result : False

l = [1,2,3]
ll = l
if l is ll:
	print("True")
else:
	print("False")
# result : True

for break / continue est le même que les autres langues. le reste est caractéristique. else est exécuté lorsque l'instruction for est exécutée jusqu'à la fin. Lorsqu'il s'arrête à la pause, else n'est pas exécuté.

# range
for i in range(10):
	print(i)
# result : 0~10

# list
for i in [1, 2, 3]:
	print(i)
# result : 1~3

# else/break
#Vous pouvez en attacher autre.
#Sinon est exécuté lorsque for est exécuté jusqu'à la fin.
#Il ne sera pas exécuté lorsqu'il se cassera.
for i in [1, 2, 3]:
	print(i)
	if i == 2:
		break
else:
	print("else")
# result : 1~2,sinon n'est pas affiché

while Comme pour, vous pouvez en ajouter.

i = 0
while i < 10:
	print(i)
	if i == 1:
		break
	i = i + 1
else:
	print("else")
# result : 0~1

une fonction

Vous pouvez appeler une fonction en spécifiant un nom d'argument tel que f (x = 10, y = 20). Il est plus facile à lire et vous pouvez modifier l'ordre des arguments.

#Définir une fonction qui renvoie la valeur totale
def sum(l):
	val = 0
	for i in l:
		val = val + i
	return val
	
print(sum([1, 2, 3]))
# result : 6

#Vous pouvez spécifier l'argument par défaut
def add(x=10, y=20):
	return x + y
	
print(add())
# result : 30

#Vous pouvez l'appeler en spécifiant le nom de l'argument et vous pouvez modifier l'ordre des arguments.
def sub(x, y):
	return x - y
	
print(sub(y=20, x=10))
# result : -10

module

Un fichier contenant des classes et des fonctions est appelé un module. L'extension est .py. Le nom du module est le nom du fichier à l'exclusion de .py. Il est pratique d'organiser les fonctions fréquemment utilisées dans un module afin qu'elles puissent être réutilisées.

#Importez le module avec import.
import numpy as np #Définir l'alias avec comme
a = np.array([1,2,3]) #Faire référence à un membre du module avec l'alias np

#Lors du référencement d'un membre de module lors de l'importation simple
#Nom du module(ou alias)Modifié avec(e.g. np.array)besoin de le faire.
#Vous pouvez omettre la modification en utilisant de.
from numpy import array
a = array([1,2,3]) #OK sans np

# *Il est également possible de tout spécifier avec
from numpy import *

classe

La définition d'une classe crée un objet de classe correspondant. Le nom du constructeur est «init». Se prend comme argument. self est un mot clé pour référencer votre propre objet.

Les objets de classe incluent

Les variables et méthodes ont une portée publique et privée. Préfixez le nom avec «__» pour le rendre privé. Les objets privés ne sont pas accessibles depuis l'extérieur de la classe.

#Définir une classe
class Test:
    #Variable de classe
    i   = "pub class var" #Publique
    __i = "prv class var" #privé
    
    #Méthode d'instance
    def method(self):
        print("pub inst method")
    
    def __method(self):
        print("prv inst method")
        
    #Méthode de classe
    @classmethod
    def cls_meth(cls):
        print("cls_meth")
    
    #Méthode statique
    @staticmethod
    def stat_meth():
        print("stat_meth")
    
    #constructeur
    def __init__(self):
        #Variable d'instance
        self.j   = "pub inst var" #Publique
        self.__j = "prv inst var" #privé
        
        print("__init__")
        #Publique
        print(Test.i)   #Classe de variable classe.format de nom
        print(self.i)   #Variable de classe obj.format de nom
        print(self.j)   #Variable d'instance obj.format de nom
        self.method()   #Méthode
        
        #privé
        print(self.__i) #Classe de variable classe.format de nom
        print(self.__j) #Variable d'instance obj.format de nom
        self.__method() #Méthode

#Créer une instance
t1 = Test()
t2 = Test()

#Parcourir les variables
print(Test.i) #1 classe variable classe.format de nom
print(t1.i)   #1 variable de classe obj.format de nom
print(t1.j)   #2 Variable d'instance obj.format de nom

#Des variables de classe et des variables d'instance avec le même nom peuvent être définies
#C'est une source de confusion, alors ne l'utilisez pas comme ça.
t1.i = 10
print(t1.i)   # 10 obj.La priorité est donnée pour obtenir le nom. La variable de classe i ne peut pas être référencée à partir de t1
print(Test.i) # 3
print(t2.i)   # 3

#Ajout de variable dynamique
t1.x = 10    #Vous pouvez ajouter des variables d'instance de manière dynamique.
print(t1.x)  # 10
del t1.x     #Effacer
Test.x = 20   #Vous pouvez ajouter des variables de classe de manière dynamique.
print(Test.x) # 20
del Test.x    #Effacer

#Appelez la méthode
t1.method()
#t1.__method() #Erreur

#Appel de méthode de classe
Test.cls_meth()

#Appel de méthode statique
Test.stat_meth()

Héritage

En écrivant class Child (Parent) dans la définition de classe Vous pouvez définir une classe Child qui hérite de Parent.

Les membres privés de la classe parent ne sont pas accessibles à partir de la classe enfant. Vous pouvez remplacer les méthodes de la classe parent de la classe enfant. Pour définir les variables d'instance de la classe parent, dans le constructeur de la classe enfant Vous devez appeler le constructeur de la classe parent.

#Définir la classe parent
class Parent:
    i   = "pub class var"
    __i = "prv class var"

    def __init__(self):
        self.j   = "pub inst var"
        self.__j = "prv inst var"

    def meth(self):
        print("pub inst meth")
        print(self.i)
        print(self.__i)
        self.__meth()

    def meth2(self):
        print("pub inst meth2")
        print(self.j)
        print(self.__j)

    def meth3(self):
        print("pub inst meth3")

    def __meth(self):
        print("prv inst meth")

#Définir une classe enfant
class Child(Parent):
    def __init__(self):
        #Appelez le constructeur de la classe parent
        #Sans cela, la variable d'instance de la classe parente ne sera pas définie
        #Meth2 de la classe enfant entraînera une erreur
        Parent.__init__(self) 

    #passer outre
    def meth3(self):
        print("child pub inst meth3")

    def meth4(self):
        self.__meth()

#Créer une instance
p = Parent()
p.meth()
p.meth2()
p.meth3()
c = Child()
c.meth() 
c.meth2() 
c.meth3() #La classe enfant meth3 est appelée
#c.meth4()
#Entraînera une erreur
#La classe enfant ne peut pas accéder aux méthodes privées de la classe parent

exception

try:
	int("xxx") #Une exception se produit car il ne s'agit pas d'une valeur numérique
except OSError:
	print("OSError")
except ValueError:
	print("ValueError")
# resutl : ValueError

#S'il n'y a pas d'exceptions, else sera exécuté
try:
	int("10")
except OSError:
	print("OSError")
except ValueError:
	print("ValueError")
else:
	print("NoError")
# resutl : NoError

#S'exécute enfin avec ou sans exceptions
try:
	int("xxx")
except OSError:
	print("OSError")
except ValueError:
	print("ValueError")
finally:
	print("Finally")
# resutl : ValueError Finally

Fichier

#Vous pouvez utiliser avec pour fermer correctement même si une exception se produit
with open("tmp.txt", "a") as f:
	f.write("test\n")

#Vous pouvez utiliser l'instruction for pour gérer toutes les lignes
with open("tmp.txt", "r") as f:
	for ln in f:
		print(ln)

Arguments de ligne de commande

Les arguments de ligne de commande vont dans sys.argv. sys.argv [0] est le nom du script. sys.argv [1] est le premier argument.

test.py


import sys
print(sys.argv)
>python test.py param1 param2
['test.py', 'param1', 'param2']

Expressions régulières

import re

ln = "<tag>1234</tag>"
#Définissez une expression régulière.()Vous pouvez grouper avec.
r = re.compile("<tag>(.+)</tag>")
#Chercher.
m = r.search(ln)
#S'il n'y a pas de correspondance, m sera Aucun
print(m.group(0)) #Toute la chaîne correspondante"<tag>1234</tag>"
print(m.group(1)) # ()La chaîne de caractères regroupée par est renvoyée."1234"

Recommended Posts

J'ai commencé Python
a commencé python
J'ai commencé Docker
Django 1.11 a démarré avec Python3.6
1.1 Premiers pas avec Python
J'ai commencé à analyser
J'ai essayé Python> autopep8
Premiers pas avec Python
Réapprendre Python (algorithme I)
Premiers pas avec Python
J'ai essayé Python> décorateur
Pourquoi j'ai choisi Python
J'ai comparé Python more-itertools 2.5 → 2.6
J'ai commencé l'apprentissage automatique avec le prétraitement des données Python
J'ai essayé fp-growth avec python
J'ai essayé de gratter avec Python
Introduction aux fonctions Python
J'ai écrit python en japonais
curl -I python une doublure
Python
J'ai essayé de démarrer avec le script python de blender_Part 01
J'ai fait un blackjack avec du python!
J'ai commencé PYNQ (2) -Overlay self-made-
J'ai comparé Java et Python!
Premiers pas avec Python Django (4)
J'ai essayé de démarrer avec le script python de blender_Partie 02
5 raisons pour lesquelles je suis entré dans Python
Premiers pas avec Python Django (3)
J'ai essayé l'extension C de Python
Python lancé par des programmeurs C
J'ai fait un texte Python
Introduction à Python Django (6)
Commencez avec Python! ~ ② Grammaire ~
J'ai exécuté python sur Windows
J'ai essayé gRPC avec Python
J'ai essayé de gratter avec du python
Je comprends Python en japonais!
J'ai fait un blackjack avec Python.
Ce que j'ai appris en Python
J'ai appris la grammaire de base de Python
Les liaisons Python IfcOpenShell commencent
J'ai créé wordcloud avec Python.
Premiers pas avec Python Django (5)
J'ai téléchargé la source python
[Python] Poésie que j'ai commencé & Impression que j'ai passé de Pipenv à la poésie
J'ai commencé l'apprentissage automatique avec le clustering Python, la compression et la visualisation de dimensions
[Python3] Liste des sites auxquels j'ai fait référence lorsque j'ai lancé Python
Premiers pas avec Python responder v2
J'ai commencé, mais ça ne démarre pas!
Commencez avec Python! ~ ① Construction de l'environnement ~
Lien pour commencer avec python
J'ai fait un Line-bot avec Python!
J'ai essayé de toucher Python (installation)
pyenv-vertualenv n'installe pas correctement la série python3
Premiers pas avec les applications Web Python
J'ai vérifié la construction de l'environnement Mac Python
J'ai essayé webScraping avec python.
Je ne me souviens pas des expressions régulières Python