0
votes

Expliquer en anglais comment ce code iTère sur un numéro

Qu'est-ce que ce code signifie en anglais? Qu'est-ce qui se passe réellement? XXX PRE>

Cela fait partie d'un ensemble plus grand de code / boucle (voir ci-dessous)
Ce que je comprends, c'est que cela prend un numéro comme entrée variable sur une fonction.
Cette partie du code lui permet de boucler le nombre.
Ce dont j'ai besoin pour comprendre, ce sont les spécificités de cette ligne de code. int (n) code>, la boucle de n code> dans str (octal) code>. J'ai besoin de le comprendre en anglais afin que je puisse résoudre le reste du problème du code. (Que j'ai délibérément n'a pas affiché.) octal code> est la variable d'entrée de la fonction entière. P>

for each_number in [int(n) for n in str(octal)]:
    print (octal)
    print(n)
    
    # Check for each of the permissions values
    for value, letter in value_letters:
    
        if value >= value:
            print (value, letter)
            
            result += letter
            value -= value
            print (result)

        else:
            value -= 1
            result += "-"
            Print ("else statment", value, letter, result)
print("end of function")
print(" ")
return result


3 commentaires

C'est un compréhension de la liste


Exécutez le code, voir le résultat. Si cela n'aidait pas, courez des portions plus petites pour avoir une idée.


J'ai exécuté le code, des parties de celui-ci et ajoutant des déclarations d'impression au cours des cinq dernières heures. Le code entier à l'heure actuelle est d'environ 25 lignes de long. Il y a une raison que je cherche de l'aide et que la pile de pile est l'un des endroits les plus difficiles à trouver.


4 Réponses :


4
votes

[int (n) pour n in str (octal)]

C'est une compréhension de la liste. Il est généralement utile de lire ce droit à gauche.

  • str (octal) : lancer la variable octal à une chaîne.
  • pour n in str (octal) : pour chaque caractère n dans la chaîne:
    • int (n) : jeter la valeur à un entier.
    • [...] : renvoyer ces résultats sous forme de liste.

      Donc, l'expression complète renvoie une liste d'entiers générés par itération à travers tous les caractères de str (octal) et jetant chaque caractère en tant qu'ob.


1 commentaires

Cela m'aide. Merci. Maintenant, je peux mieux cela mieux.



1
votes

C'est une compréhension de la liste. Regardons ce que ce code pourrait normalement ressembler à: xxx

essentiellement, la compréhension de la liste condense ce pour -loop dans une seule ligne. La déclaration avant le pour indique ce qui sera ajouté à votre liste de sortie. Ensuite, la section pour indique ce que vous êtes en boucle, comme la première ligne d'un régulier pour -Loop.

à un niveau élevé, Cette compréhension séparait les caractères (sans doute individuels) de la variable octal dans une liste. Pour ce faire, il moulage octal dans une chaîne afin qu'il puisse itérer sur les caractères individuels, puis convertir chaque caractère dans un int avant de la mettre dans la liste de sortie. Donc, si octal = 175 alors votre liste de sortie serait [1, 7, 5]


1 commentaires

Merci. C'est aussi utile pour moi de comprendre. Je travaille sur une classe Python et cette partie du code a été pré-écrite. Je travaille sur la compréhension de nombreuses heures, de nombreuses heures, car c'est ce que je dois faire pour l'apprendre.



1
votes
lst = [] # Define an empty list
# We want every digit of octal, so we need to convert it into a string
for n in str(octal): # For every digit in the octal
    lst.append(int(n)) # Add the character converted into an integer to the list

1 commentaires

Merci. Je commence à voir comment je peux résoudre le reste du programme / problème. Cette partie du code a été préhensée.



0
votes

en Python, c'est ce qu'on appelle la compréhension de la liste:

Vous pouvez le traduire comme suit: p> xxx pré>

Donc, votre code ci-dessus peut être écrit de manière procédurale comme: P>

for n in str(octal):
    each_number = int(n)
        print(octal)
        print(n)

    # Check for each of the permissions values
    for value, letter in value_letters:    
        if value >= value:
            print(value, letter)
        
            result += letter
            value -= value
            print(result)
        else:
            value -= 1
            result += "-"
            print("else statment", value, letter, result)
print("end of function")
print(" ")
return result


1 commentaires

Le code posté a été brisé, cela fait partie de la raison pour laquelle j'essayais de mieux le comprendre. Je suis ravi de signaler que je viens de résoudre! L'énoncé clé devrait en réalité être "si chaque numéro> = valeur", le problème global concernait des autorisations octal et convertissant. Cela n'a pas été bien conçu depuis que je devais réellement apprendre d'octal avant que je puisse même commencer.