-1
votes

Python pour débutants.Range, exclure des nombres spécifiques

Nouveau à Python ici! Quelqu'un peut-il m'aider avec une petite tâche? J'ai besoin d'écrire un algorithme qui peut imprimer tous les nombres compris entre 0 et 100. Avec une exception des nombres divisibles par 10 comme 10,20,30,40 ... etc. Aussi tous les nombres qui contiennent 3 en eux, comme 3,13,23,30,33 ... etc

J'ai eu la divisible par 10 partie, mais à l'exclusion de tous les numéros contenant 3 me sont bloqués: ( < p> aide s'il vous plaît !!!! xxx


1 commentaires

4 Réponses :


1
votes

Vous pouvez essayer xxx pré>

cette boucle n'imprimera pas les numéros que le numéro modulo 10 renvoie 0 et il convertira chaque numéro en chaîne pour vérifier si elle contient 3 étapes.
Et vous pouvez le faire en une ligne avec la compréhension de la liste et le déballer dans une instruction d'impression. P>

print(*[i for i in range (1,100) if i %10 and '3' not in str(i)], sep="\n")


0 commentaires

0
votes

Votre utilisation de i [0] code> est fausse, i code> est un objet INT, il n'est pas souscrit, vous n'avez pas besoin de l'indexer à nouveau, vous pouvez Utilisez directement la valeur de celui-ci:

for i in range (1,100):
    if i %10 == 0 or '3' in str(i):
        continue
    print (i)


0 commentaires

0
votes

juste chercher 3 dans la chaîne de numérum et fonctionne maintenant cool xxx


0 commentaires

1
votes

Voici une tentative de tout comprendre (étant donné que vous avez dit que vous êtes nouveau à Python, pensez ajouter peu de détails):

La fonction de plage de python a en réalité la structure suivante: p> xxx Pré>

IT imprimera tous les numéros "à partir du point de départ" et finira à l'étape 1) p>

donc une plage (0,6,1) code> retournera 0,1,2,3,4,5,5 code> p>

La fonction par défaut prend 0 comme point de départ et 1 à la taille de l'étape, de sorte que: p>

 i=10
i[0] will throw error

i='10'
i[0] will return '1'


0 commentaires