此代码必须使用for循环打印所有其他字符

时间:2019-04-03 21:12:32

标签: python string char

目标:以大写值打印用户输入的字符串中的其他所有字符

我插入了一个切片,但是代码无法执行我想要的方式。

python
s=input("Please enter a string: ")
for char in s:
    print (char[0::2].upper())

如果用户输入问候,则应打印:

H
L
O

2 个答案:

答案 0 :(得分:0)

尝试一下:

s=input("Please enter a string: ")
print(s[0::2].upper())

答案 1 :(得分:0)

您已经使用了两个迭代循环;问题只需要一个。

您的for遍历字符串的每个字符。对于输入“ hello”,它将循环五次。 char将依次采用值hello

在循环主体中,您插入了一个额外的迭代:字符串切片[0::2]。首先,第二次迭代对您没有任何帮助。接下来,这是错误,因为您将其应用于了char,它是单个字符,而不是字符串。

您需要将替代字符切片应用于 string ,而不是应用于五个字符中的每个字符。或者,您可以遍历五个字符并仅打印偶数个字符。

切片:

print(s[0::2].upper())

输出:

HLO

迭代:

for idx, char in enumerate(s):
    if idx%2 == 0:
        print(char.upper())

输出:

H
L
O