[英]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.