2010-11-14 13 views
3

Je sais en java, si vous avez une variable char, vous pouvez effectuer les opérations suivantes:python "incrémentant" une chaîne de caractères?

char a = 'a' 
a = a + 1 
System.out.println(a) 

Ce imprimerait 'b'. Je ne connais pas le nom exact de ce que c'est, mais est-ce qu'il y a un moyen de le faire en python?

+2

En Java, une valeur 'char' est essentiellement identique à un entier non signé de 16 bits. Donc, l'incrémenter, c'est vraiment l'incrémenter. Cependant, Python ne traite pas les caractères de façon interchangeable avec des entiers. –

+1

Pour approfondir ce que Greg a dit, comment incrémenterais-tu "Je suis une chaîne"? Parce que c'est ce qu'est un 'char' en Python: une chaîne qui a la longueur 1. – aaronasterling

+0

Possible duplication de [Python: Comment puis-je incrémenter un caractère?] (Http://stackoverflow.com/questions/2156892/python- how-can-i-increment-a-char) – outis

Répondre

13

Vous pouvez utiliser ord et chr:

print(chr(ord('a')+1)) 
# b 

Plus d'informations sur ord et chr.

+0

Merci beaucoup. – Trim

0

Les solutions ci-dessus ne fonctionnent pas lorsque char est z et vous incrémentez de 1 ou 2,

Exemple: si vous avez rement z par incr (disons incr = 2 ou 3) alors (chr (ord ('z') + incr)) ne vous donne pas de valeur incrémentée car la valeur ascii est hors de portée.

pour façon générique que vous devez faire ce

i = a to z any character 
incr = no. of increment 
#if letter is lowercase 
asci = ord(i) 
if (asci >= 97) & (asci <= 122):    
    asci += incr 
    # for increment case 
    if asci > 122 : 
    asci = asci%122 + 96 
    # for decrement case 
    if asci < 97: 
     asci += 26 
    print chr(asci) 

cela fonctionnera pour incrémentent ou décrémentent les deux. Il est possible de faire la même chose pour une lettre majuscule, seule la valeur asci sera modifiée.