這裏學習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