J'essaie d'obtenir mon code pour afficher chaque chiffre individuellement sur sa propre ligne, et il le fait. Cependant, je reçois une erreur à la fin de celui-ci, donc je veux détecter exactement combien de chiffres sont dans le nombre. J'ai du mal à trouver une solution pour cela qui n'est pas len (), car pour ce programme spécifique je ne suis pas censé l'utiliser.
Voici mon code:
number = int(input("Enter a positive integer: "))
number = str(number)
digits = 0
while True:
print(number[digits])
digits += 1
5 réponses
Vous pouvez également utiliser la fonction log10
(logarithme avec base 10):
import math
number = int(input("Enter a positive integer: "))
print(1 + int(math.log10(number)))
Il génère une erreur car vous exécutez une boucle while infinie. Utilisez plutôt pour.
number = int(input("Enter a positive integer: "))
number = str(number)
digits = 0
for i in number:
print(i)
digits+=1
Vous pouvez créer un compteur et avec une boucle while devrait ressembler à:
num = int(input("enter num"
result = 0
while num > 10:
num = num // 10
result += 1
result += 1
print(result)
Vous pouvez résoudre votre problème simplement en imprimant des éléments de chaîne concaténés avec un délimiteur de nouvelle ligne sans tenter de trouver le nombre d'éléments dans la chaîne:
number = input("Enter a positive integer: ")
print('\n'.join(number))
La raison pour laquelle vous obtenez l'erreur est que lorsque digits
acquiert la valeur de la longueur du nombre, dites l
, alors number[l]
n'existe pas (les indices commencent à 0)
number = input("Enter a positive integer: "))
# type(number) is <class 'str'> you don't have to convert to int and reconvert to string
# since <class 'str'> implements iterable you could go like this ..
digits = 0
for digit in number:
print(digit) # digit is still a str here
digits += 1