在for循环外仅需打印一次

时间:2019-10-30 04:40:26

标签: python python-3.x

如果输入字符串具有两个连续的相同字母,我将尝试打印“ True”。敌人说:a =“ Matthew”。对于此输入,由于单词'Matthew'具有两个连续的相同字母(“ t”),因此应打印True。同样,由于单词“ John”没有连续的字母,因此将其打印为False。

代码:

 a="Matthew"

 for i in range(len(a)-1):
    if a[i]==a[i+1]:
       print("True")
    else:
       print("False")

输出:       假,       假,        真正,       假,       假,       错误

如果有结果字母,只需要打印一次“ True”,如果没有结果字母,则只打印一次“ False”。

3 个答案:

答案 0 :(得分:2)

使用其他变量

a="Matthew"
double = False

for i in range(len(a)-1):
   if a[i]==a[i+1]:
      double = True
      break
print(double)

答案 1 :(得分:2)

就后代而言,我想您可能会发现知道regex提供了更为简洁的解决方案会很有趣:

a = "Matthew"
if re.search(r'(.)\1', a) :
    print("MATCH")
else:
    print("NO MATCH")

答案 2 :(得分:1)

Python具有for-else循环。 因此,也可以通过这种方式完成:

a = "Matthew"

    for i in range(len(a)-1):
        if a[i]==a[i+1]:
          print("True")
          break
    else:
         print("False")

输出:True

else部分仅在for-loop遍历整个范围时才执行;介于两者之间的任何break都将导致跳过else部分的执行。

因此,如果输入为a="Mathew",它将打印false