当前位置: 首页 > 知识库问答 >
问题:

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

公西苗宣
2023-11-20

相关代码

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!

共有2个答案

赵英哲
2023-11-20

你又没跳出当前循环 只是在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!")
许毅
2023-11-20

这个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" 是直接输出到当前行的,所以它不会在新的一行开始。

 类似资料:
  • 问题内容: 这让我感到很奇怪,我花了一段时间检查代码中的错误之后才发现这一点。 “将副本从数据库表或视图复制到文件。如果指定现有文件,则该文件将被覆盖。提取数据时,请注意bcp实用程序将空字符串表示为null,并将空字符串表示为空字符串。 ” (来自http://msdn.microsoft.com/en- us/library/ms162802.aspx ) 显然,这可以解决我的问题,但是有人可

  • 我的理解是 x == 0 首先运行。但是 x 在计算时仍然是 -1 (y = y / x) == 0?否则它将除以零。我以为输出将是 -5,但日食说 5。我快疯了。

  • 我是java初学者,我对上述程序的输出感到困惑。请给我解释一下输出的原因。

  • 问题内容: 在我的实际项目中,这是我修改后的小程序,偶然发生。 我不知道为什么它给输出 10 吗? 之后,我放了两个零,仍然给出输出10。 然后我将 012 更改 为0123 ,现在输出83? 谁能解释为什么? 问题答案: 比我将012更改为0123,现在输出为83? 因为它被当作八进制基数(8),因为该数字的前导数字为0。因此,它对应的十进制值为10。 012: 0123:

  • 问题内容: 如果你碰巧有 在程序(或模块)的中间,您将得到警告: 我理解为什么通常不鼓励这样做(命名空间不可见),但是在很多情况下,这样做很方便,尤其是在不与任何人共享代码的情况下。 那么,谁能准确地详细解释为什么在所有可能的情况下都应禁止这样做? 问题答案: 我相信通过“在您的程序中间”,您正在谈论函数定义 内 的导入: 不允许这样做,因为这会使优化函数主体过于困难。Python实现希望在对函数

  • 在基准测试时,我测量到的吞吐量比我计算的低得多,我将其缩小到LZCNT指令(它也发生在TZCNT中),如以下基准测试所示: 和: 我是在4770K上运行的,所以LZCNT和TZCNT不是作为BSR/BSF执行的。 这是怎么回事?