如何解决如何在for循环中控制迭代器值?
我想用Python重现这个JavaScript气泡,但是我不确定如何继续。
for (i=0;i<toks.length && toks[i]!='\r'; i+=10)
解决方法
您可以使用while编写它
cli = 'echo -e "[azure-cli] \ nname = Azure CLI \ nbaseurl = https: //packages.microsoft.com/yumrepos/azure-cli \ nenabled = 1 \ ngpgcheck = 1 \ ngpgkey = https: //packages.microsoft.com/keys/microsoft.asc "> /etc/yum.repos.d/azure-cli.repo '
execute "Install Azure CLI 1" do
command "sudo rpm --import https://packages.microsoft.co/keys/microsoft.asc"
end
execute "Install Azure CLI 2" do
command "sudo sh -c " + cli
end
execute "Install Azure CLI 3" do
command "yes | sudo yum install azure-cli"
end
,
个人而言,我不喜欢使用索引循环,因此我建议使用for
状态的python break
循环(这会停止循环)。关于每个10th
循环逻辑,可以使用toks[::10]
来实现。
所以最终的代码是:
for v in toks[::10]:
if v == '\r':
break
print(v)
,
如果您想为每个循环的迭代器变量添加10,则只需将其作为参数传递给range函数即可:
for i in range(0,MAX_ITERATIONS,10):
pass
range函数采用3个参数:用于初始化迭代器变量的值,最大迭代次数以及每个循环要添加到迭代器变量的值(默认值为1)。
在python中这样的代码将是这样的:
for i in range(0,len(toks),10):
if toks[i] == '\r':
break
,
您可以使用range的第三个参数配置增量,然后在循环中检查退出条件
toks = list(range(100))
toks[30] = '\r'
for i in range(0,10):
if toks[i] == '\r':
break
print(toks[i])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。