好的,基本上这就是我所知道的,并且它确实有效,使用Python3:
color="Red1 and Blue2!"
color[2]=="d"
True
我需要的是当我调用任何位置时(在比较中输入任何单个字符的Lower或Upper大小写),在括号“color []”中进行比较,并将其与仅与“大写或大写字母”匹配“排除所有数字和字符(。*& ^%$#@!)。 按顺序说出以下效果:
color="Red1 and Blue2!"
if color[5]==[a-zA-z]:
doSomething
else:
doSomethingElse
当然我上面列出的内容不起作用。也许我的语法错了,也许它只是无法完成。如果我只在平等的“右侧”使用一个字母,那么一切都很好,但就像我说的那样,我需要将任何单个字母拉入左侧,以匹配右侧的内容。
首先,我不想确保它可以做到,我想要完成什么? 第二,如果确实可以做到,那么完成“没有”导入除“sys”之外的任何其他内容。
如果实现这一目标的唯一方法是通过导入其他内容,那么我将查看该建议,但是如果可能的话我不想导入任何内容。
我搜索了我的书,以及本网站上的其他一些问题,我似乎无法找到任何匹配的内容,谢谢。
答案 0 :(得分:3)
对于寻找字母的情况,可以进行简单的.isalpha()
检查:
if color[5].isalpha():
会奏效。
对于不存在特定检查功能的一般情况,您可以使用in
检查:
if color[5] in '13579': # Checks for existence in some random letter set
如果"随机字母设置"足够大,您可能希望预转换为frozenset
进行检查(frozenset
成员资格测试大致为O(1)
,而O(n)
为str
,但{ {1}}测试已经过充分优化,在str
有意义之前您需要相当长的str
;可能大于frozenset
中的那个:
example
或者,您可以use regular expressions获取您想要获得的character classes:
CHARSET = frozenset('13579adgjlqetuozcbm')
if color[5] in CHARSET:
答案 1 :(得分:2)
这是isalpha()
有用的地方。
color="Red1 and Blue2!"
if color[5].isalpha():
doSomething
else:
doSomethingElse
如果您需要数字,还有isnumeric()
。
答案 2 :(得分:0)
不确定为什么你不需要从标准库中导入任何东西。
import string
color="Red1 and Blue2!"
if color[5] in string.ascii_letters:
print("do something")
else:
print("do something else")