python - 为什么我总是得到C组

问题:

如果字符串包含至少一个字母 A(在字符串的最后 3 个位置以大写或小写形式出现),则显示消息 Group A。如果字符串包含字母 B,则显示组 B,在所有最后三个位置以大写或小写形式显示。否则显示消息组 C。不要使用循环/重复结构。使用切片运算符。

我的代码:

s = input('Enter string: ')
if 'Aa' in s[-3:]:
    print('Group A')
elif 'Bb' in s[-3] and 'Bb' in s[-2] and 'Bb' in s[-1]:
    print('Group B')
else:
    print('Group C')

回答1

'Aa' in 'ABC' 将返回 False。此上下文中的 in 运算符很好地检查是否存在确切的完整子字符串(不是任何单个字符)。

在您的情况下,您需要单独检查每个字符,或将大小写转换为使用单个字符。

您可以使用:

s = input('Enter string: ')
if 'A' in s[-3:].upper():
    print('Group A')
elif 'BBB' == s[-3:].upper():
    print('Group B')
else:
    print('Group C')

或者更好的是,只对案例进行一次切片和转换:

s = input('Enter string: ')[-3:].upper()
if 'A' in s:
    print('Group A')
elif 'BBB' == s:
    print('Group B')
else:
    print('Group C')
``

回答2

看起来您可能认为您正在使用正则表达式来实际使用它:

import re

s = input('Enter string: ')
if re.match('[Aa]', s):
    print('Group A')
...

相似文章

r - 由于某些标准,在个体中找到最佳组合

我想从许多人中随机组成一组。对于个人,我有关于他们的位置(两种可能性)和他们所属位置的团队的信息。目前尚不清楚有多少人将加入。应根据以下限制组成组:团体一般应由3-4人组成在一个组内,位置之间的份额(...

java - 根据整数将 string 分成组

是否可以将string每第n个字符分组?例如,假设我有一个string包含以下内容:“Hellohowareyou”我想要做的是,如果用户输入4,然后基于整数,分成4个组并将它们分配给strings。...

最新文章