我正在 codewars.com 上做這個編碼練習,但我被卡住了。我不是在尋找完整的解決方案。相反,我想看看我的推理是否正確,以及我嘗試做的事情是否可行。
輸入:所以我有一個字串:“字串”。我想列印這個字串中的第一個字符(“s”)一次,這個字串中的第二個字符(“t”)兩次,這個字串中的第三個字符(“r”)三次,依此類推,直到字串的結尾。輸出:s-tt-rrr-iiii-nnnnn-gggggg
到目前為止,我唯一要做的就是迭代這個字串中的每個字符。
''' string = "string" for char in string: print(char, end="-") '''
細繩-
我想到的解決方案是迭代字串中的每個字符列印每個字符*(次)他在字串中的位置(其索引號) 1
含義:“S”在索引 0 處, 1 成為第一個字母,因此“s”被列印一次。“T”在索引 1 處, 1 成為第二個字母所以“t”被列印兩次......
然后我嘗試了這個:
''' string = "string" for char in string: print(char * string[char], end="-") '''
但這不起作用,因為我得到了一個 TypeError: 字串索引必須是整數。
然后我在想:是否可以遍歷字串中的每個字符,將其分配給一個變數,然后使用這些變數進行操作?含義 string[0] 或“s”將變為 variable_1 = 1(字串中的第一個字母),我將其乘以字串中的第一個字母(“s”)。
你怎么認為?這可以作業還是我的解決方案還行?
PS:我通讀了 StackOverflow 關于提問的指南,并盡我所能盡可能清楚地表述我的問題。如果有任何關于做得更好的提示,如果您愿意與我分享,我將不勝感激。我正在學習如何編程以及如何提出有益于我學習的好問題。
感謝您花時間閱讀我的問題。斯坦
uj5u.com熱心網友回復:
enumerate 為每次迭代獲取整數索引和元素很方便。
def f(x):
size = len(x)
for i, char in enumerate(x):
num = i 1 # number of characters
if num == size: # don't print - after last character
ending = ""
else:
ending = "-"
print(num*char, end = ending)
f("string")
你的邏輯只是有點偏離。如果我們不使用enumerate而只是用整數索引一個字串:
def g(x):
size = len(x)
for i in range(size):
num = i 1 # number of characters
if num == size: # don't print - after last character
ending = ""
else:
ending = "-"
print(num*x[i], end = ending)
uj5u.com熱心網友回復:
面試官問了我同樣的問題。我這樣寫這段代碼
代碼
string = "string"
final_data = []
count = 1
for i in list(string):
final_data.append(i*count)
count = 1
output = "-".join(final_data)
print(output)
uj5u.com熱心網友回復:
我知道您已經閱讀了提問指南,我唯一的建議是使用代碼塊。
我試圖解決你的問題,這是我的代碼
x = ["string"]
for i in x:
p = 0
while p < 6:
print(i[p]*p)
p = 1
這輸出:
t
rr
iii
nnnn
ggggg
我相信你可以改進這一點,祝你有美好的一天!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/342458.html
