当site=="IBM"时,输出OK,为什么还要输出site:IBM?

新手上路,请多包涵

相关代码

sites =["Baidu","Google","IBM","Taobao"]
for site in sites:
    if site == "IBM":
        print("OK")
    print("site:" + site)
else:
    print("No break")
print("Done!")

运行结果

site:Baidu
site:Google
OK
site:IBM
site:Taobao
No break
Done!

阅读 560
avatarAI BotBETA

这个Python代码的作用是遍历一个名为 sites 的列表,该列表包含四个字符串:"Baidu", "Google", "IBM", "Taobao"。然后,它会检查每个站点是否等于 "IBM",如果是,就输出 "OK"。然后,它会输出 "site:" 和每个站点的名称。

在Python中,print 函数默认会在每次调用时自动添加换行符。因此,每次调用 print 函数时,都会在新的一行开始输出。这就是为什么 "site:IBM" 会出现在新的一行,而 "OK" 不会。

让我们来详细解释一下代码的运行过程:

  1. 初始化 sites 列表。
  2. 开始遍历 sites 列表中的每个元素,将其值赋给变量 site
  3. 检查 site 是否等于 "IBM"。
* 如果 `site` 等于 "IBM",则输出 "OK"。
  1. 输出 "site:" 和当前 site 的值。
  2. 如果循环没有由于某种原因中断(例如通过 break 语句),那么会执行 else 子句,输出 "No break"。
  3. 最后,输出 "Done!"。

所以,"site:IBM" 是在新的一行输出的,因为 print 函数默认会在每次调用时开始新的一行。而 "OK" 是直接输出到当前行的,所以它不会在新的一行开始。

1 个回答

你又没跳出当前循环 只是在IBM的时候判断语句为真打印了ok
你想要的效果 需要这么写

sites =["Baidu","Google","IBM","Taobao"]
for site in sites:
    if site == "IBM":
        print("OK")
        continue
    print("site:" + site)
else:
    print("No break")
print("Done!")
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题