这里学习Python:我只是试图切换字符串中的字符。例如:'A'到'C'。字符串只是没有做任何事情。这是我到目前为止:Python字符串操作问题
import string
dummy = "beans"
for i in xrange(len(dummy)):
chr(ord(dummy[i])+5)
print(dummy)
这里学习Python:我只是试图切换字符串中的字符。例如:'A'到'C'。字符串只是没有做任何事情。这是我到目前为止:Python字符串操作问题
import string
dummy = "beans"
for i in xrange(len(dummy)):
chr(ord(dummy[i])+5)
print(dummy)
请记住,字符串是不可变的,所以你需要重新分配你的原始字符串。您可以尝试的东西沿着这些路线:
dummy = "beans"
newdummy = ""
for i in xrange(len(dummy)):
newdummy += chr(ord(dummy[i])+5)
dummy = newdummy
print(dummy)
这将是一个更Python化方法:
dummy = ''.join(chr(ord(c) + 5) for c in dummy)
print(dummy)
字符串在Python是不可改变的。这意味着你不能改变它们,所以你必须重新分配变量到一个新的字符串。
下面是一个例子:
import string
dummy = "beans"
for i in xrange(len(dummy)):
dummy = dummy[:i] + chr(ord(dummy[i])+5) + dummy[i+1:]
print(dummy)
或者更短的方式:
dummy = "beans"
dummy = "".join([chr(ord(c)+5) for c in dummy])
的string.maketrans应该更优雅的位置:
import string
src = string.ascii_letters
dst = string.ascii_letters[5:] + string.ascii_letters[:5]
trans = string.maketrans(src, dst)
new_dummy = dummy.translate(trans)
的详细信息,请参考文件string.maketrans。
您可以通过执行此操作:
mystring="hello"
newstring=""
for x in range(len(mystring)):
newstring+=chr(ord(mystring[x])+5)
然而
,请知道,如果你这样做,你会得到最多的ASCII值251,加入5将抛出一个错误,所以你应该检查任何值您使用的if语句,如:
if ord(character)+value<255:
##your ok
else:
##uh oh...
谢谢你,我用C++所以Python似乎有点... :)不同 –
@AlexanderGardner没错高兴能帮上忙:-)是的python提供*很多* C++等语言无法使用的实用程序,因此需要时间才能习惯。无论如何,不要忘记接受答案! – arshajii