首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >代码将所有奇数单词更改为偶数词,反之亦然。

代码将所有奇数单词更改为偶数词,反之亦然。
EN

Stack Overflow用户
提问于 2021-12-28 14:39:30
回答 1查看 41关注 0票数 0

完整问题:创建一个名为ChangeWords()的方法,将字符串中所有奇数编号单词转换为偶数单词,反之亦然,然后打印结果。要更改的字符串应作为参数传递给方法。例如,“现在是行动的时候了!”可以改为“现在是行动的时候了!”为此编写python代码和后续伪代码,其中字符串由用户通过键盘提供。输入:读取字符串输出: Changecase string (字符串中的所有奇数单词都为偶数词,反之亦然)边界:如果字符串为"None“或"NONE",则打印"NONE String”。

代码语言:javascript
运行
复制
def ChangeWords(wr):
    res=[]
    w1=wr.split()
    for index in range(len(w1)):
        for j in w1:
            if index%2==0:
                res.append(j[index-1])
            else:
                res.append(j[index+1])
    return ''.join(res)
str1=input()
if str1=="NONE"or str1=="none":
    print("NONE String")
else:
    print(ChangeWords(str1))

为什么这个不行?我不明白为什么它显示的指数超出了范围。谁能解释一下。

代码语言:javascript
运行
复制
s1=input()
l1=s1.split()
nl=[]
i=1
for item in l1:
    if i%2==0:
        nl.insert(i-1,l1[i])
    else:
        nl.insert(i+1,l1[i])
    i+=1
print(nl)

我在没有使用函数的情况下尝试了相同的程序,但是我想逻辑是一样的,因为我得到了相同的错误

EN

回答 1

Stack Overflow用户

发布于 2021-12-28 15:40:14

实际上,您是在循环字符串中给出的单词数,而不是每个子字符串中的字符数。假设您向函数ChangeWrods提供一个字符串"a b d“。您的索引将是0、1、2或3,但是单词只有一个字符长,因此只能由索引0访问。因此,您需要更改函数的逻辑,以遍历0到len(parsed_word)希望的范围,这有助于

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70508570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档