Aujourd'hui, un ami est rentré à la maison et avec un examen de programme et l'une des questions qui sont apparues était un programme pour trouver les multiples suivants et les montrer comme ça, le programme a également demandé que tout nombre supérieur à 50 ne soit pas accepté et un message d'erreur affiché ,

1
2
multiple of 3
4
multiple of 5
7
8
multiple of 3
multiple of 5
13
14
multiple of 3 or multiple of 5
16,

J'ai créé un code mais je ne peux pas le faire apparaître comme il apparaît dans la photo d'examen comme le texte ci-dessus, c'est mon code pour l'instant

num =1
c = 0
while num != 0:
    try:
        num = int(input("Insert a number: "))
        while c < num:
            c = c + 1
            print(c)
            if num == 0:
                exit()
            if c % 3:
                print("multiple of  3")
            if c % 5:
                print("multiple of  5")
            if c % 5 or 3:
                print("multiple of 3 or and 5")
            if c >= 50:
                print("Error")
    except ValueError:
            print("Please insert a number")

J'ai essayé ce code que j'ai créé avec mon expérience limitée de 2 jours d'apprentissage de pointe en python, mais avec l'expérience de codage mod e2 de Garry, c'est petit ce que j'ai appris là-bas, mais j'ai regardé et lu quelques tutoriels en ligne mais je n'arrive pas à faire fonctionner cela comme indiqué ci-dessus , quelqu'un peut-il m'éclairer sur ce que j'ai pu faire de mal, je veux en savoir plus sur la programmation

0
iurirolho 29 oct. 2020 à 05:50

3 réponses

Meilleure réponse

Utilisez not x % y et vérifiez d'abord 3 et 5.

num =1
c = 0
while num != 0:
    try:
        num = int(input("Insert a number: "))
        while c < num:
            c = c + 1
            if num == 0:
                exit()
            if c >= 50:
                print("Error")
            elif not c % 5 and not c % 3:
                print("multiple of 3 or and 5")
            elif not c % 3:
                print("multiple of  3")
            elif not c % 5:
                print("multiple of  5")
            else:
                print(c)
    except ValueError:
            print("Please insert a number")

Production

Insert a number: 16
1
2
multiple of  3
4
multiple of  5
multiple of  3
7
8
multiple of  3
multiple of  5
11
multiple of  3
13
14
multiple of 3 or and 5
16
1
Mike67 29 oct. 2020 à 03:06

Je ne pense pas vraiment que vous ayez besoin de 2 boucles while pour ce faire.

while True:
    num = input(":")
    try:
        num = int(num)
        if num <= 0:print("Too small, try again.")
        elif num > 50:print("Too big, try again.")
        else:
            print("Multiple of 3 or 5") if num % 3 == 0 and num % 5 == 0 else print("Multiple of 3") if num % 3 == 0 else print("Multiple of 5") if num % 5 == 0 else ""
    except ValueError:
        print("That's not a valid number!")

Dans mon code, je vérifie si le nombre est inférieur à 0 ou supérieur à 50, puis je vérifie le mod de 3 et 5, 5, 3. Et désolé pour le code complexe, j'ai l'habitude d'essayer de garder mon code en 10 lignes.

0
Dav_Did Hu 29 oct. 2020 à 03:16

Parcourez chaque ligne une à la fois et réfléchissez à la manière dont vous arriverez à une condition "vraie" pour chaque déclaration if que vous avez écrite. Dans votre exemple, si l'utilisateur met un nombre supérieur à 49, vous afficherez «erreur» sur chaque ligne jusqu'à ce que la boucle se termine lorsque c devient finalement égal à num.

Tout d'abord, vous devez voir si vous allez exécuter la boucle, alors assurez-vous de ne pas le faire si l'utilisateur entre autre chose qu'un nombre compris entre 1 et 50 inclus.

Une fois que vous êtes dans la boucle, vous devez déterminer ce qui sera imprimé pour chaque itération: l'un des 3 messages sur le nombre ou le nombre lui-même. Vous devez donc déterminer laquelle des quatre options que vous allez imprimer, puis imprimer cette sortie.

try:
    num = int(input('Insert a number: '))
    if num > 50 or num < 1:
        raise
    for i in range(1,num+1):
        if i % 3 == 0 and i % 5 == 0:
            msg = 'multiple of 3 or multiple of 5'
        elif i % 3 == 0:
            msg = 'multiple of 3'
        elif i % 5 == 0:
            msg = 'multiple of 5'
        else:
            msg = f'{i}'
        print(msg)
except:
    print('ERROR: Invalid Entry')

Production:

Insert a number: 16
1
2
multiple of 3
4
multiple of 5
multiple of 3
7
8
multiple of 3
multiple of 5
11
multiple of 3
13
14
multiple of 3 or multiple of 5
16
0
walraven 29 oct. 2020 à 04:19