【问题标题】:Code to change all odd numbered words to even numbered words and vice-versa将所有奇数单词更改为偶数单词的代码,反之亦然
【发布时间】:2021-12-28 14:39:30
【问题描述】:

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

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))

为什么这不起作用?我不明白为什么它显示索引超出范围。谁能解释一下。

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)

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

【问题讨论】:

    标签: python python-3.x list function loops


    【解决方案1】:

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

    【讨论】:

    • 甚至在底部的代码中?
    猜你喜欢
    • 1970-01-01
    • 2020-08-28
    • 2020-01-23
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多