Pas limité à Python, quand il s'agit de démarrer avec les programmes, après la construction de l'environnement, Hello World et quatre règles de fonctionnement,
Mais personnellement, est-il préférable d'enseigner aux débutants dans cet ordre afin de «créer un programme d'entreprise résistant au changement»? J'ai toujours pensé.
Ainsi, quand j'ai eu la chance d'enseigner la programmation python à une petite équipe, je leur ai enseigné des «fonctions» qui ne sont pas des procédures générales du manuel. Ensuite, j'ai d'abord essayé de mettre l'idée de ne pas utiliser "else" dans l'instruction if.
Nous reviendrons sur le processus de réponse et résumerons ce que nous avons remarqué.
Ce qui suit n'est qu'une description évidente pour ceux qui la connaissent, et il n'y a pas de nouvelles techniques ou sujets. De plus, je vais résumer ce qui s'est passé après la construction de l'environnement, Hello World, et les quatre règles de calcul ont été complétées.
L'un des membres était un débutant en programmation, mais il y avait aussi un membre qui a écrit un programme pour sa propre recherche en utilisant "R" et ainsi de suite.
Le but ultime de l'équipe était «Je veux être en mesure de créer un système d'entreprise à la fin», j'ai donc expliqué tout d'abord que les trois points suivants devraient être soulignés comme politique de départ.
«Afin de réduire les bogues, le programme est construit avec l'idée que la réduction du nombre de branches est la première priorité. ―― En supposant que les changements se produiront toujours, réfléchissez ensemble aux programmes qui résistent aux changements. —— Pensez à la «lisibilité» des programmes créés par d'autres membres et des programmes que vous avez créés il y a quelques mois.
L'équipe cherchait un programme à utiliser pour une certaine tâche, donc le thème de l'introduction a été créé en fonction du thème de la tâche.
--Calculez le taux par habitant en fonction du nombre de personnes selon la liste de prix.
Nombre de personnes | Frais |
---|---|
moins de 10 | 980 |
11~20 | 840 |
21 ou plus | 720 |
Nous leur avons demandé de réfléchir à ce dont ils avaient besoin pour obtenir le prix souhaité. Ensuite, il a appris à écrire une «fonction» avec la valeur cible comme «valeur de retour» et l'entrée comme «argument».
fee_calculate.py
#squelette
def fee_calculate(num): #Fonction pour calculer la charge à partir du nombre de personnes
#do_something
fee = 980 #Pour bouger pour le moment
return(fee)
num = 5 #Définissez le nombre de personnes
fee = fee_calculate(num) #Utilisez une fonction pour trouver le prix
print(fee) #"980" pour afficher le résultat
Il n'y a rien à l'intérieur de la fonction, mais j'ai écrit que "j'obtiens la valeur que je veux en utilisant la fonction".
Ensuite, j'ai appris à déterminer le prix en fonction du nombre de personnes. En outre, il a introduit l'idée que «vous devriez être capable de lire différentes manières d'écrire des déclarations, mais vous n'avez pas à les utiliser activement vous-même».
fee_calculate.py
#Calcul des frais
def fee_calculate(num): #Fonction pour calculer la charge à partir du nombre de personnes
if 1 <= num <= 10:
fee = 980
return(fee) #Revenir dès que le résultat sort
if 11 <= num <= 19:
fee = 840
return(fee) #Revenir dès que le résultat sort
if 20 <= num:
fee = 720
return(fee)
num = 5 #Définissez le nombre de personnes
fee = fee_calculate(num) #Utilisez une fonction pour trouver le prix
print(fee) #"980" pour afficher le résultat
Si vous demandez des frais, il vous suffit de «retourner». Nous avons discuté de la facilité d'écriture, de lecture et de changement avec les membres par rapport aux anti-patterns qui utilisent ʻelse et ʻelif
.
#Anti-motif
def fee_calculate_a(num):
if 1 <= num <= 10:
fee = 980
elif 11 <= num <= 19: #Essayez d'utiliser elif
fee = 840
else: #Essayez d'utiliser else
fee = 720
return(fee) #Résultat de retour
num = 21 #Définissez le nombre de personnes
fee = fee_calculate_a(num) #Utilisez une fonction pour trouver le prix
print(fee) #"720" pour afficher le résultat
Je pensais qu'avec un si petit programme, je ne serais peut-être pas en mesure de réaliser la différence de facilité d'écriture, de lecture et de changement, mais les membres ayant une expérience en programmation étaient d'accord avec cette idée dans le bon sens. donné. En conséquence, cela a été utile car il est devenu un lieu pour les participants d'échanger des opinions et de réfléchir. Les opinions de l'équipe sont décidées démocratiquement, il semble donc que les membres débutants aient pensé: "C'est ce que c'est".
En apprenant l'idée «d'obtenir la valeur que vous voulez en utilisant une fonction» et en me rappelant comment appeler une fonction, j'ai senti que j'aurais pu commencer dès le début pour essayer d'utiliser la bibliothèque. Il y a. (Par exemple, utilisez «calendrier» pour trouver le nombre de jours dans un mois.)
Il est important de penser vous-même à l'algorithme et de le créer, mais comment trouver et utiliser de nombreuses «bibliothèques pratiques» dans le monde et comment les combiner? Je pense qu'il est important d'apprendre de telles choses si vous apprenez un langage de programmation maintenant.
J'ai appris Python sous forme de sessions d'étude divisées en plusieurs fois, mais je pense que les membres débutants ne cessent de croître. En d'autres termes, le comportement de "penser à ce que vous voulez faire et d'abord google pour trouver la bibliothèque" est né. Si vous comprenez comment utiliser la fonction, il existe de nombreuses bibliothèques que vous pouvez utiliser si vous vous souvenez de ʻimport`.
Dans la session d'étude, tout en vous entraînant à donner un thème, réfléchissez à la manière de le résoudre et créez un programme, un «test», une «gestion des erreurs» et une «sortie de journal» indispensables à la création d'un système d'entreprise Nous apprenons ensemble la manière de penser et comment y faire face.
Python3 possède une riche bibliothèque d'outils de "test", de "gestion des erreurs" et de "sortie de journal", mais il est important d'apprendre et de réfléchir à un stade précoce comment il est fait et comment il est préférable de l'utiliser. Parce que ça devient.
Pour conclure, chacun a pu le faire sans le leur dire clairement. Une fois que vous avez appris à apprendre, il est plus rapide d'apprendre par vous-même que d'enseigner.
À propos, dans le programme de calcul des frais mentionné précédemment, la répétition est utilisée lorsque vous souhaitez traiter plusieurs candidats à la fois.
L'échantillon pour calculer à plusieurs reprises la charge pour la liste du nombre de candidats est le suivant.
#répétition
list = [5, 11, 21, 7, 15, 30] #Liste du nombre de candidats
def fee_calculate(num): #Fonction pour calculer la charge à partir du nombre de personnes
if 1 <= num <= 10:
fee = 980
return(fee)
if 11 <= num <= 19:
fee = 840
return(fee)
if 20 <= num:
fee = 720
return(fee)
for num in list: #Extraire le contenu de la liste un par un
fee = fee_calculate(num) #Utilisez une fonction pour trouver le prix
print(fee) #Voir les résultats
L'idée est de commencer par tourner la boucle, puis la fonction ne peut pas être coupée. (Parce que ce n'est rien de plus qu'un tracas pour créer une fonction plus tard dans cette procédure.) Je pense qu'il est difficile d'améliorer vos compétences en programmation si vous ne faites que ce type de programme, sauf lorsque vous créez personnellement un programme jetable.
#Anti-motif
list = [5, 11, 21, 7, 15, 30] #Liste du nombre de candidats
for num in list: #Extraire le contenu de la liste un par un
if 0 <= num <= 10: #Jugez du nombre de personnes éliminées ...
fee = 980
elif 11 <= num <= 19:
fee = 840
else:
fee = 720
print(fee)
En comparant les deux programmes, le plus court est l'anti-pattern, mais celui qui est le plus facile à lire, j'espère que cela vous donnera l'occasion d'y réfléchir.
Personnellement, il est facile d'écrire ʻelse et ʻelif
, mais en lisant, je trouve gênant de voir les conditions précédentes. Même en japonais, il est plus facile de comprendre si vous dites «Cette fois». Quand les gens disent: "Dans d'autres cas comme celui-ci", cela devient "Lequel?" Par conséquent, j'essaye de ne pas utiliser «else» et «elif», qui ne sont pas inévitables.