【问题标题】:Iterate a string using a for loop and accesing indexes in python 3使用for循环迭代字符串并在python 3中访问索引
【发布时间】:2017-01-31 15:36:22
【问题描述】:

我正在尝试迭代一个字符串来执行一个 if 语句来检查它是否大写,例如:

s="abcd"
for x in s:
    if s[x].isupper():
        print(s[x])

但是这不起作用。但是如果我使用while 循环,它就可以工作:

i=0
while i < len(s):
    if s[i].isupper():
        print(s[i])

我只想知道while循环是否可以用for循环来实现

【问题讨论】:

    标签: python-3.x for-loop while-loop


    【解决方案1】:

    这是因为for 循环迭代字符。所以x 在你的for 循环中是一个字符,不是索引

    s="abcd"
    for x in s:
        if x.isupper():
            print(x)
    

    应该可以。 Python 将字符串视为字符的有序集合。集合上的 for 循环通常会迭代其元素(字典中的键)。

    【讨论】:

    • @Jean-FrançoisFabre:好吧,JavaScript 也有 foreach 迭代索引的奇怪行为。我的意思是,如果你提供一个列表,那么发出索引是没有意义的。编程语言设计师简直就是奇怪的人:)
    猜你喜欢
    • 2023-03-15
    • 2021-12-10
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    相关资源
    最近更新 更多