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> < p> aide s'il vous plaît !!!! p>
4 Réponses :
Vous pouvez essayer 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")
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)
juste chercher 3 dans la chaîne de numérum et fonctionne maintenant cool
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> IT imprimera tous les numéros "à partir du point de départ" et finira à l'étape 1) p> donc une plage La fonction par défaut prend 0 comme point de départ et 1 à la taille de l'étape, de sorte que: p> (0,6,1) code> retournera
0,1,2,3,4,5,5 code> p>
i=10
i[0] will throw error
i='10'
i[0] will return '1'
Est-ce que cela répond à votre question? Comment vérifier si un chiffre spécifique est dans un chiffre Integer