我正在学习 Python,但有一个我似乎无法破解的实验室。我们有一条线,例如shacnidw
,必须转换为 sandwich
。我不知何故需要用 for
循环进行迭代并首先选择具有奇数索引的字母,然后是向后偶数索引。比如选择一个索引为 1,3,5,7,8,6,4,2 的字母。
使用列表或切片看起来很明显,但我们还不允许使用这些函数。我想问题是我该怎么做?
答案 0 :(得分:3)
我希望我能正确理解您的问题。检查下面的代码。
s = 'shacnidw'
s_odd = ""
s_even = ""
for i in range(len(s)):
if i%2 == 0:
s_even += s[i]
for i in range(len(s), 0, -1):
if i%2 == 1:
s_odd += s[i]
print(s_even + s_odd)
我希望它会有所帮助。
答案 1 :(得分:2)
编程就是将复杂的问题分解为更简单的问题。尝试将其分解为更小的步骤。
for
循环中生成数字 1、3、5、7?解决这两个步骤应该会让你走上正轨。
答案 2 :(得分:2)
您的文本看起来采用特定模式,可以使用以下语法实现。
<块引用>1, 3, 5, 7 : for n in range(1, size, 2) : 向前步长 2
8, 6, 4, 2 : for m in range(size, 0, -2) : 反向步长 2
通过使用上述索引构建字符串,我们可以轻松得出预期结果。
string = 'shacnidw'
result = ''
size = len(string) - 1
for n in range(0, size, 2):
result += string[n]
for m in range(size, 0, -2):
result += string[m]
print(result)
结果
sandwich