你能告诉我如何使用 python 中的 for 循环重复字符串中的每个字符吗?我的进展是:
def double(str):
for i in range(len(str)):
return i * 2
这只返回重复字符串的第一个字母
原文由 Martin Spasov 发布,翻译遵循 CC BY-SA 4.0 许可协议
一般变体,返回字符串,将原始字符串中的每个字符重复 n 次:
def multichar(text, n):
return ''.join([x * n for x in text])
解释:
''.join(...)
- 将 (…) 中的所有内容粘合在一起, 没有 空格,即 ''.join('a', 'b', 'c')
将返回 'abc'
。
' '.join('a', 'b', 'c')
将返回 'a b c'
。
'-'.join('a', 'b', 'c')
将返回 'a-b-c'
。
…你明白了:)
[x * n ...]
- repeats x
n
times, ie 'a' * 3
gives 'aaa'
.
[... for x in text]
- 正常 for
循环 - 遍历 text
中的每个元素。
代码最后一行的作用用 简单的英语 表示:
Glue without spaces every element in the list, generated by repeating x
n
times for every x
in text
.
示例:
>>> multichar('Hello', 2)
将返回:
>>> 'HHeelllloo'
原文由 Denis Rasulev 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
我相信您想按顺序将输入字符串的每个字符打印两次。您尝试的问题是您使用了
return
。您只想返回最终字符串,而不仅仅是循环内一个字符的一次重复。所以你希望你的 return 语句以某种方式在 for 循环之外。由于这听起来像是一道家庭作业题,因此在继续下面的内容之前,请尝试弄清楚如何在上面做到这一点。
还是卡住了?
按顺序打印字符串中的每个字符两次:
不使用 for 循环: