gpt4 book ai didi

python - 带有枚举和 for 循环的代码在第一个字母上给我重复的结果

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

有人能帮我理解为什么这段代码两次返回第一个字母吗?目标是将字符串的第一个和第四个字母大写。

def old_macdonald(name):
newname=''
for i,letter in enumerate(name):
if i==0:
newname+=letter.upper()
if i==3:
newname+=letter.upper()
else:
newname+=letter
return newname

old_macdonald('Macdonald')

输出:

MMacDonald  # when it should be MacDonald instead of MM

最佳答案

第二个if语句应该是一个elif:

def old_macdonald(name):
newname=''
for i,letter in enumerate(name):
if i==0:
newname+=letter.upper()
elif i==3:
newname+=letter.upper()
else:
newname+=letter
return newname

old_macdonald('Macdonald') # 'MacDonald'

在你的代码中,在第一个字母上,第一个 if 语句运行,附加一个字母,移动到第二个 if 语句,失败,移动到 else 语句,并附加另一个字母,从而复制第一个字母。将第二个 if 更改为 elif,您可以保证三个 block 中只有一个会执行。

关于python - 带有枚举和 for 循环的代码在第一个字母上给我重复的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54175540/

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