【问题标题】:While function with string argument带字符串参数的函数
【发布时间】:2021-02-03 22:53:48
【问题描述】:

我正在尝试学习 Python,但无法理解为什么我发现这个 while 循环中断了:

while string:
    print("Test")
    string = string[3:]

以举例

string = "123456789"

输出是:

Test
Test
Test

我理解 while 函数的方式是,它仅在 while 命令后面的表达式为 False 时才中断。但是string = string[3:]怎么可能是False,我的意思是它只是将字符串形式从“123456789”更改为“456789”?

感谢您的任何提示!

【问题讨论】:

  • Python 与 JavaScript 和 PHP 一样具有“虚假”值。例如,空字符串是“假的”。您的字符串以"123456789" 开头,然后是"456789",然后是"789",然后是"",这被认为是falsewhile 循环中断。
  • 如果您无法通过查看程序来理解程序的工作原理,请拿一张网格线纸并手动执行它。您不需要计算机来进行计算:)
  • 非常感谢你们。这是有道理的!

标签: python string while-loop


【解决方案1】:

在第一次迭代之后,我们已经

string = 456789

第二次迭代后

string = 789

之后,当我们分配 string[3:](现在变成 '' empty string) 这是假值并且循环退出

【讨论】:

  • 谢谢!我忘了它每次迭代都会删除部分字符串。
【解决方案2】:

既然你已经把 字符串 = 字符串 [3:] 在迭代中,每次循环执行时,它都会删除前 3 位数字 [4,5,6,7,8,9] 第一次迭代后 然后 [7,8,9] 第二次迭代后 最后 [] 第三次迭代后 这使它成为错误的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 2021-10-28
    • 2020-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    相关资源
    最近更新 更多