Création d'un mot probleme avec "str"
Salut à tous !
voila j'ai un petit soucis je vous met mon code et le message d'erreur.
Code:
1 2 3 4 5 6 7 8 9 10 11
| import random
n=input('entrer le nombre de lettre du mot ')
l1=[]
a=0
l=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
while a<n:
x=random.randrange(1,27)
x=x-1
l1=l1+l[x]
a=a+1
print l1 |
Traceback (most recent call last):
File "C:/Users/Utilisateur/Desktop/python/test1.py", line 9, in <module>
l1=l1+l[x]
TypeError: can only concatenate list (not "str") to list
>>>
voila je comprend pas car x est un nombre pas une chaine de caractere :/
Merci d'avance ! :lol:
utilisation de chr et ord
Salut
Python est 'listes' mais pas que...
- W
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
import random
ord_a = ord('a') # transforme 'a' en int valeur ascii de 'a'
alphabet = ''
for i in range(26):
alphabet += chr(ord_a + i) # transforme valeur ascii en caractere
# est ce que ca donne ce qu'on veut?
print ('alphabet: %(alphabet)s' % vars())
while True:
try: # histoire d'attraper les erreurs d'entrees
nombre_de_lettres = input('entrer le nombre de lettre du mot : ')
except Exception as e:
print e
continue
if not nombre_de_lettres :
break # si 0 on sort...
mot = '' # ben le mot est vide...
for i in range(nombre_de_lettres):
valeur = random.randint(0, 25)
mot += chr(ord_a + valeur) # ajout du caractere...
print 'le mot aleatoire est: %(mot)s' % vars()
print 'Bye' |