3 回答

TA貢獻1811條經驗 獲得超5個贊
twoexpoint - 1
是您需要的字符串相對于輸入字符串的最后一個索引。所以你需要的是從該索引開始并減少。在你的 while 循環中:
letter?=?test[twoexpoint-?number?-?1]
每次增加迭代number
都會減少索引并反轉字符串。
但這樣你實際上并沒有使用userstring
你已經找到的(除了長度......)。不用關心索引,只需反轉userstring
:
for?letter?in?userstring[::-1]: ????print(letter)

TA貢獻1946條經驗 獲得超3個贊
說明我們使用正則表達式來查找模式,然后循環查找每個出現的情況,并用反轉的字符串替換該出現的情況。我們可以在 python 中反轉字符串mystring[::-1]
(也適用于列表)
import re # I recommend using regex
def reverse_string(a):
? ? matches = re.findall(r'\!(.*?)\!', a)
? ? for match in matches:
? ? ? ? print("Match found", match)
? ? ? ? print("Match reversed", match[::-1])
? ? ? ? for i in match[::-1]:
? ? ? ? ? ? print(i)
In [3]: reverse_string('test test !test! !123asd!')
Match found test
Match reversed tset
t
s
e
t
Match found 123asd
Match reversed dsa321
d
s
a
3
2
1

TA貢獻1860條經驗 獲得超8個贊
你把事情想得太復雜了。不要理會索引,只需使用reversed()
onuserstring
循環遍歷字符本身:
userstring = test[expoint+1:twoexpoint]
for letter in reversed(userstring):
? ? print(letter)
或者使用反向切片:
userstring = test[twoexpoint-1:expoint:-1]
for letter in userstring:
? ? print(letter)
添加回答
舉報