Je n'avais pas envie de mémoriser la grammaire de base sans un exemple de programme intéressant, alors j'ai décidé de créer un exemple de programme pour chaque grammaire de base.
Au fait, il est difficile de définir des C'est juste intéressant sur mon échelle, donc je vais faire un exemple de programme amusant (peut-être un peu surréaliste), et il peut y avoir un calcul comme celui-ci.
En principe, je suis un super débutant. Python apprend le côté serveur des applications Web et apprendra Django après avoir terminé la grammaire de base.
Créez un programme qui calcule le nombre de fractions pour les entiers de 1 à 100. Créez deux modèles, l'un est de calculer en extrayant les éléments de la liste avec for, et l'autre est de calculer avec map.
x = range(1,100)
y = []
cnt = 0
for i in x:
cnt = 0
j = 1
#Diviser par le nombre inférieur ou égal à x
while j <= i:
#S'il est divisible, c'est une fraction, alors comptez
if x[i-1] % j == 0 :
cnt += 1
j += 1
y.append(cnt)
print(x)
print(y)
def yakusucalc(x1):
cnt = 0
j = 1
Essayez de diviser par le nombre inférieur à # x1
while j <= x1:
#S'il est divisible, c'est une fraction, alors comptez
if x1 % j == 0 :
cnt += 1
j += 1
return cnt
x = range(1,100)
y = list(map(yakusucalc, x))
print(x)
print(y)
Au fait, lorsque le graphique est affiché, il ressemble à ceci.
Le code pour afficher le graphique est le suivant.
# Cette ligne est requise lors de l'exécution dans Jupyter Notebook
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
import math
x = range(1,100)
# Calculez le nombre de fractions.
def yakusucalc(x1):
cnt = 0
j = 1
Essayez de diviser par le nombre inférieur à # x1
while j <= x1:
#S'il est divisible, c'est une fraction, alors comptez
if x1 % j == 0 :
cnt += 1
j += 1
return cnt
y = list(map(yakusucalc, x))
print(x)
print(y)
plt.plot(x, y)
plt.show
En utilisant map, le code a été simplifié.
Postscript (26/01/2020) yakusucalc peut être écrit sur une seule ligne comme suit. (Merci pour votre commentaire)
def yakusucalc(value):
return sum(value % yakusu == 0 for yakusu in range(1, value + 1))
Recommended Posts