[英]"Slicing" and "Replacing" a string for homework
我的 class 遇到了問題。 問題的圖片在下面。 我正在嘗試使用序數函數/值將這個字符串“abcd efgh ijkl”轉換為這個“AbCd eFgH IjKl”以大寫偶數索引號。
這是我到目前為止得到的:
def mock(string):
index = 0
for i in string:
if string.find(i, index) % 2 == 0:
string.replace(i,(chr(ord(i) - 32)))
index = string.find(i) + 1
return string
print(mock("abcd efgh ijkl"))
任何幫助表示贊賞。
str.replace
返回字符串,但您沒有將返回值分配給任何內容。 您還需要正確處理空格(感謝@JacobStrauss 進一步簡化!)
def mock(string):
for i in string:
if i != ' ' and string.find(i) % 2 == 0:
string = string.replace(i, (chr(ord(i) - 32)))
return string
print(mock("abcd efgh ijkl"))
印刷:
AbCd eFgH IjKl
感謝 Andrej Kesely 提供了一個解決方案,但我只是想稍微改進一下。 由於您已經在遍歷字符串,並且 .find() 方法返回索引 position,因此您不需要跟蹤索引。 我已經測試了下面的代碼,它也可以正常工作。
def mock(string):
for i in string:
if i != ' ' and string.find(i) % 2 == 0:
string = string.replace(i, (chr(ord(i) - 32)))
return string
以上返回“AbCd eFgH IjKl”
使用 for 循環和按索引字符排列字符串
def capitalize(string):
result=""
for i in range(len(string)):
if i%2==0:
result+=string[i].upper()
else:
result+=string[i]
return result
string="abcd efgaah ijklaaa"
print(capitalize(string))
output:
AbCd eFgAaH IjKlAaA
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.