【问题标题】:Seeing what looks like a "declared" keyword in python在 python 中查看看起来像“已声明”的关键字
【发布时间】:2013-03-03 19:35:06
【问题描述】:

我正在参加一门在线 Python 课程,虽然我在登录提示时不知所措,但我仍在学习。

在线文本(用于回文程序)中给出了一个示例,其中给出了示例:

def toChars(s):
    s = s.lower()
    ans = ‘ ‘
    for c in s:
        if c in ‘abcdefghijklmnopqrstuvwxyz’:
            ans = ans + c
    return ans

让我适应的是 Python 如何理解“c”。据我所知,“c”被视为关键字,被理解为“char”的关键字,但 Python 从哪里得到它?我在任何地方都找不到任何解释,想知道是否有人可以让我明白这一点。

【问题讨论】:

  • 要检查某个东西是否是关键字,只需执行import keyword; print(keyword.kwlist)(在交互式解释器中),看看是否在那里找到它。

标签: python char keyword


【解决方案1】:

c 不是关键字,而是变量名。

在 Python 中,字符串是可迭代的。当你遍历一个字符串时,它会一个一个地产生它的字符。

因此如下:

for c in s:

简单地遍历s的字符并将每个字符依次分配给c

【讨论】:

  • 那么简单地声明它就可以工作?似乎每次我尝试这样做时都会被闲置一巴掌。
  • 我预计 python 会“是的,里面有一个 c。还有一个 a、a b、a w...”
  • @LarryPotterbaum 在 for 循环中 c 现在是一个名为 c 的临时变量,您可以将其重命名为 TEMPVAR 或其他名称。在 for 循环的每一次遍历中,我们逐个字符地遍历字符串,每次 c 指向字符串中的新位置(或字符)。
  • @Igriffiths:c 不是“临时的”。它与任何其他旧的局部变量一样是局部变量。
【解决方案2】:

for c in s: 所做的只是在s 中取一个字符,将其分配给变量c,然后执行for 循环体。然后,它将s 中的下一个字符分配给c 并继续。

例如,让s = "LARRY123"。首先,s = s.lower() 会将"larry123" 分配给s。在for 循环中,c 首先设置为'l'。然后if c in "abcdefghijklmnopqrstuvwxyz": 检查c 是否是一个字母,如果是,则将其附加到ans。在下一次迭代中,c 等于 'a'。然后'r'。等等。当c123 时,它不会附加到ans,因为它不是字母表。

最后,ans 将是larry。希望对您有所帮助。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-04-07
  • 2010-09-22
  • 2021-07-20
  • 1970-01-01
  • 1970-01-01
  • 2022-08-19
  • 1970-01-01
相关资源
最近更新 更多