-1
votes

Comment puis-je améliorer ce petit programme à Python?

def multiply():
    nums = []
    total = 1
    multiplyCount = int(input("How many numbers do you want to multiply ? : "))
    for x in range(multiplyCount):
        newNum = int(input("Enter a number: "))
        nums.append(newNum)
    for x in range(len(nums)):
        total *= nums[x]
    print(total)

multiply()
Here's my code. I want to make it not ask for multiplyCount but instead keep adding numbers to multiplyCount until the user decides it's enough. How can I do that ?

0 commentaires

3 Réponses :


1
votes

Vous pouvez par exemple le faire avec un pendant code> -Loop, comme celui-ci:

def multiply():
    nums = []
    total = 1
    while True:
        newNum = input("Enter quit or a number: ")
        if newNum.lower() == "quit":
            break
        else:
            nums.append(int(newNum))
    for x in range(len(nums)):
        total *= nums[x]
    print(total)

multiply()


2 commentaires

Hey merci pour la réponse! Mais je n'ai pas compris ce que Newnum.Lower () est ici. Pouvez-vous expliquer cela?


@Fingol Il convertira la chaîne d'entrée de l'utilisateur en toutes les lettres minuscules. De sorte que l'utilisateur puisse entrer «Quittez» ou «Quittez» ou «Quittez», etc. pour mettre fin à la boucle.



3
votes

Vous pouvez aller avec quelque chose comme ceci:

total = 1
while True:
    choice = input('Enter a number to be multiplied, or stop to terminate: ')
    if choice.lower() == 'stop':
        break
    try:
        total *= int(choice)
        print('Current total is {}'.format(total))
    except ValueError:
        print('Only enter numbers or stop')


0 commentaires

0
votes

(1) Le meilleur moyen est d'utiliser une valeur sentinelle, il appartient à l'utilisateur de saisir une valeur spécifique s'il veut arrêter. Dans le code suivant, la valeur Sentinel pour entrer pour terminer est 'Q'. Il peut évidemment être modifié en fonction du choix du programmeur, mais il est désormais désormais de choisir un entier / booléen pour ce cas (permettant à l'utilisateur de multiplier toute valeur).

(2) également, une variable peut être utilisée. au lieu de votre liste. (x * = y signifie x = x * y) p>

(3) la variable res est initialisée à 1 parce que cet entiteur est neutre dans la multiplication. P>

def multiply():
    res, number = 1, 1
    while number != 'Q':
        res *= int(number)
        number = input("Enter a number (Q for leave): ")
    print(res)


0 commentaires