Ismouf
Messages postés4Date d'inscriptionlundi 25 mai 2020StatutMembreDernière intervention27 mai 2020
-
25 mai 2020 à 21:52
lespinx
Messages postés106Date d'inscriptionlundi 9 octobre 2006StatutMembreDernière intervention23 novembre 2022
-
26 mai 2020 à 17:45
Bonjour,
J'ai un projet python à réaliser et je bloque pour une question je ne sais pas comment partir, si quelqu'un sait comment je peux faire?
La question étant : Enregistrer dans une nouvelle liste G les nombres formés par tous les groupes de 4 chiffres écrits côte à côte dans la liste L.
Exemple si L=[1,2,3,4,5,6,7,8,9,1,2,3] nous aurions G= [1234, 2345, 3456,...., 9123.]
Merci d'avance, je vous met ci-dessous mon début de code.
#Q1/ On demande à l'utilisateur d'entrer un nombre entier d'au moins 10 chiffres
print("Entrez un nombre entier d'au moins 10 chiffres")
n=int(input())
while n < 10**9: #On met en place une boucle si tant que le nombre ne correspond pas
print("Entrez un nombre entier d'au moins 10 chiffres")
n=int(input())
#Q2/ On enregistre ce nombre dans une liste L, à raison d'un chiffre par élément de la liste
L=[]
nombre=n
while nombre != 0:
L.append(nombre % 10)
nombre= nombre // 10
L.reverse()
#Q3/ Parcourir la liste pour afficher les chiffres pairs et impaires d'une couleur différente
for x in L:
if x % 2 == 0:
print('\033[35m',x,end=" "'\033[0m')
else:
print('\033[32m',x,end=" "'\033[0m')
print()
#Q4/ On enregistre dans une liste G les nombres de la liste L par groupe de 4
lespinx
Messages postés106Date d'inscriptionlundi 9 octobre 2006StatutMembreDernière intervention23 novembre 202274 26 mai 2020 à 11:22
Bonjour,
Voici une piste:
#Transformation de la liste L en une chaine de caractères
chaine = "".join(map(str, L))
print(type(chaine),chaine)
#Extraction de la chaine par ensemble de 4 caractères
z = 0 #Indice ==> 0 position de départ
liste = []
while z < len(chaine):
temp = chaine[z:z+4]
liste.append(temp)
z = z + 4
print(liste)
Ismouf
Messages postés4Date d'inscriptionlundi 25 mai 2020StatutMembreDernière intervention27 mai 2020 26 mai 2020 à 13:02
Bonjour,
Tout d'abord merci pour votre aide, mais ce n'est pas ce qui est vraiment demandé dans la question, il faut que la liste G contienne tout les groupes de 4 chiffres cote à cote de la liste L.
Exemple si L=[1,2,3,4,5,6,7,8,9,1,2,3] nous aurions G= [1234, 2345, 3456, 4567, 5678, 6789, 7891, 8912, 9123.]
lespinx
Messages postés106Date d'inscriptionlundi 9 octobre 2006StatutMembreDernière intervention23 novembre 202274 26 mai 2020 à 16:19
Il suffit de modifier la variation de l'indice:
#Transformation de la liste L en une chaine de caractères
chaine = "".join(map(str, L))
print(type(chaine),chaine)
#Extraction de la chaine par ensemble de 4 caractères
z = 0 #Indice ==> 0 position de départ
liste = []
while z < len(chaine):
temp = chaine[z:z+4]
if len(temp) < 4:
break
liste.append(temp)
z = z + 1
print(liste)
Ismouf
Messages postés4Date d'inscriptionlundi 25 mai 2020StatutMembreDernière intervention27 mai 2020 26 mai 2020 à 16:57
Super merci beaucoup !
Et dernière petite question, est-ce possible de reconvertir la liste G en une liste d'entier pour retirer les guillemet dans l'affichage de la liste ?
26 mai 2020 à 13:02
Tout d'abord merci pour votre aide, mais ce n'est pas ce qui est vraiment demandé dans la question, il faut que la liste G contienne tout les groupes de 4 chiffres cote à cote de la liste L.
Exemple si L=[1,2,3,4,5,6,7,8,9,1,2,3] nous aurions G= [1234, 2345, 3456, 4567, 5678, 6789, 7891, 8912, 9123.]