[Pour les débutants] Apprenez la grammaire de base Python gratuitement en 5 heures!

introduction

Cet article provient de Python [Apprentissage graphique] d'AI Academy (https://aiacademy.jp/texts/#grammar) et de Introduction à la programmation Python. Il s'agit d'une modification partielle basée sur le contenu. En lisant cet article, vous apprendrez les bases de la grammaire de base de Python. Si vous avez terminé l'apprentissage de Python, veuillez également utiliser AI Academy où vous pouvez apprendre l'IA et l'apprentissage automatique gratuitement (seuls certains contenus sont payants, mais presque tous les contenus de base sont gratuits). ..

Pourquoi Python?

** AI Academy traite du contenu d'apprentissage centré sur le domaine de l'intelligence artificielle (IA), et Python gère facilement l'apprentissage automatique et l'apprentissage profond dans le domaine de l'intelligence artificielle. Parce que vous pouvez. ** ** De plus, dans l'article Les meilleurs langages de programmation 2018, le revenu annuel du programmeur était le plus élevé.

La citation d'image des meilleurs langages de programmation 2018 ** En plus de la technologie d'intelligence artificielle, Python peut être largement développé pour le développement Web et des outils d'automatisation d'entreprise pratiques, et en apprenant Python, vous serez en mesure de faire un large éventail de choses dans un seul langage. ** ** De plus, ** la programmation Python elle-même est simple, hautement lisible et facile à apprendre **, elle est donc fortement recommandée. Bien sûr, commençons par la grammaire de base de Python à AI Academy et apprenons le développement Web et l'apprentissage automatique!

Construction de l'environnement Python

Ce chapitre se concentre sur l'apprentissage rapide de la grammaire de base de Python. Si vous souhaitez écrire un programme rapidement, veuillez utiliser Google Colaboratory, qui vous permet de programmer Python sans créer d'environnement Python dans votre navigateur.

Si vous utilisez Google Colaboratory, vous n'avez pas besoin de créer d'environnement. En outre, ce texte traite de la série Python 3. Si vous souhaitez créer un environnement dans lequel Python peut s'exécuter sur votre PC, lisez le texte [Build Python Environment](? Id = 2).

Quel est le langage de programmation Python?

Langage de programmation Python est un ** langage de programmation polyvalent ** développé par le Néerlandais Guido van Rossum en 1991. ** L'un des avantages de Python est qu'il peut être écrit simplement avec moins de code. ** ** Python est un langage utilisé dans le monde entier tel que Google et DropBox.

Ce que vous pouvez faire avec Python

Ce qui suit est un aperçu approximatif.

  1. liée à l'intelligence artificielle (reconnaissance d'image, traitement du langage naturel, reconnaissance vocale etc.)
  2. Apprentissage automatique / analyse statistique
  3. Développement d'applications Web / de services Web
  4. Production d'applications de bureau (tkinter, etc.)
  5. Programme d'efficacité commerciale
  6. Grattage Web
  7. IoT
  8. Contrôle du robot
  9. Programmation de la cybersécurité des réseaux
  10. Développement de jeux

Les applications pour smartphone, etc. ne sont pas répertoriées car Python n'est pas très approprié. Si vous développez une application pour smartphone (application iOS ou Android), l'application iOS est Swift (iOS), Pour les applications Android, vous devez apprendre Java et Kotlin. Pour les applications 3D et AR / VR, vous devez utiliser Unity (C #, etc.). Ces dernières années, il existe également un framework JavaScript pour les applications mobiles développé par Facebook appelé React Native. Si vous êtes intéressé par le contenu ci-dessus, veuillez le vérifier par vous-même. (Les compétences à rechercher sont très utiles en programmation.)

Différence entre les séries Python 2 et 3

Il y a quelques changements, tels que l'instruction d'impression changée en fonction print () et le type long étant aboli et traité comme un type int. La série Python2 sera fin du support en 2020, il est donc préférable de choisir la série Python3 si vous partez de maintenant.

PEP8

PEP8 est une norme de codage Python. J'espère que vous le lirez chaque fois que vous commencerez à programmer avec Python. PEP8

commentaire

Vous pouvez écrire des commentaires dans le code. En écrivant "#" au début de la ligne, il est considéré comme un commentaire jusqu'à la fin de la ligne. ** En écrivant un commentaire, tout est ignoré lorsque le code est exécuté, vous pouvez donc l'utiliser comme mémo sur le code. ** ** Dans la plupart des entreprises, plusieurs personnes créent une application. Par conséquent, ** Il est important de laisser des commentaires régulièrement afin que les autres puissent lire facilement le code. ** ** Autant que possible, nous vous recommandons de prendre l'habitude d'écrire des commentaires dans le programme afin que d'autres puissent le lire facilement.


#Cette ligne est un commentaire. Cette ligne ne sera pas exécutée.

print("Hello, Python") 

#Cette ligne est un commentaire. Cette ligne ne sera pas exécutée.
#Cette ligne est un commentaire. Cette ligne ne sera pas exécutée.

De plus, si vous avez la capacité disponible, veuillez exécuter le programme ci-dessus et vérifiez que la description commentée ne s'affiche pas.

Qu'est-ce qu'une chaîne de caractères?

Les chaînes de caractères entre guillemets doubles "" "ou guillemets simples" '"sont appelées" chaînes de caractères "dans le monde de la programmation. ** La chaîne doit être placée entre guillemets simples "'" ou guillemets doubles "" ". ** ** Dans Python3, le résultat de sortie est le même quel que soit celui que vous entourez. De plus, lors de la sortie d'une chaîne de caractères, si elle n'est pas entourée de "'" ou "" ", le code ne fonctionnera pas. Si vous avez la capacité disponible, essayez d'émettre une erreur (Syntax Errror) pour empêcher le code de fonctionner. Ici, si vous ne le mettez pas entre "'" ou "" ", une erreur se produira et vous pourrez mieux le comprendre si vous confirmez que cela ne fonctionne pas.

Différence entre guillemets simples "'" et guillemets doubles "" ", utilisation correcte

Valeur numérique

En programmation, vous pouvez également gérer des «valeurs numériques». Contrairement aux chaînes, il n'est pas nécessaire de le mettre entre guillemets. ** Veuillez noter que si vous mettez un nombre entre guillemets ou guillemets doubles, il deviendra une chaîne de caractères. ** ** Les détails seront expliqués en détail dans le chapitre suivant, "Variables et types de données". En outre, en utilisant des symboles tels que "+", "-", "/" et "%", vous pourrez effectuer des opérations à quatre règles. Pouvoir exécuter quatre règles permet de créer un programme similaire à une calculatrice.

print(10) #Les nombres n'ont pas besoin d'être mis entre guillemets.
print(10 + 5) #Ajouter
print(5 - 2)  #Tirant
print(10 / 2)   #Rupture
print(10 % 5)   #Cherchant trop

#Changer de priorité
#Normalement+Quand-que*Ou/A une priorité plus élevée,()で囲むこQuandで優先度を変えるこQuandができます。
print((20 - 5) // 3)  # 5 

Maintenant, exécutons le programme ci-dessus. Du haut jusqu'en bas

python


10
15
3
5.0
0

Ce n'est pas grave si vous pouvez confirmer la sortie. Ensuite, j'expliquerai le fait que le résultat de la division en sortie est un point décimal. Pour Python2, par exemple, 10/2 vaut 5, alors que Ce sera 5,0 pour 3 séries. C'est parce que le 2ème système est tronqué, alors que le 3ème ne l'est pas. Si vous souhaitez tronquer en 3 séries comme 2 séries, vous pouvez le faire avec print (10 // 2).

Différence entre chaîne de caractères et valeur numérique

Maintenant, que faire si nous exécutons le code suivant?


print(10 + 5)
print('10 + 5')

Est-ce que print () sur la première ligne imprime 15 et 2 imprime 10 + 5? En 1, le résultat de l'addition des nombres est renvoyé, tandis qu'en 2, il s'agit de la chaîne de caractères "10 + 5". Si vous le placez entre "'" ou "" ", il est interprété comme une chaîne de caractères et" 10 + 5 "est affiché tel quel. En programmation, les chaînes et les nombres sont traités comme des choses complètement différentes. Les détails seront expliqués dans le chapitre suivant, "Variables et types de données". Ici, ce n'est pas grave si vous savez que ** les nombres sont traités comme des chaînes si vous les mettez entre guillemets doubles ou simples. ** **

variable

** Une variable est une étiquette de nom attachée à un prix. ** ** Vous pouvez attribuer plusieurs noms à une valeur (voir une valeur parmi plusieurs variables). Utilisez également les variables avec des noms. Ce nom s'appelle le nom de la variable.

lang = "Python" #Assignez la chaîne Python à la variable lang

Le nom de la variable (lang) peut être décidé librement. Le mot affectation est apparu, mais ** affectation signifie mettre la valeur du côté droit dans la variable du côté gauche. ** ** De plus, en Python, ** les noms de variables sont sensibles à la casse. ** ** Ensuite, la valeur contenue dans la variable ** est conservée jusqu'à la fin du programme. ** ** Lorsque vous quittez le programme, les données en mémoire seront également effacées, donc si vous souhaitez conserver les données, vous devez les enregistrer en tant que base de données ou fichier.

var = "var"
Var = "Var"
print(var) #Sortie en var
print(Var) #Sortie en Var

#Quand deux mots se poursuivent lors de la dénomination d'une variable en Python
lowercase_underscore = "lowercase_underscore" #Recommandation
lowercaseunderscore = "lowercase_underscore"  #non recommandé

hello_world = "Hello, World" #Recommandation
helloworld  = "Hello, World" #non recommandé


#Comme mentionné ci-dessus, les noms de variables sont tous en minuscules et soulignés lors de la connexion de deux mots ou plus.(_)Il est recommandé d'utiliser.
#Vous pouvez également définir des variables de manière obsolète. Cependant, le programme ne donne pas d'erreur, mais utilise la méthode recommandée.

Comparaison des programmes n'utilisant pas de variables et des programmes qui les utilisent

Comparez le programme qui n'utilise pas de variables avec le programme qui l'utilise. Ici, nous voulons que vous sachiez à quel point les variables sont utiles. Tout d'abord, regardons un programme qui n'utilise pas de variables.


print(15 + 1)
print(15 - 2)
print(15 * 3)
print(15 / 4)
print(15 % 5)

Réécrivez maintenant 15 à 220. Dans ce cas, il sera nécessaire de réécrire les 5 parties d'impression écrites de 15 à 220. Ce n'est pas si difficile avec seulement 5 lignes, mais qu'en est-il de 100 ou 1000 lignes, par exemple? Changer un par un peut être une tâche ardue.

C'est là que les variables sont utiles. Si la variable x a été définie depuis le début, Tout ce que vous avez à faire est de remplacer x = 15 par x = 220.


x = 220
print(x + 1)
print(x - 2)
print(x * 3)
print(x / 4)
print(x % 5)

** En utilisant des variables, ce qui devait être modifié pour 5 lignes plus tôt peut être changé en un seul endroit. ** ** Les variables sont pratiques, alors utilisons-les.

constant

** Une constante est une valeur dont la valeur ne peut pas être modifiée. ** ** Vous pouvez modifier la valeur d'une variable ultérieurement, mais vous ne pouvez pas modifier la constante. Cependant, Python n'a pas de syntaxe pour définir les constantes, donc ** lors de la définition avec une intention constante, les noms de variables sont souvent définis dans toutes les majuscules **. Si vous rencontrez une variable en majuscules, il est préférable de ne pas réécrire la valeur. Les constantes Python sont également expliquées dans les [Coding Standards PEP8 (Official)] de Python (http://pep8-ja.readthedocs.io/ja/latest/).

Mot reservé

** Les mots qui ne peuvent pas être utilisés dans les noms de fonctions ou les noms de variables sont appelés des mots réservés. ** ** Si vous utilisez des mots réservés, une erreur de syntaxe se produira. Dans la série Python3, il y en a environ 30.

Les mots suivants sont tous des mots réservés dans la série Python 3.6, ils ne peuvent donc pas être utilisés pour les noms de variables, etc.

['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

Vue d'ensemble

Tout d'abord, voyons à vol d'oiseau les types de données en Python. Dans ce chapitre, nous nous concentrerons sur le type entier, le type de chaîne de caractères, le type de liste et le type de dictionnaire indiqués ci-dessous.

Variables et types

Selon le langage de programmation, lors de la déclaration d'une variable, il est nécessaire de faire une "déclaration de type (déclaration que cette variable va stocker ce type)". Par exemple, d'autres langages de programmation (tels que Java et C) nécessitent des déclarations de type. Cependant, les variables Python ne nécessitent pas de déclaration de type, vous pouvez donc placer n'importe quel type dans une variable.

x = 5
print(x) #5 est émis.
x = "Python" #Peut être attribué sans problème.
print(x) #Sortie en Python.

Type de données

Jusqu'à présent, nous avons vu les valeurs "chaîne de caractères" et "valeur numérique". Ceux-ci sont appelés «types de données» et se déclinent en de nombreuses variétés. Les principaux types sont le type entier, le type chaîne de caractères, le type dictionnaire et le type liste.

Numéro (type numérique)

  1. Entier (entier)
  2. Flotteur
  3. Nombres complexes Il ya trois.

Type de chaîne

** Mettez entre guillemets doubles ("et") ou guillemets simples ("et") pour créer une chaîne. ** ** Il existe trois types de méthodes de description comme suit.


# 1)Quota unique
str1 = 'Hello World'

# 2)Double devis
str2 = "Hello World"

# 3)Cotation triple / double
str3 = """Hello World
Hello Python"""

** En Python, il n'y a pas de distinction claire entre guillemets doubles ("et") et guillemets simples ("et") lors de la définition d'un type de chaîne de caractères, utilisez donc celui que vous souhaitez pour définir le type de chaîne de caractères. J'espère que tu peux. ** **

x = '1' #Type de chaîne

De plus, dans le type chaîne de caractères, vous pouvez utiliser à la fois + et , Lorsque + est utilisé entre les chaînes, cela signifie ** combiner **, et plusieurs chaînes peuvent être exprimées en une seule chaîne. Vous pouvez utiliser le symbole astérisque () pour ** répéter ** une chaîne.

Vérifions chacun d'eux.

#Joindre
a = "hello " #Après l'assemblage, un espace demi-largeur est ajouté à la fin pour faciliter la vue.
b = "world"
print(a + b) # hello world

Voici un exemple d'utilisation de *.

#Itératif
a = "hello"
print(a * 3) # hellohellohello

Conversion de type (fonte)

Écrivons le programme suivant et exécutons-le réellement.

print("Hello" + "World") # +Concaténer les chaînes de caractères avec
name = "Tom"
print("My name is " + name)

age = 24
#Voici un programme qui provoque une erreur en concaténant des types de chaînes de caractères et des types numériques avec différents types de données.

print("My name is " + name + "My age is " + age) #Cette ligne entraînera une erreur
# TypeError: Can't convert 'int' object to str implicitly

Ensuite, ** TypeError: Can't convert'int 'object to str implicitly ** s'affiche. De cette façon, si vous concaténez des types de chaînes de caractères et des types numériques avec différents types de données, une erreur se produit. ** ** Par conséquent, pour éviter cette erreur, en convertissant le type numérique en type chaîne de caractères, il sera traité comme une concaténation de chaînes de caractères et peut être concaténé. Changer le ** type de données de cette manière s'appelle «conversion de type» ou «diffusion». ** ** ** Utilisez str () pour convertir un type numérique en type chaîne. ** **


name = "Tom"
age = 24
print("My name is " + name + "My age is " + str(age))

#Auparavant, j'ai converti le type numérique en type chaîne, mais au contraire, je peux également convertir le type chaîne en type numérique.
#Dans ce cas, utilisez "int".

string_price = "1000"
price = 500

total_price = int(string_price) + price
print(total_price) # 1500

Type de liste

Cette section décrit le type de liste. Le type de liste est l'un des types de données les plus importants, assurez-vous donc de le gérer correctement. Désormais, ** les variables ne peuvent gérer qu'une seule donnée, mais le type de liste peut gérer plusieurs données (variables). ** ** Dans d'autres langues, il est également appelé un tableau. La liste Python n'a pas besoin de définir le type à stocker. Utilisez une liste lorsque vous souhaitez gérer plusieurs données. list est déclaré sous la forme ʻarray name = ["x", "y", "z"] `. ** Veuillez noter que le contenu de la liste commence à compter de la gauche et commence à 0 au lieu de 1. ** ** Les numéros attachés au contenu de cette ** liste sont appelés indices (soeji) ou index. ** **

Ajouter la liste

** Vous pouvez ajouter un élément à la fin de la liste en utilisant append (). ** **


li = []
li.append("python)
print(li) # ['python']
li.append("php")
print(li) # ['python', 'php']

Sorte de dictionnaire

Le type de dictionnaire (type de dictionnaire) est un type de données qui contient une paire de clé et de valeur.

Vient ensuite la syntaxe de type dictionnaire.

python


Nom du dictionnaire= {"Clé" : "valeur",・ ・ ・} 

** Le type de liste a des numéros d'index commençant à 0 et les valeurs sont stockées dans l'ordre à partir de 0, mais le type de dictionnaire utilise {}. ** ** À cet égard, il est écrit de la même manière que le type de dictionnaire, mais le type de dictionnaire ne reçoit pas de valeur d'index 0. Par conséquent, les listes ** peuvent accéder aux valeurs par numéro d'index, tandis que les types de dictionnaire peuvent accéder aux valeurs par n'importe quelle chaîne de clé. ** **

Regardons d'abord un programme simple.

python


profile = {"name": "tani", "email": "[email protected]" }
print(profile["name"]) # tani

#Ajouter un nouvel élément
profile["gender"] = "male"

#Type de dictionnaire avec de nouveaux éléments ajoutés(profile)Production
print(profile)

Différence entre le type de liste et le type de dictionnaire

Jusqu'à présent, vous avez appris le type de liste et le type de dictionnaire, mais quelle est la différence entre les deux? C'est-à-dire que ** les éléments sont accessibles différemment **. Le type liste accède à l'élément par index (indice), tandis que le type dictionnaire accède à l'élément par clé (chaîne ou nombre). Il diffère également en ce que le type de liste ** utilise [], mais le type de dictionnaire utilise {}. ** **

Ce que le type de liste et le type de dictionnaire ont en commun

Alors, qu'est-ce que les deux ont en commun? La partie commune est que le type de liste et le type de dictionnaire peuvent stocker des éléments tels que différents types de données (int et str). ** ** De plus, les éléments peuvent être réécrits.

Structure de contrôle

Le programme est traité de haut en bas. Décrivez la méthode de traitement avec une grammaire fixe. Dans ce chapitre, vous apprendrez les instructions if, les instructions Loop, etc., et vous apprendrez à contrôler le déroulement du programme.

Flux de traitement du programme

Le flux de base du programme se déroule de haut en bas.

Si la figure ci-dessus est écrite dans un programme Python, ce sera comme suit, par exemple.

Lorsqu'il est exécuté, le contenu suivant sera affiché dans l'ordre.

Premier processus
Prochain processus
Dernier traitement

** En d'autres termes, le programme circule de haut en bas dans l'ordre dans lequel il est écrit. ** **

Blocs de code et retraits

En Python, le traitement est résumé par indentation. Ce retrait est une grande fonctionnalité de Python. En gros, quatre espaces demi-largeur (ou touches de tabulation) jouent le rôle de retrait, mais dans la syntaxe Python, De nombreuses syntaxes ont un deux-points ":" à la fin. (Instruction de branche conditionnelle (if, elif, else), for statement, while statement, function, class definition)

C'est la règle de Python que vous devez indenter lorsque vous voyez un: à la fin. Par exemple, voyez ce qui suit comme exemple de programme avec:. Dans ce chapitre, nous expliquerons ** if statement et for statement **, etc., afin que vous n'ayez pas à comprendre la signification des programmes suivants à ce stade. Une fois que vous voyez :, comprenez que vous devez mettre en retrait.


for i in range(10):
    if i%2==0:
        print("{} is even.".format(i))
    else:
        print("{} is odd.".format(i))

#Résultat de sortie
# 0 is even.
# 1 is odd.
# 2 is even.
# 3 is odd.
# 4 is even.
# 5 is odd.
# 6 is even.
# 7 is odd.
# 8 is even.
# 9 is odd.

Branche conditionnelle (si instruction)

En programmation, le traitement est divisé selon que certaines conditions sont remplies. Par exemple, «changer les notes (traitement) en fonction des résultats des tests (conditions)» peut également être exprimé par un branchement conditionnel. La syntaxe est la suivante:

#Remarque)Notez que ce code ne fonctionne pas.
si condition A:
Exécuter si la condition A est vraie
condition elif B:
Exécuter si la condition A est fausse et la condition B est vraie
else:
Exécuter si les deux conditions A et B sont fausses

Si vous utilisez l'instruction if, vous pouvez exprimer le processus de «si XX, faire ☓☓» par branchement conditionnel. Par exemple, si le score du test est de 78 points ou plus, le programme qui produit passe est le suivant. Peut être décrit comme

#Spécifiez une expression conditionnelle après if et écrivez le traitement à exécuter lorsque la condition est satisfaite sur la ligne suivante.

score = 80
if score > 78: #Opérateur de comparaison>J'utilise. L'opérateur de comparaison sera expliqué plus loin.
    print("Passé")

Comment créer une expression conditionnelle

** Dans les expressions conditionnelles, le symbole «opérateur de comparaison» est souvent utilisé pour comparer deux valeurs. ** ** Les opérateurs de comparaison incluent ceux indiqués dans l'image ci-dessous. Utilisez == pour indiquer si les côtés droit et gauche sont égaux. Utilisez également! = Pour indiquer si les côtés droit et gauche ne sont pas égaux.

** Écrivez la partie conditionnelle comme "si expression conditionnelle:". ** ** Notez que si vous oubliez d'ajouter les deux points à la fin de la ligne, une erreur se produira.

score = 80
if score > 78: #Opérateur de comparaison>J'utilise.
    print("C'est un laissez-passer. Félicitations!")
else:
    print("échec. Faisons de notre mieux la prochaine fois.")

score = 100
if score == 100:
    print("Score parfait")
elif score > 85:
    print("Passer!")
else:
    print("échec. Faisons de notre mieux la prochaine fois.")

En Python, l'indentation du code (indentation / 4 ou 2 espaces demi-largeur) affecte directement le fonctionnement du programme, alors faites attention à l'indentation.

boucle

Dans la plupart des langages de programmation, la base de la syntaxe de contrôle est constituée de boucles. Une boucle est une syntaxe de contrôle permettant d'exécuter le même code plusieurs fois. Il est souvent utilisé lorsque vous souhaitez effectuer le même traitement pour chaque élément de la liste.

pour déclaration

Regardons le traitement en boucle par l'instruction for. Le format de l'instruction for est le suivant.

#pour la variable de boucle dans le nom de la liste:
#Processus à exécuter

for i in ["apple", "banana", "melon"]:
    print(i)


#Résultat de sortie
# apple
# banana
# 3 melon

La liste est stockée dans la variable en boucle i, qui est imprimée. Je vais vous expliquer en détail. Tout d'abord, l'élément appelé apple (0e indice) au début est affecté à la variable i, et il est sorti par print (i). Ensuite, la banane est récupérée, assignée à i, et le dernier melon est également assigné à i et à la sortie. Puisque tous les éléments de la liste ont été récupérés, le traitement de cette instruction for se termine à ce point.

La fonction ** range () ** est souvent utilisée pour itérer un certain nombre de fois avec l'instruction for.

La fonction range () a les rôles suivants.

range (x): renvoie une liste de numéros de série de 0 à x-1 range (x, y): renvoie une liste de numéros de série de x à y-1

Par exemple, en utilisant range (), un programme qui répète de 0 à 9 10 fois au total est le suivant.


for i in range(10):
    print(i)

#Résultat de sortie
# 0
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9

Regardons d'autres exemples itératifs. C'est un peu long, mais veuillez le lire attentivement.


data = [20, 40, 60, 88]
for d in data:
    print(d)


#Résultat de sortie
# 20
# 40
# 60
# 88

# (1)
sum_d = 0
for d in data:
    # *=Vous pouvez également l'appeler.
    sum_d += d # sum_d = sum_d +C'est un style d'écriture qui omet d.

print(sum_d) #208 est émis. 20+ 40 + 60 +Le nombre total de 88.


#Résultat de sortie
# 208

#L'instruction for peut utiliser else.

sum_d = 0

# (2)
for d in data:
    sum_d += d
#Lorsque la boucle est terminée, vous pouvez traiter ce que vous souhaitez traiter une fois.
else:
    print(sum_d)


#Résultat de sortie
# 208

#En Python, vous pouvez utiliser else dans la boucle de l'instruction for vue ici et l'instruction While vue plus tard.
#Si vous écrivez else, l'intérieur de else sera traité à la fin de la boucle.

#plus haut(1)Quand(2)La différence est de savoir si vous utilisez else ou non, mais le résultat est le même.


##pause et continue

#continuer sauter une fois
for i in range(10):
    if i == 3:
        continue
    print(i)

#Résultat de sortie
# 0
# 1
# 2
# 4
# 5
# 6
# 7
# 8
# 9

#le processus de rupture se termine
for i in range(10):
    if i == 3:
        break
    print(i) #Sortie 0 1 2


#Résultat de sortie
# 0
# 1
# 2

#Notez que si vous utilisez "break" lorsque vous utilisez le else que vous avez vu précédemment avec l'instruction for, le traitement à l'intérieur du else ne sera pas exécuté.
#Dans ce cas, dans la liste"f"Puisqu'il y a, trouvé est sortie
3 non trouvé dans else n'est pas émis.

data = [1, 2, 3, 4, 5, "f"]
for x in data:
    if x == 'f':
        print('found')
        break
else:
    print('not found') #Dans le cas de cet exemple, sinon le traitement n'est pas exécuté!

#Résultat de sortie
# found

python pour est un mécanisme appelé itérateur, Vous pouvez également utiliser des touches, des chaînes de caractères, des dictionnaires, etc. comme touches.

for char in "hello":
    print(char)

# h
# e
# l
# l
# o

Vous souhaiterez peut-être connaître le numéro d'index lors du traitement des éléments de la liste dans l'ordre. Dans ce cas, utilisez ** enumerate () **.

for index, name in enumerate(["apple", "banana", "melon"]):
    print(index, name)

# 0 apple
# 1 banana
# 2 melon

De plus, en combinant list () et range (), vous pouvez décrire de manière concise une liste avec des éléments de 1 à 100 comme suit.


print(list(range(101)))


#Résultat de sortie
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]

Parcourir les données du dictionnaire

Pour boucler les données de type dictionnaire, écrivez comme suit.

python


data = {"tani": 21, "kazu": 22, "python": 100}
for key, value in data.items():
     print("key: {} value: {}".format(key, value))


# key: tani value: 21
# key: kazu value: 22
# key: python value: 100

déclaration while

** L'instruction while répète la boucle jusqu'à ce que certaines conditions soient remplies. ** ** C'est une image comme une boucle tout le temps entre ~, et je l'utilise moins souvent que pour, Si vous souhaitez exécuter explicitement une boucle infinie, décrivez le traitement de la boucle avec while.


#Répétez jusqu'à ce que n atteigne 10
n = 0
while n < 10:
    print(n)
    n += 1 # +N'oubliez pas de faire 1.

#Résultat de sortie
# 0
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9

** Si vous n'écrivez pas n + = 1 ou n = n + 1, vous vous retrouverez dans une boucle infinie. ** ** Une fois dans une boucle infinie, appuyez sur Ctrl + c pour quitter. Attention à ne pas entrer dans une boucle infinie.

boucle infinie

Au fait, si vous voulez créer intentionnellement une boucle infinie, écrivez comme suit.

#Puisqu'il s'agit d'une boucle infinie, si vous souhaitez exécuter le programme suivant, Ctrl+Veuillez terminer par c.
#Ou terminal/Fermez (fermez) de force l'invite de commande.
while True:
    print("boucle infinie")

Notation d'inclusion de liste

** List Comprehensions crée de nouvelles listes à partir de listes et de générateurs existants. ** ** Par exemple, voici un exemple qui décrit un programme pour créer une liste de valeurs numériques obtenue en mettant au carré chaque valeur numérique de 1 à 10 en notation d'inclusion de liste.

result = [x**2 for x in range(1,11)]
print(result) # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

#Dans une boucle normale:
result = []
for i in range(1,11):
    result.append(i**2)

print(result) # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

** La notation d'inclusion de liste peut être utilisée non seulement pour traiter des éléments extraits d'une liste existante, mais aussi pour les ajouter à une nouvelle liste uniquement si les conditions sont remplies. ** ** L'avantage de la notation d'inclusion est que vous pouvez écrire le processus de manière concise et réduire le coût de l'appel de méthodes supplémentaires telles que de nouvelles listes.

Autre notation d'inclusion

En plus des inclusions de liste, il existe également des inclusions qui génèrent des ensembles et des dictionnaires. ** Dans le cas de la notation d'inclusion d'ensemble et de dictionnaire, l'ordre des valeurs de sortie peut ne pas être conservé en fonction de la valeur générée, alors soyez prudent lorsque vous l'utilisez. ** **

s = {x**2 for x in range(1,6)}
print(s) # {1, 4, 9, 16, 25}

Pour écrire la notation d'inclusion du dictionnaire, séparez la clé et la valeur par deux points ":". Utilisez {} comme dans la notation d'inclusion d'ensemble.

d = {x*2:x**2 for x in range(1,11)}
print(d) # {2: 1, 4: 4, 6: 9, 8: 16, 10: 25, 12: 36, 14: 49, 16: 64, 18: 81, 20: 100}

De plus, en ce qui concerne la notation d'inclusion de tuple, si vous écrivez comme suit, ce sera un générateur. Notez que s'il est défini entre (), ce ne sera pas une notation d'inclusion taple. Ce qui est renvoyé est le générateur qui crée l'élément.

t = (x for x in range(5))
print(t)
# <generator object <genexpr> at 0x1095c8eb8>

t = tuple([x for x in range(5)])
print(t) # (0, 1, 2, 3, 4)

Entrée standard

** Il est possible de recevoir une entrée de l'utilisateur en utilisant input (). ** **

print("S'il vous plaît entrez votre nom")
name = input()
print("Quel est votre nom"+name+"est")

** Une mise en garde ici est que la valeur reçue en utilisant input () est de type string. ** ** Si vous entrez une valeur numérique, elle sera convertie en une chaîne de caractères, veuillez donc faire attention au traitement numérique ultérieur. (Veuillez lancer une fois avec int () etc.)

Ce qui suit est un programme qui sort le contenu entré par l'utilisateur indéfiniment. ** Attribuez la valeur reçue à la variable i et imprimez i avec print (). ** **


# Ctr-Quittez avec C.
while True:
    print("Please Input!")
    i = input()
    print(i)

Qu'est-ce qu'une fonction

** Une fonction est une instruction qui reçoit certaines données, exécute certains traitements uniques et renvoie le résultat **. Il existe ** 2 types de fonctions **, la première est la ** fonction d'origine ** et la seconde est la ** fonction standard (fonction intégrée) **. ** Les fonctions propriétaires peuvent être créées par le programmeur, avec le même nom et le même traitement que le programmeur crée des variables. ** ** En combinant des fonctions, vous pouvez créer des programmes efficacement. ** Les fonctions standard sont des fonctions que Python a préparées depuis le début. ** ** Les fonctions standard font référence à print (), len (), input (), etc. Dans le monde de la programmation, c'est une fonctionnalité qui vous permet de définir librement des fonctions et d'appeler et d'utiliser les fonctions créées plusieurs fois. Ce chapitre se concentre principalement sur la syntaxe des ** fonctions propriétaires **.

Avantages et inconvénients de l'utilisation des fonctions

Commençons par ** Avantages **. Voici deux points principaux. ** 1) Le code devient plus facile à comprendre ** Le premier avantage de l'utilisation des fonctions est que le code est plus facile à comprendre. Non seulement il sera plus facile de voir en regroupant chaque fonction, mais le travail de débogage sera également plus efficace. ** 2) Les fonctions peuvent réduire la duplication de code. ** ** Augmente la maintenabilité du code. Vient ensuite ** Inconvénients **, mais si vous expliquez en détail, vous pouvez en ramasser, Les inconvénients ne sont pas si nombreux. Par conséquent, si vous prenez l'habitude de créer et d'utiliser activement des fonctions, la gamme de programmation s'élargira.

Définition des fonctions

Pour expliquer la fonction d'origine, nous allons créer la fonction. (* Créer une fonction s'appelle définir une fonction.) Utilisez le mot-clé ** def ** pour définir la fonction.

#Remarque)Veuillez noter que ce code ne fonctionne pas en raison de la syntaxe.
nom de la fonction def():
    #Retrait(Assurez-vous de baisser les caractères!
    #En traitement

Maintenant, créons une fonction hello qui sort juste bonjour! Basé sur la syntaxe de base ci-dessus. hello est le nom de la fonction et la ligne en retrait décrit la définition de traitement de la fonction hello.


#Le retrait concerne quatre espaces demi-largeur.
#Ci-dessous, bonjour()Ceci est un exemple qui définit une fonction.

def hello():
    print("hello!")

** Comme les noms de variables, les noms de fonctions peuvent être définis avec n'importe quel nom que vous voulez, tant que vous n'utilisez pas de ["Mots réservés"](? Id = 158 & section = Mots réservés). ** ** Dans le programme précédent, nous venons de définir la fonction hello, donc nous ne l'avons pas appelée. Les fonctions ne sont pas exécutées simplement en les définissant, mais peuvent être utilisées en les appelant réellement.

Pour exécuter (appeler) une fonction, vous pouvez l'appeler en utilisant ** nom de fonction () ** comme suit. Dans l'exemple ci-dessous, la fonction d'origine hello () est définie et ** hello () ** est utilisée pour l'appeler (l'exécuter).

#Définition de la fonction Hello
def hello():
    print("hello!")

#Appel de fonction(Courir)
hello() # hello!Est sortie

Dans la définition de fonction, seule la fonction est définie, donc aucun traitement n'est effectué. Pour l'exécuter, le processus d'appel est effectué sur la ligne avec ** nom de fonction () **.

Nom de la fonction

Le nom de la fonction peut être librement nommé par le développeur, mais il y a quelques mises en garde. Attention, lors de la définition d'un nom de fonction, ** ne donnez pas le nom de fonction avec des mots réservés, etc. **. De plus, lorsque vous définissez vous-même un nom de fonction en Python, si vous souhaitez utiliser un nom de fonction avec deux mots ou plus, le style d'insertion d'un soulignement (_) en minuscules est recommandé, comme indiqué ci-dessous.


def lowercase_underscore:
    print("lowercase_underscore")

pass

Les fonctions peuvent également définir des fonctions sans traitement de contenu, comme lors de la définition d'un type de liste vide ou d'un type de dictionnaire vide. ** Si vous déclarez une fonction pour le moment et ne faites rien pour la traiter, utilisez "pass". ** **

#Définissez une fonction de test qui ne fait rien
def test():
    pass

argument

L'argument est ** la valeur donnée à la fonction lors de son appel **. Il peut être grossièrement divisé en deux types. ** 1) Argument formel (valeur reçue du côté de la définition de fonction) ** ** 2) Argument réel (valeur donnée par l'appelant de la fonction) ** Voici un exemple de programme de la fonction utilisant l'argument.


def say_hello(name):
    print("Bonjour" + str(name) + "M.")

say_hello("Yamada") # こんにちはYamadaさん

Valeur de retour (valeur de retour)

Renvoie les données traitées par la fonction à l'appelant. Plus tard, nous examinerons de plus près «Arguments et retours».

Arguments et retour

J'ai expliqué la valeur de retour (valeur de retour) plus tôt, mais lorsque l'instruction return est exécutée, la fonction se termine et revient à l'appelant.

** return [valeur de retour (valeur de retour)] ** Je vais introduire le format de la fonction lorsqu'il y a des arguments et une valeur de retour (valeur de retour). Si la valeur de retour est omise, None sera la valeur de retour (valeur de retour). De plus, si un retour sans valeur de retour est exécuté dans la fonction, la valeur de retour sera None.

#nom de la fonction def(argument):
#En traitement
#return Valeur de retour

def adder(a, b):
    return a+b

#Le retour est pratique lorsque vous souhaitez conserver le traitement à l'intérieur de la fonction dans une variable.
value = adder(5,10) #15 est affecté à la valeur de la variable



#Le len précédent()La valeur de retour (valeur de retour) sera expliquée à l'aide de.
#La variable data est une liste de 5 éléments de 1 à 5.
data = [1,2,3,4,5]

#Fonction len()En exécutant, l'élément 5 des données de la liste sera la valeur de retour.
#La valeur de retour 5 est affectée à la valeur de la variable.

value = len(data)

print(value) # 5

Si le len () ci-dessus est illustré, le flux sera le suivant.

Premièrement, [1,2,3,4,5] est affecté aux données variables et il est défini comme une liste. Utilisez ensuite la fonction len () pour obtenir le nombre d'éléments dans les données de la liste. Le résultat obtenu est retourné par return, et cette valeur retournée devient la valeur de retour </ storng>. Après cela, la valeur de retour 5 est affectée à la valeur de variable.

Pourquoi utiliser le retour

La question de savoir pourquoi utiliser return au lieu de print () peut ne pas venir au premier plan. De nombreux débutants en programmation risquent de trébucher sur cette section ** Expliquez la différence pourquoi vous utilisez return au lieu de print () dans une fonction. ** ** ** En tant que principe majeur, print () et return sont des choses complètement différentes, vous devez donc être en mesure de les utiliser correctement. ** ** Premièrement, les différences entre les deux sont les suivantes. ** return vise à renvoyer une valeur ** ** print () vise à imprimer la valeur ** ** En d'autres termes, utiliser return signifie l'utiliser lorsque vous devez renvoyer une valeur **. ** Plus précisément, je vais expliquer l'exemple correct en utilisant return **. Alors, regardez d'abord le programme ci-dessous.


def adder1(a, b):
    print(a+b)

def adder2(a, b):
    return a + b

adder1(2, 4)
sum = adder2(2, 4)
print(sum)

Dans ce programme, il est difficile de transmettre la bonté du retour, et je pense que vous ne pouvez pas en ressentir le mérite. En effet, adder1 appelle la fonction plus rapidement et la renvoie à l'intérieur de la fonction. Cependant, l'une des utilisations couramment utilisées d'une fonction est de recevoir un résultat de calcul avec retour et de transmettre à nouveau la valeur à une autre fonction. La méthode ci-dessus ne traduit pas la bonté du retour. Maintenant, expliquons le programme correct pour savoir comment utiliser le retour comme image. Veuillez lire l'exemple de programme ci-dessous.


def a(a,b):
    return a + b

def b(a,b):
    return a * b

x = a(2,2) #Remplacez 4 par x
y = b(x, x)  # 4 * 4

print(y) #16 est la sortie

Comme la fonction b, le résultat du traitement précédent x est également passé comme argument de la fonction b. De cette manière, le résultat du calcul peut être temporairement stocké dans la variable en effectuant un retour. De plus, vous pouvez transmettre la valeur à une autre fonction et la connecter à différents traitements. De plus, le passage à une fonction est un exemple d'utilisation de return, mais le fait est que vous pouvez effectuer un traitement supplémentaire sur la valeur de retour (valeur de retour) sans la passer à la fonction **. ** Si vous souhaitez simplement imprimer à l'intérieur de la fonction, vous pouvez l'imprimer avec print (), mais pour les fonctions qui n'ont pas de fonction d'impression à l'intérieur, le résultat traité est reçu par retour (valeur de retour / valeur de retour). En affectant cette valeur à une variable et en passant la valeur de retour à une autre fonction, il sera possible de se reconnecter à un autre processus. Comme mentionné ci-dessus, ** return est destiné à renvoyer une valeur **, il est donc supposé que le traitement à l'intérieur de la fonction sera utilisé comme valeur de retour même dans le programme après le traitement à l'intérieur de la fonction. Je vais.

Exemple de fonction utilisant return

Maintenant, prenons un exemple de fonction qui utilise return au lieu de print () dans la fonction.


def power(x):
    return x*x

def absolute(x):
    if (x < 0):
        return -x
    else:
        return x

print(power(10)) # 100
print(absolute(-10)) # 10

Valeur par défaut de l'argument

Les fonctions vous permettent de définir des arguments si vous ne les spécifiez pas.


def func(a, b=5):
    print(a)
    print(b)

func(10,15) #10 et 15 sont émis
func(3) #3 et 5 sont émis

Ici, dans le programme ci-dessus, b = 5, mais c'est la valeur par défaut de l'argument. Vous pouvez spécifier une valeur par défaut pour l'argument. Cette fonction est une fonction qui ne produit que deux arguments de valeur entière en leur donnant, Si vous ne transmettez qu'un seul argument, la deuxième valeur sera sortie car la valeur par défaut b est 5.

Maintenant, pensez au programme ci-dessous. Lorsque vous exécutez le programme ci-dessous, ['python', 'Python'] sera affiché lors du dernier appel de fonction.


def sample(arg, arg_list=[]):
    arg_list.append(arg)
    print(arg_list)

sample('python')
sample('Python')

Q. Lorsque j'exécute cette fonction, je souhaite renvoyer uniquement l'élément passé en argument à chaque fois. Comment puis-je résoudre ce problème? ??

A. Dans ce cas, vous devez le réparer comme suit.

def sample(arg):
    arg_list = [] #Initialisation de la liste
    arg_list.append(arg)
    print(arg_list)

sample('python') # ['python']
sample('Python') # ['Python']

Ce qui précède initialise la liste à chaque fois. Après cela, il ajoute l'argument passé comme argument à la liste vide initialisée.

Portée de la variable de fonction

La portée est une partie assez importante. Ce sera une idée importante pour la programmation à l'avenir, alors tenons-la fermement. ** Le fait est que la portée (plage effective) diffère selon l'endroit où la variable a été créée. ** **

Tout d'abord, regardons un exemple de fonction normale.


def add(x1):
    x2 = 10 #Créer une variable dans une fonction(Variables locales)
    result = x1 + x2
    print(result)

add(5) # 5 +10 à 15 sorties

Vient ensuite le programme lié à la portée (portée) des variables.


def add(x1):
    x2 = 10 #Créer une variable dans une fonction(Variables locales)
    result = x1 + x2
    print(result)

add(5) # 5 +10 à 15 sorties
print(x2) #Une erreur se produit ici

Lorsque j'exécute le code ci-dessus, j'obtiens l'erreur ** NameError: name'x2 'is not defined **. ** Ceci est dû au fait que la variable x2 définie à l'intérieur de la fonction est une variable locale et n'est valide que pour la variable locale ou à l'intérieur de la fonction, donc appeler x2 en dehors de la fonction entraînera une erreur. ** **

Une bonne solution est de définir x2 en dehors de la fonction. (* En plus de la portée des variables, le traitement interne des fonctions a été modifié pour le rendre plus facile à comprendre.)


def add(x1,x2):
    result = x1 + x2
    return result

x1 = 5
x2 = 10
result = add(x1, x2) # 5 +10 à 15 sorties
print(result)

Vous pouvez également utiliser ** global pour utiliser des variables globales ** dans votre fonction.

Déclaration globale / variable globale

Déclaration d'accès aux variables globales au sein d'une fonction. Il existe des variables locales (fonctions définies dans la définition de fonction) et des variables globales (variables définies en dehors de la définition de fonction).


glb = 0

def func1():
    glb = 1

def func2():
    global glb
    glb = 5

print(glb) #0 est la sortie
func1()
print(glb) #0 est la sortie
func2()
print(glb) #5 est la sortie

Regardons un autre exemple.

var1 = 'Variables globales'

def sample():
    var2 = 'Variables locales'
    return (var1, var2)

print(sample())

L'exemple ci-dessus déclare respectivement les variables globales et locales. L'exemple suivant est un programme qui modifie les variables globales à partir d'une fonction.


var1 = 'global'

def sample():
    global var1

    var1 = 'Changé en local'

sample()    #Changer la variable globale var1 à l'intérieur de la fonction
print(var1) #Changé en local

Avant de créer l'application Omikuji

En fonction de votre éditeur de texte et de votre terminal préférés (invite de commande), chargez et utilisez votre propre module. Par conséquent, dans le cas de Jupyter Notebook et de Google Colab, les programmes décrits dans ce chapitre ne fonctionneront pas, essayez donc comme suit.

Veuillez également consulter le lien ci-dessous pour savoir comment l'exécuter sur Colab. Exécuter sur la vidéo YouTube / Colab

  1. Créez fortune.py sur votre PC. Ensuite, dans le menu de gauche de Colab (appuyez sur>), vous verrez la table des matières, les extraits de code et les fichiers, et sélectionnez l'onglet Fichier.

  2. Dans l'onglet ouvert en 1, appuyez sur Télécharger et vous pouvez sélectionner fortune.py créé sur votre PC, alors téléchargez-le.

fortune.py



def get_fortune():
    import random #Attention car c'est aléatoire, pas aléatoire
    results = ['Daikichi', 'Kichi', '小Kichi', 'Mal', '大Mal', '末Kichi']
    return random.choice(results)
  1. Ensuite, exécutez le programme suivant côté Colab.
import fortune
result = fortune.get_fortune()
print("Quelle est la fortune d'aujourd'hui. .. ..", result)

Bibliothèque

** Une bibliothèque est un fichier qui peut être utilisé en lisant un certain nombre de traitements polyvalents (fonctions, classes, etc.) à partir d'un autre programme. ** ** En Python, ce qui peut être fondamentalement importé s'appelle une bibliothèque. De plus, bibliothèque est un nom général, et en Python, s'il existe essentiellement une notation de bibliothèque, veuillez la considérer comme un module expliqué ci-dessous.

Modules et packages

** Un module est un fichier qui résume le code Python, et un fichier qui peut être réutilisé par d'autres programmes est appelé un "module". ** ** Cela ne fonctionne pas tout seul, mais vous pouvez utiliser le module en l'important. ** Un package est une collection de \ _ \ _ init \ _ \ _. Py et plusieurs modules dans un répertoire. ** ** \ _ \ _ Init \ _ \ _. Py se trouve dans le répertoire du package et sera exécuté lorsque vous importerez le package.

Importation de module

L'utilisation simple de l'instruction import est la suivante. ** Module d'importation que vous souhaitez charger ** La partie du module que vous souhaitez charger est le nom de fichier d'un autre fichier Python avec l'extension .py supprimée. Par exemple, si vous souhaitez charger le module sys, procédez comme suit: (Le module sys est l'un des modules qui peuvent être utilisés lorsque Python est installé. C'est ce qu'on appelle le ** module standard **, et il existe de nombreux autres modules tels que le module os.)


import sys

Lors de l'importation de plusieurs modules, vous pouvez séparer les noms de modules avec ",".


import sys, os

Par exemple, si vous souhaitez utiliser la fonction cos du module mathématique, vous pouvez l'utiliser avec ** nom du module.fonction nom (argument) **.


import math
math.cos(1) # 0.5403023058681398

Importez votre propre module

Cette fois nous allons faire un programme de fortune (module de bonne aventure). Commencez par créer le programme principal. (Le nom du fichier est gratuit, mais ici c'est main.py.)

main.py



import fortune
result = fortune.get_fortune()
print("Quelle est la fortune d'aujourd'hui... ", result)

Ensuite, créons un module de fortune. Enregistrez le programme suivant sous le nom de fichier ** fortune.py ** au même emplacement que le programme principal (main.py) créé ci-dessus.

fortune.py



def get_fortune():
    import random #Attention car c'est aléatoire, pas aléatoire
    results = ['Daikichi', 'Kichi', '小Kichi', 'Mal', '大Mal', '末Kichi']
    return random.choice(results)

Maintenant, je pense que main.py et fortune.py sont enregistrés dans le même dossier, alors exécutons le main.py. Pour l'exécuter, exécutez le fichier main.py enregistré à partir du terminal si vous utilisez un Mac ou à partir de l'invite de commande si vous utilisez Windows.

python


python main.py

** Lors de l'exécution de ce qui précède, si vous démarrez le terminal tel quel et exécutez la commande ci-dessus, l'erreur (nulle): impossible d'ouvrir le fichier'main.py ': [Errno 2] Aucun fichier ou répertoire Peut apparaître. ** ** En effet, le fichier main.py n'existe pas dans la hiérarchie actuelle.

Si le résultat de la sortie change à chaque fois que vous l'exécutez, cela fonctionne sans problème.

depuis et importer

from Nom de fichier (nom du module) import \ * vous permet d'appeler sans spécifier de nom de fichier.


depuis l'importation du nom du module*

Si vous souhaitez omettre la description du nom du module et n'utiliser que le nom de la fonction lors de l'utilisation de la fonction du module, procédez comme suit.

à partir du nom du module nom de la fonction d'importation,Nom de la fonction, ...

En vous basant sur la syntaxe ci-dessus, vous pouvez écrire le programme comme suit.

from math import cos, sin, tan
cos(1)

Plus tôt, j'ai écrit random.choice (results) dans fortune.py, fortune.py peut être réécrit comme suit en utilisant from.


def get_fortune():
    from random import choice
    results = ['Daikichi', 'Kichi', '小Kichi', 'Mal', '大Mal', '末Kichi']
    return choice(results)

De plus, si vous souhaitez importer tous les membres (fonctions, constantes, classes, etc.) du module sans spécifier de nom, spécifiez ce qui suit.


#depuis l'importation du nom du module*
from math import *
cos(1)
sin(1)

C'est dans la fonction que random est importé dans l'échantillon de fortune.py, Vous pouvez également importer en dehors de la fonction.


from random import *

def get_fortune():
    results = ['Daikichi', 'Kichi', '小Kichi', 'Mal', '大Mal', '末Kichi']
    return choice(results)

print(get_fortune())
sin(1)

Importer un module avec un alias

# main.py
import fortune

result = fortune.get_fortune()
print("Quelle est la fortune d'aujourd'hui... ", result)

Il a été décrit comme une fortune d'importation, mais vous pouvez lui donner un alias en utilisant as. Voici un exemple avec un alias.


import fortune as ft

result = ft.get_fortune()
print("Quelle est la fortune d'aujourd'hui... ", result)

En donnant un alias, vous pouvez maintenant appeler ft.get_fortune ().

Importez uniquement ce dont vous avez besoin

J'ai tout importé avec *, mais vous pouvez également importer uniquement les pièces dont vous avez besoin.


from fortune import get_fortune

result = get_fortune()
print("Quelle est la fortune d'aujourd'hui... ", result)

C'est aussi un exemple qui donne un alias et importe uniquement get_fortune.

from fortune import get_fortune as gf

result = gf()
print("Quelle est la fortune d'aujourd'hui... ", result)

Découvrez l'emplacement du module bibliothèque

** Vous pouvez trouver l'emplacement de la bibliothèque dans l'attribut file ou path du module. ** ** Par exemple, vous pouvez le vérifier en procédant comme suit.


import os
print( os.__file__ ) # /Users/aiacademy/anaconda3/lib/python3.6/os.py

Essayez d'exécuter l'application Omikuji.

Démarrez le terminal pour Mac et l'invite de commande pour Windows, déplacez le main.py créé précédemment dans le dossier contenant le main.py suivant et exécutez-le.

python main.py

Quand tu cours

Quelle est la fortune d'aujourd'hui...C'est ○○.

Ainsi, dans ○○, vous pouvez voir que le résultat de la fortune change de manière aléatoire à chaque exécution. Si vous ne pouvez pas exécuter l'application Omikuji dans ce chapitre, veuillez vous référer au texte ci-dessous. [Créons une application Omikuji qui fonctionne à l'invite de commande! ](? Id = 193)

introduction

Python est appelé un langage orienté objet. Ce chapitre décrit les bases des ** "classes" **, qui sont essentielles pour comprendre ce langage orienté objet. Les classes peuvent être utilisées pour les langages orientés objet, sans se limiter à Python. ** L'orientation objet est difficile à comprendre, donc Vous n'êtes pas obligé d'essayer de tout comprendre avec ce texte seul, vous avez juste besoin de comprendre ce que c'est, alors continuez à apprendre à votre rythme. ** **

Termes importants

Cette fois-ci, les ** 10 termes importants ** suivants apparaîtront dans ce chapitre. Tous ces éléments sont disponibles non seulement en Python mais également dans les langages orientés objet (Java, etc.). Si vous ne comprenez pas la signification d'un terme, revenez à la section qui l'explique un par un et passez en revue.

** 1. Orienté objet ** ** 2. Classe ** ** 3. Objet ** ** 4. Constructeur ** ** 5. Instance ** ** 6. Méthode ** ** 7. Héritage ** ** 8. Héritage multiple ** ** 9. Remplacer ** ** 10. Cours pour parents et enfants **

Orientation objet

** Orienté objet est un style / méthode de programmation **, qui est appelé le paradigme de programmation. En plus de la programmation orientée objet (programmation orientée objet), le paradigme de programmation comprend la programmation fonctionnelle et la ** programmation procédurale **. Dans la programmation procédurale, vous écrivez une série de procédures, circulez de haut en bas et écrivez du code tout en modifiant l'état des variables, etc. Par exemple, le type procédural est le suivant.


a = 10
b = 20
y = a + b
print(y) # 20

Cependant, la ** programmation procédurale pose divers problèmes à mesure que le nombre de programmes augmente car tout le code est [variables globales](? Id = 6 & section = fonction% 20 portée variable). ** ** Par exemple, modifiez une variable globale avec une fonction et écrasez-la par une autre fonction. Cela rend de plus en plus difficile la gestion du programme dans le cas de ** la programmation procédurale. ** ** La programmation orientée objet est apparue comme une opportunité de résoudre ce problème. ** L'orientation objet résout non seulement les problèmes ci-dessus, mais améliore également l'efficacité du développement et la maintenabilité. ** ** Les langages de programmation qui peuvent tirer parti de l'orientation objet incluent des langages tels que Python, Java et C ++. Cette fois, je vais commencer par la classe de base orientée objet en utilisant Python.

classe

J'ai déjà vu des types de données tels que int et str, mais les ** classes sont un mécanisme de création de structures de données **, et vous pouvez utiliser ** classes pour créer de nouveaux types de données. ** ** Les classes sont souvent décrites comme des ** documents de conception qui créent des objets **. C'est un diagramme d'image de la relation entre une classe et une instance.

** Créer une instance (objet) par classe (dessin de conception avec un mécanisme pour créer une structure de données) → instanciation (graver takoyaki).

** L'instanciation consiste à créer une instance (objet) à partir d'une classe. ** ** Nous discuterons des objets dans la section suivante.

Créons maintenant une classe.

#Lors de la création d'une classe, assurez-vous de créer le nom de la classe dans CamelCase "Format pour se connecter en mettant en majuscule la première lettre du mot".
#De plus, pour les fonctions et méthodes qui apparaissent dans ce chapitre, les cas de serpent(Utilisez un format qui relie les mots minuscules avec un trait de soulignement).
#(En passant, une casse avec uniquement des lettres minuscules et sans trait de soulignement est appelée une minuscule.)


#Créez une classe Sample. (Le nom de fichier à enregistrer peut être n'importe quel nom.)
class SampleClass: #La première lettre du nom de la classe doit être en majuscule et la première lettre de plusieurs mots doit être en majuscule.
    #Veuillez ouvrir 4 espaces dans la classe et mettre en retrait. Vous pouvez définir des variables et des méthodes (les fonctions de la classe sont des méthodes) dans la classe.
     '''sample class '''

sample = SampleClass() #Pour utiliser une classe d'instance, comme un appel de fonction, le nom de la classe()Instanciez en faisant. De cette façon, vous pouvez utiliser la classe. Une instance de SampleClass est stockée dans sample. Ces données créées à partir de la classe sont appelées une instance.

sample.name = "A"
sample2 = SampleClass() #Vous pouvez créer autant de données que vous le souhaitez à partir de ce type d'échantillon, nous allons donc créer sample2.

sample2.name = "B" #Différents attributs peuvent être créés pour sample2.

print(sample.name) #Le nom de l'échantillon est A
print(sample2.name) #Le nom de sample2 est B

Pour créer une classe vide (classe vide), écrivez:


class SampleClass:
    pass #Classe vide en utilisant pass(Et fonctions)Peut être fait.

sample = SampleClass()
sample.name = "Sample"

objet

** Un objet est celui qui a des données (attributs) et des méthodes (fonctions définies dans la classe). ** ** Et toutes les valeurs Python sont des objets, et les objets définissent des fonctions (méthodes) qui peuvent être exécutées.

Méthode d'initialisation (constructeur)

** Le constructeur est utilisé pour initialiser une instance de la classe cible. ** **

Vous pouvez écrire une méthode spéciale dans la classe appelée ** \ _ \ _ init \ _ \ _ **. ** Il s'agit de la méthode d'initialisation, appelée constructeur, qui n'est appelée qu'une seule fois lorsque la classe est instanciée. ** ** Les données contenues dans la classe ** sont appelées l'attribut **.

Regardons en fait le programme. (Cette fois, nous allons créer la classe User.)


class User:
    def __init__(self, name): #Définit une variable qui reçoit la valeur instanciée et transmise
        #Variable d'instance (initialisation d'attribut)
        self.name = name
        print("Le constructeur a été appelé")

    def hello(self):
        print("Hello " + self.name)
        
user = User("Sample User") #Je crée une instance appelée user.

Le constructeur de la classe User prend un argument appelé nom et initialise la variable self.name (cette variable est appelée une variable d'instance) avec cet argument. Les variables d'instance sont des variables stockées dans des instances individuelles. Ici, le nom est une variable d'instance. Dans la méthode hello, le nom de l'attribut est écrit après self, mais en l'écrivant comme ceci, vous pouvez créer et accéder aux variables d'instance.


user = User("Sample User")
py = User("python")

user.hello()
py.hello()

Méthode

** Une méthode est une fonction définie dans une classe. ** ** La dernière fois, j'ai défini une SampleClass vide, mais cette fois je vais créer une SampleClass qui a une méthode.

class SampleClass:
    #Méthode Veillez à attacher le premier argument self à la méthode. self fait référence à l'instance de classe elle-même
    def set_name(self, name):
        self.name = name #Vous devez stocker la valeur reçue dans une instance de SampleClasas. Pour ce moi.name =Appelons-le nom. Puisque self lui-même fait référence à une instance de SampleClass, préparez une variable d'instance appelée nom et attribuez le nom de l'argument.

    def hello(self):
        print("hello, {0}".format(self.name))


sample = SampleClass()
sample2 = SampleClass()
sample.set_name("Python") #Puisque self s'indique, il n'y a aucun problème avec l'argument Python qui correspond au nom.
sample2.set_name("AI")
sample.hello()
sample2.hello()

Héritage

** L'héritage est un mécanisme pour créer une nouvelle classe basée sur une classe existante. ** ** En utilisant l'héritage, il est possible d'étendre efficacement les classes existantes et d'améliorer la maintenabilité du programme. User (classe parente, super classe, classe de base) -> SuperUser (classe enfant, sous-classe, classe dérivée) La classe enfant SuperUser classe que nous allons définir a les fonctions de la classe parent, donc lors de la définition de la classe enfant, nous devons seulement définir les nouvelles fonctions que nous voulons ajouter. En héritant, vous pouvez réutiliser une classe existante et créer une nouvelle classe. Voyons-le réellement.


class User:
    def __init__(self, name):
        self.name = name

    def hello(self):
        print("Hello " + self.name)

class SuperUser(User): #Pour hériter d'une classe d'utilisateurs()Si vous écrivez la classe User à l'intérieur, c'est ok.
    def __init__(self, name, age):
        # super()Vous pouvez appeler les méthodes de la classe parent à l'aide de.
        super().__init__(name) #Appelez le constructeur de classe parent à partir de cette classe
        self.age = age

    #Remplacement de méthode
    def hello(self):
        print("SuperHello" + self.name)
        
        #De plus, dans la méthode de cette classe, par exemple, remplacé
        #Dans la méthode, super()Vous pouvez également appeler la méthode de la classe parent User à l'aide de.
        
        super().hello()

t = SuperUser("tani", 100)
t.hello()

Héritage multiple

** L'héritage multiple signifie l'héritage de plusieurs classes parentes. ** ** Dans l'exemple ci-dessous, cela signifie que Base1 et Base2 sont hérités de la classe parent (classe de base).


#Python prend en charge l'héritage multiple.
#Une définition de classe avec plusieurs classes de base a la syntaxe suivante:

class SampleClassName(Base1, Base2):
・ ・ ・ ・
・ ・ ・ ・
    #Après avoir hérité de Base1 ci-dessus, il hérite de Base2.

Remplacement de méthode

** Le remplacement d'une méthode avec ses propres fonctionnalités est appelé over riding. ** ** L'exemple de méthode dans la classe Derived ci-dessous est remplacé en remplaçant l'exemple de méthode dans la classe Base. Je n'ai remplacé que l'exemple de méthode cette fois, mais vous pouvez remplacer n'importe quelle méthode, y compris \ _ \ _ init () \ _ \ _.


#Classe de base
class Base:
    def sample(self):
        print("Base.sample()A été appelé")

    def test(self):
        print("La méthode de test de la classe de base a été appelée")

#Classe dérivée
class Derived(Base):
    def sample(self): #Remplacer l'exemple de méthode de la classe de base
        print("Derived.sample()A été appelé")
        self.test() #Appelez la méthode de test de la classe Base

d = Derived()
d.sample()

La classe de base d'origine est appelée ** parent ou superclasse (ou classe de base) **. Les nouvelles classes dérivées sont appelées classes enfants, sous-classes, classes dérivées, etc.

Résumé

Dans cet article, vous avez appris ce qu'est Python, ce que vous pouvez faire avec Python, les variables et les types de données, si et pour les instructions, les modules et les classes, etc. Tous sont des contenus de base, alors tenons-les fermement.

Recommended Posts

[Pour les débutants] Apprenez la grammaire de base Python gratuitement en 5 heures!
Grammaire de base Python pour les débutants
Histoire de base de l'héritage en Python (pour les débutants)
Exécutez unittest en Python (pour les débutants)
Grammaire de base Python3
Commencez avec Python en 30 minutes! Créer un environnement de développement et apprendre la grammaire de base
Mémo n ° 4 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Mémo n ° 3 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Essayez de calculer RPN avec Python (pour les débutants)
Mémo n ° 2 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Mémo n ° 7 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Mémo n ° 6 pour les débutants Python à lire "Explication détaillée de la grammaire Python"
Mémo n ° 5 que les débutants Python lisent "Explication détaillée de la grammaire Python"
[Introduction pour les débutants] Manipuler MySQL avec Python
Grammaire de base Python (divers)
Manuel python pour les débutants
Mémo de grammaire de base Python
OpenCV pour les débutants en Python
[Pour les débutants] Comment utiliser la commande say avec python!
«Apprenez Linux en 5 jours» (Téléchargez des ebooks Linux ici! Gratuitement)
Exercice Python pour les débutants # 1 [Types de données de base / instructions If]
Grammaire de base du système Python3 (quelques itérations de Python)
Refactoring appris avec Python (Basic)
Flux d'apprentissage pour les débutants en Python
Mémo de grammaire de base Python (1)
Techniques de tri en Python
Construction de l'environnement Python3 (pour les débutants)
Grammaire de base Python (divers) Mémo (3)
Python #function 2 pour les super débutants
Grammaire de base Python (divers) Mémo (2)
Pandas 100 coups pour les débutants en Python
[Python] Exemple de code pour la grammaire Python
Python #function 1 pour les super débutants
#List Python pour les super débutants
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
J'ai appris la grammaire de base de Python
Grammaire de base Python (divers) Mémo (4)
À propos de "for _ in range ():" de python
Installation de Python (Python 3.7.7) et grammaire de base
[Pour les débutants] Résumé de l'entrée standard en Python (avec explication)
Méthode d'apprentissage TensorFlow pour les professionnels des arts libéraux et les débutants en Python
Rechercher les fuites de mémoire dans Python
Comparaison de la grammaire de base entre Java et Python
Rechercher des commandes externes avec python
Exercices Python pour les débutants # 2 [pour instruction / instruction while]
Notes de grammaire minimales pour écrire Python
Scraping avec Selenium en Python (Basic)
Python pour les super débutants Super débutants Python # dictionnaire type 1
[Python] Connaissances de base utilisées dans AtCoder
Python #index pour les super débutants, tranches
<Pour les débutants> bibliothèque python <Pour l'apprentissage automatique>
Fonction Python #len pour les super débutants
Grammaire de base du système Python3 (dictionnaire)
Web scraping pour les débutants en Python (1)
Web scraping pour les débutants en Python (4) -1