É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 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 :) p> p>
3 Réponses :
Un exemple simple:
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)
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
python prime.py 1 2 3 5 3 53 35 234 23 52 CODE>, mais si vous souhaitez utiliser l'invite de commande, vous devez signaler
avec_argv code> et
avec_loop code> 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) code> et uniquement
with_loop () code> 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) code> 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.
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. P>
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é. p>
voici le code - p> Ce code fera. p> 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. P> p>