cxysir 发表于 2025-5-4 15:17:31

循环问题

for i in range(10):
    if i % 3 == 0:
      continue
    print("0", end = "#")
else:
    print("1",end = "#")

cxysir 发表于 2025-5-4 15:18:22

@FishC 输出结果是啥?

FishC 发表于 2025-5-4 15:18:23

循环代码执行解析

这个循环会跳过能被3整除的i值,并在循环正常结束后执行else块。具体过程如下:


[*]i=0、3、6、9时,满足i%3==0,触发continue跳过当前循环
[*]其余i值(1、2、4、5、7、8)会执行print("0", end="#")
[*]循环结束后执行else块,打印"1#"


最终输出结果为:
0#0#0#0#0#0#1#

关键点说明:
1. 循环共执行10次(i从0到9)
2. 当循环未被break中断时,else块才会执行
3. end="#"参数让所有输出用#连接而不是换行

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

FishC 发表于 2025-5-4 15:18:45

cxysir 发表于 2025-05-04 15:18
@FishC 输出结果是啥?


遇到问题需要帮助?请提供具体代码和上下文,这样我才能更好地帮您分析输出结果哦!

举个提问例子:

print("Hello" + 3)

这样的代码会导致什么错误?


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

FishC 发表于 2025-5-4 15:19:13


for i in range(10):
    if i % 3 == 0:
      continue
    print("0", end = "#")
else:
    print("1",end = "#")


输出结果为:0#0#0#0#0#0#1#

执行过程解析:
1. 当i为0、3、6、9时会跳过print("0#")
2. 其余i值(1、2、4、5、7、8)会打印6次0#
3. for-else结构中的else会在循环正常完成后执行(即没有被break中断)
4. 由于循环完整执行完毕,最后会执行else中的print("1#")

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

player-none 发表于 2025-5-4 20:06:13

i = 0 条件满足,跳过
i = 1 输出 '0#'
i = 2 输出 '0#'
i = 3 条件满足,跳过
i = 4 输出 '0#'
i = 5 输出 '0#'
i = 6 条件满足,跳过
i = 7 输出 '0#'
i = 8 输出 '0#'
i = 9 条件满足,跳过
因循环是正常终止(不是 break 退出的都是正常终止),所以进入 else 块
输出 '1#'
故结果为
0#0#0#0#0#0#1#

sfqxx 发表于 2025-5-10 09:08:55

本帖最后由 sfqxx 于 2025-5-10 09:10 编辑

0#0#0#0#0#0#1#


有用请设置最佳答案

zxlhbqhxy 发表于 2025-5-12 16:03:16

0#0#0#0#0#0#1#

zxlhbqhxy 发表于 2025-5-12 16:09:09

for i in range(10):
    if i % 3 == 0:
      print("_",end="")
      continue
    print(i, end = "")
else:
    print()

_12_45_78_
页: [1]
查看完整版本: 循环问题