gpt4 book ai didi

python - 你如何反转/大写字符串中的单词

转载 作者:太空宇宙 更新时间:2023-11-04 05:08:35 25 4
gpt4 key购买 nike

我需要编写一个 python 函数,将字符串句子中的每个偶数单词大写,并反转该字符串中的每个奇数单词。例如:

aString = "Michelle ma belle 这些词搭配得很好"

bString = "MICHELLE am BELLE eseht ARE sdrow THAT og TOGETHER llew "

我对如何执行此操作有非常基本的了解,但不是真的。

这是我目前所拥有的...

def RewordProgram(a):
L = input("enter a sentence, please")
if L[0:][::2]: # for even words
b = L.upper()
return b
else if L[1:][::2]: # for odd words
c = L[::-1]
return c

有人可以帮我理解我做错了什么吗? if else 函数对我不起作用,我不知道如何将 b 和 c 重新编译成新字符串。这可能吗?

最佳答案

在您的代码中,您查看的是单个字符,而不是单词。 L是一个字符串,所以需要使用split()来获取单词。如果您是新手,最好尽可能多地打印出来。打印 L[0:]L[0:][::2] 的值将非常有用,并且可以告诉您执行路径。

L[0:][::2] 实际上只是返回整个字符串的每个第二个字符。 L[0:]L 相同,因为它创建了一个从索引 0 到字符串末尾的字符串...然后是 [::2] 跳过每个第二个字符。

print 是你的 friend ! .. 可能结合使用调试器,但打印也可以完成这项工作。

你可以用生成器表达式解决这个问题:

text = "Michelle ma belle these are words that go together well"
r = ' '.join(w[::-1] if i % 2 else w.upper() for i, w in enumerate(text.split()))
print(r)

这个的详细版本是(不那么可怕):

words = []
for i, w in enumerate(text.split()):
# odd
if i % 2:
words.append(w[::-1])
else:
words.append(w.upper())
print(" ".join(words))

另请注意 enumerate 的使用,它将为每次迭代返回一个 (index, value) 元组。

关于python - 你如何反转/大写字符串中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43691007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com