0
votes

Comment exécuter cela dans la ligne de commande (j'utilise Spyder)

Écrivez un programme Python pour accepter 10 chiffres via des arguments de ligne de commande et calculez la somme des nombres premiers parmi eux. C'est ma question. J'ai essayé ce xxx

mais c'est naïf et ne fonctionne que pour la plage donnée. Je souhaite entrer 10 numéros en invite de commande et il devrait trouver la somme des nombres premiers dans mon entrée. J'ai essayé d'utiliser Import Sys et de donner des sys.args [entrée] mais il montre des erreurs. Quelqu'un peut-il aider avec cela? Je commence juste à apprendre le codage. Merci d'avance :)


0 commentaires

3 Réponses :


0
votes

Un exemple simple: xxx


0 commentaires

1
votes

Une solution peut être ceci:

import sys

nums = sys.argv


def with_loop():
    total = 0   # to collect the prime numbers
    count = 1   # a counter for the numbers that you entered
    for i in range(10):
        num = int(input("{}. Please enter a number: ".format(count)))
        if num > 1:  # if number is larger than 1, we need to check
            for j in range(2, num):
                if (num % j) == 0:
                    break
            else:
                total += num
        elif num == 1:   # 1 is a prime number
            total += num
        else:   # otherwise the number is negative so we skip.
            pass
        count += 1
    print("\nTotal : {}".format(total))


def with_argv(nums):
    total = 0   # to collect the prime numbers
    count = 1   # a counter for the numbers that you entered
    for i in range(1, len(nums)):
        if int(nums[i]) > 1:  # if number is larger than 1, we need to check
            for j in range(2, int(nums[i])):
                if (int(nums[i]) % j) == 0:
                    break
            else:
                total += int(nums[i])
        elif int(nums[i]) == 1:   # 1 is a prime number
            total += int(nums[i])
        else:   # otherwise the number is negative so we skip.
            pass
        count += 1
    print("\nTotal : {}".format(total))


with_loop()
with_argv(nums)


5 commentaires

Merci. Quelle commande puis-je utiliser pour donner une entrée directement en invite de commande?


Pour le terminal, en supposant que vous êtes dans le répertoire de la maison, vous devez utiliser quelque chose comme ceci: python ou python3 num1 num2 num3 etc Par exemple: python prime.py 1 2 3 5 3 53 35 234 23 52 , mais si vous souhaitez utiliser l'invite de commande, vous devez signaler avec_argv et avec_loop fonctionnera quand même puisqu'il ne nécessite aucune entrée supplémentaire et on l'appelle déjà. S'il vous plaît, marquez-le comme réponse s'il répond à votre question et n'hésitez pas à demander plus de questions si vous avez un codage heureux.


Tout d'abord, merci d'avoir nettoyé le doute. Je reçois la production en l'exécutant normalement. Mais j'ai essayé de faire la même chose en utilisant des arguments de ligne de commande pour donner des informations à l'aide d'importer Sys mais je reçois des erreurs. Pouvez-vous s'il vous plaît élaborer comment utiliser ce code dans les arguments de la ligne de commande.


Si vous souhaitez utiliser uniquement la méthode d'invite de commande, commencez ensuite # with_argv (nums) et uniquement with_loop () exécutera, la méthode de la boucle a une longueur fixe de 10 , vous devez donc fournir 10 entrées. La méthode avec_argv (nums) Vous devez fournir un certain nombre d'arguments après avoir exécuté le fichier dans Terminal ou PowerShell.


Il a fonctionné avec une invite de commande.Je utilisé avec_argv (Nums). Merci.



0
votes

Pour résoudre ce problème, je définirais d'abord une fonction qui vérifie si un nombre est prime ou non. Il ne renverrait que un booléen et rien d'autre.

Ensuite, je créerais deux listes - une pour stocker tous les numéros entrés par un utilisateur et une autre pour stocker tous les numéros premiers parmi les numéros entrés par l'utilisateur. J'utiliserais ma fonction prédéfinie pour ce chèque.

Lorsque la liste des numéros premiers est prête, j'utiliserais la méthode Somme () pour trouver la somme des éléments de la liste VIZ. Les nombres premiers que l'utilisateur est entré.

voici le code - xxx

Ce code fera.

Spyder utilise la console Ipython. C'est la ligne de commande mentionnée dans la question. Donc, si vous exécutez le code dans Spyder, la console Ipython dirigera ce programme.


0 commentaires