Python:使用循环更改范围位置

Python:使用循环更改范围位置,python,loops,range,Python,Loops,Range,我想让我的程序打印字符串“welcome”中的每一个字母。 比如: 以下是我目前掌握的代码: stringVar = "welcome" countInt = 7 count = 0 oneVar = 1 twoVar = 2 showVar = stringVar[oneVar:twoVar] for count in range(countInt): count = count + 1 oneVar = oneVar + count twoVar = twoVar + count p

我想让我的程序打印字符串“welcome”中的每一个字母。 比如:

以下是我目前掌握的代码:

stringVar = "welcome"
countInt = 7

count = 0
oneVar = 1
twoVar = 2

showVar = stringVar[oneVar:twoVar]

for count in range(countInt):
count = count + 1
oneVar = oneVar + count
twoVar = twoVar + count

print(showVar)
虽然它只显示第二个字母“e”。
如何更新变量oneVar和twoVar,使范围在循环期间发生变化?

有一个内置的符号,称为:


stringVar
像列表一样可编辑,因此表示法的意思是
[开始:结束:步骤]
。将其中任何一个留空都会隐式地假定来自
[0:len(stringVar):1]
。有关更多详细信息,请阅读链接帖子。

有一个内置的符号,称为:


stringVar
像列表一样可编辑,因此表示法的意思是
[开始:结束:步骤]
。将其中任何一个留空都会隐式地假定来自
[0:len(stringVar):1]
。有关更多详细信息,请阅读链接帖子。

为什么它不能在您的snipet中工作:

即使在循环中增加了oneVar和twoVar,showVar也没有变化,因为showVar是字符串,是不可变类型,它的打印stringVar[1:2]是
e
的第二个索引
welcome

只需修复您的代码片段: 你可以这样试试

stringVar = "welcome"
countInt = 7

for count in range(1,countInt,2):
   print count, stringVar[count]
输出:

e
c
m

为什么它不能在你的snipet中工作:

即使在循环中增加了oneVar和twoVar,showVar也没有变化,因为showVar是字符串,是不可变类型,它的打印stringVar[1:2]是
e
的第二个索引
welcome

只需修复您的代码片段: 你可以这样试试

stringVar = "welcome"
countInt = 7

for count in range(1,countInt,2):
   print count, stringVar[count]
输出:

e
c
m

另一种更复杂的方法是

string_var = "welcome"

for index, character in enumerate(string_var, start=1):  # 'enumerate' provides us with an index for the string and 'start' allows us to modify the starting index.
    if index%2 == 0:
        print character

另一种更复杂的方法是

string_var = "welcome"

for index, character in enumerate(string_var, start=1):  # 'enumerate' provides us with an index for the string and 'start' allows us to modify the starting index.
    if index%2 == 0:
        print character

他不想要每一个角色:)我是不是搞错了什么?我想我是在解释为什么他只得到了第二个字符。他只需要
ecm
他不需要每一个字符:)我是不是搞错了什么?我想我是在解释为什么他只得到了第二个角色。他只需要
ecm