相关疑难解决方法(0)

我为什么要在循环中使用foreach而不是for(int i = 0; i <length; i ++)?

在C#和Java中循环的酷炫方式似乎是使用foreach而不是C style for循环.

我有理由比C风格更喜欢这种风格吗?

我对这两种情况特别感兴趣,但请解决您需要解决的问题.

  • 我希望对列表中的每个项目执行操作.
  • 我正在搜索列表中的项目,并希望在找到该项目时退出.

.net c# java foreach loops

45
推荐指数
7
解决办法
3万
查看次数

为什么要避免while循环?

作为一门入门语言,我在Python学习中大约有两周的时间.我在Zed的"艰难学习Python"中提到了一点,他建议:

使用while循环只能永远循环,这意味着可能永远不会.这仅适用于Python,其他语言则不同.

我已经用Google搜索了所有内容,引用了我能做的一切,但我在世界上找不到任何理由为什么这会成为Python中的惯例.是什么让它与众不同?

当我在10年前放弃编程时,我在VB工作,并经常被告知摆脱我的For循环并使用While循环.我是一个黑客(就像我今天,虽然我当时写了很多代码),所以我只是做了我被告知的事情,而不是质疑它.好吧,现在我在质疑它.这是速度问题吗?是否只是为了避免逃避无限?

python

26
推荐指数
4
解决办法
6908
查看次数

在数组> 0中查找最小值

我期待找到数组中的最低正值及其在列表中的位置.如果列表中的值重复,则只关注FIRST实例.这就是我所拥有的,它包括我想要的但包括0.

print "Position:", myArray.index(min(myArray))
print "Value:", min(myArray)
Run Code Online (Sandbox Code Playgroud)

例如,如果,

myArray = [4, 8, 0, 1, 5]

然后位置:2,值:0

我希望它呈现位置:3,价值:1

python search list min

15
推荐指数
2
解决办法
3万
查看次数

结束循环与计数器和条件

在Python中,我可以实现一个带有步进计数器的循环和一个停止条件作为for循环的经典案例:

for i in range(50):
    result = fun(i)
    print(i, result)
    if result == 0: 
        break
Run Code Online (Sandbox Code Playgroud)

fun(x)从整数到整数的任意函数在哪里.

我一直怀疑这是否是编码它的最佳方式(从Python语言,在可读性效率方面)或者更好地将它作为while循环运行:

i = 0
result = 1
while result != 0 and i < 50:
    result = fun(i)
    print(i, result)
    i += 1
Run Code Online (Sandbox Code Playgroud)

哪种方法更好?特别是 - 我担心使用不合适的break陈述.

python loops

12
推荐指数
2
解决办法
5640
查看次数

如何收集列表、字典等中重复计算的结果(或制作修改每个元素的列表的副本)?

Stack Overflow 上有很多关于这个一般主题的问答,但它们要么质量很差(通常是初学者的调试问题暗示的),要么以其他方式错过了目标(通常是不够通用)。至少有两种极其常见的方法会使幼稚的代码出错,初学者从关于循环的规范中获益更多,而不是从将问题作为拼写错误或关于打印所需内容的规范中获益。所以这是我尝试将所有相关信息放在同一个地方。

假设我有一些简单的代码,可以对一个值进行计算x并将其分配给y

y = x + 1

# Or it could be in a function:
def calc_y(an_x):
    return an_x + 1
Run Code Online (Sandbox Code Playgroud)

现在我想重复计算 的许多可能值x。我知道for如果我已经有要使用的值列表(或其他序列),我可以使用循环:

xs = [1, 3, 5]
for x in xs:
    y = x + 1
Run Code Online (Sandbox Code Playgroud)

while或者,如果有其他逻辑来计算值序列,我可以使用循环x

def next_collatz(value):
    if value % 2 == 0:
        return value // 2
    else:
        return 3 * value + 1

def collatz_from_19():
    x = 19
    while x != 1:
        x …
Run Code Online (Sandbox Code Playgroud)

python iteration list-comprehension

5
推荐指数
1
解决办法
2855
查看次数

改变Python循环中的步骤

在Python 2.7中,我想根据for循环中满足的细节条件修改循环的步骤.像这样的东西:

step = 1
for i in range(1, 100, step):
    if ...... :
        step = 1
        #do stuff
    else:
        step = 2
        #do other stuff
Run Code Online (Sandbox Code Playgroud)

但似乎这不可能做到,step总是1.

谢谢.

python

3
推荐指数
2
解决办法
3万
查看次数

用1000位数计算第一个Fibonacci数(Project Euler#25)

奇怪的是,我的代码给了我第4781个数字,当我知道它是第4782个斐波纳契数(我和朋友比较).我不想提交,直到我的代码可以做到.

这是我的代码:

import sys
FibNums = []
a=1
b=2
c=3
FibNums.append(a)
FibNums.append(b)
FibNums.append(c)
for i in range(1, sys.maxsize):
    a = b
    b = c
    c = a + b
    FibNums.append(c)
    if len(str(c)) == 1000:
         break
 print (len(FibNums))
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我找到错误吗?我检查了,我的列表没有跳过任何东西(它确实包含1作为第一个索引).谢谢!

python

2
推荐指数
1
解决办法
1936
查看次数

当循环变量递增时,为什么for循环中没有跳过迭代?

def loop():
    for i in range (0,9):
        pass
        if i == 3:
            i = i +3

        print(i)

loop()
Run Code Online (Sandbox Code Playgroud)

当前输出:

0
1
2
6
4
5
6
7
8
Run Code Online (Sandbox Code Playgroud)

期待输出:

0
1
2
6
7
8
9
Run Code Online (Sandbox Code Playgroud)

这是否必须对Python中创建堆栈帧的方式做些什么?为什么即使我们增加i,迭代次数也不会减少?

python loops for-loop

0
推荐指数
1
解决办法
88
查看次数

标签 统计

python ×7

loops ×3

.net ×1

c# ×1

for-loop ×1

foreach ×1

iteration ×1

java ×1

list ×1

list-comprehension ×1

min ×1

search ×1