gpt4 book ai didi

python - 我可以使用 for 循环而不是 while 循环吗?

转载 作者:太空狗 更新时间:2023-10-30 02:12:38 25 4
gpt4 key购买 nike

我有一个关于循环的非常基本的问题。我正在尝试进入编程领域,目前正在阅读“Learn Python The Hard Way”一书,并在 ex 33 上进行了第 5 次学习练习: http://learnpythonthehardway.org/book/ex33.html

我的代码是这样的:

i = 0
numbers = []

def main(i, numbers):
userloop = int(raw_input("Type in max value for the loop > "))
while i < userloop:

print "At the top i is %d" % i
numbers.append(i)
userincrease = int(raw_input("Increase > "))
i += userincrease

print "Numbers now: ", numbers
print "At the bottom i is %d" % i


print "The numbers: "
print numbers
for num in numbers:
print num


main(i, numbers)

问题是我想使用 for 循环而不是 while 循环。那有可能吗,然后我该怎么做?我试过简单地交换

while i < userloop:

for i in range(userloop)

但是,每次到达循环的“顶部”时,i 值都会重新设置。

由于我对此非常陌生,如果我遗漏了一些明显的东西,请不要太刻薄。

顺便说一句,有谁知道这本书是否适合入手,或者我是在浪费时间吗?

最佳答案

python 中的 for 循环循环遍历 in 之后的表达式提供的一系列值。在 Python 中,我们使用术语 iterable 来表示任何可以产生这样一个系列的东西。这可以是 range(),但它可以是任何可以迭代(循环)的东西。循环变量 i 在每次迭代中接收下一个值,无论之前的值是什么。

因此,以下是合法的:

for i in ('foo', 'bar', 'baz'):
print i
i = 'spam'

但是 i = 'spam' 基本上什么都不做。

您必须以不同的方式处理它; 跳过这些值:

print_at = 0
for i in range(userloop):
if i >= print_at:
print "At the top i is %d" % i
numbers.append(i)
userincrease = int(raw_input("Increase > "))
print_at = i + userincrease

print "Numbers now: ", numbers
print "At the bottom i is %d" % i

每次您要求用户增加时,我们都会将值print_at更新为i的当前值加上增加的总和,然后继续忽略大部分循环体,直到 i catch print_at

关于python - 我可以使用 for 循环而不是 while 循环吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14347179/

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