如何递增一个字符?

119 投票
7 回答
154108 浏览
提问于 2025-04-15 18:36

我刚开始学Python,之前用过Java和C语言。我想知道怎么给字符加一。在Java或C语言中,字符和整数几乎可以互换使用,有时候在循环中能给字符加一对我来说非常有用,这样我也可以用字符来索引数组。

那在Python中我该怎么做呢?没有传统的for(;;)循环已经让我觉得很糟糕了,有没有办法让我实现我想要的功能,而不需要完全重新考虑我的思路呢?

7 个回答

6

看看这个:使用for循环

for a in range(5):
    x='A'
    val=chr(ord(x) + a)
    print(val)

循环输出:A B C D E

16

“没有传统的 for(;;) 循环,这也太糟糕了吧?”这是什么意思呢?

你是不是在尝试做

import string
for c in string.lowercase:
    ...do something with c...

或者你可能在用 string.uppercasestring.letters

Python 里没有 for(;;) 这种写法,因为通常有更好的方法来实现同样的功能。而且,Python 也没有字符运算,因为那也不是必需的。

201

在Python 2.x中,你只需要使用ordchr这两个函数就可以了:

>>> ord('c')
99
>>> ord('c') + 1
100
>>> chr(ord('c') + 1)
'd'
>>> 

而在Python 3.x中,这一切变得更加清晰和有趣,因为它明确区分了字节和Unicode。默认情况下,"字符串"就是Unicode,所以上面的用法是有效的(ord可以接收Unicode字符,而chr可以生成这些字符)。

不过,如果你对字节感兴趣(比如处理一些二进制数据流),那就更简单了:

>>> bstr = bytes('abc', 'utf-8')
>>> bstr
b'abc'
>>> bstr[0]
97
>>> bytes([97, 98, 99])
b'abc'
>>> bytes([bstr[0] + 1, 98, 99])
b'bbc'

撰写回答