[英]Need to print only once outside the for loop
如果输入字符串有两个连续的相同字母,我正在尝试打印“True”。 例如:a="Matthew"。对于这个输入,它应该打印 True,因为单词 'Matthew' 有两个连续的相同字母(“t”)。 类似地,为单词“John”打印 False,因为它没有连续的字母。
a="Matthew"
for i in range(len(a)-1):
if a[i]==a[i+1]:
print("True")
else:
print("False")
Output:假,假,真,假,假,假
如果有后续字母,只需打印一次“True”,如果没有后续字母,则只需打印一次“False”。
使用其他变量
a="Matthew"
double = False
for i in range(len(a)-1):
if a[i]==a[i+1]:
double = True
break
print(double)
只是为了后代的缘故,我想您可能会发现知道 regex 提供了一个更简洁的解决方案很有趣:
a = "Matthew"
if re.search(r'(.)\1', a) :
print("MATCH")
else:
print("NO MATCH")
Python 有for-else
循环。 所以,它也可以这样做:
a = "Matthew"
for i in range(len(a)-1):
if a[i]==a[i+1]:
print("True")
break
else:
print("False")
Output: True
else
部分仅在for-loop
遍历范围时执行; 中间的任何break
都将导致跳过else
部分的执行。
因此,如果输入是a="Mathew"
,它将打印false
>>> print(any(i == j for i, j in zip(a[:-1], a[1:])))
True
# i j
# - -
# M a No match.
# a t No match.
# t t Match. Done.
# t h
# h e
# e w
或者性能稍高但更冗长的版本(当然re.search
方法更快,但需要了解正则表达式):
c = a[0]
for c2 in a[1:]:
if c == c2:
print('True')
break
c = c2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.