首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有什么“本机”方法可以给出字符串中某个字符的信息?

有没有什么“本机”方法可以给出字符串中某个字符的信息?
EN

Stack Overflow用户
提问于 2019-09-22 08:37:20
回答 1查看 26关注 0票数 1

我要检查字符串中的字符是数字、空格、大写/小写字符还是特殊字符".'*^?...“

我想出的解决方案不是很巧妙,而且如果不在else语句中添加额外的行,它就不能检查特殊字符。

代码语言:javascript
运行
复制
def checker(str1):
if str1.isspace() is True:
    print('it\'s a space')
if str1.isupper() is True:
    print('it\'s a letter and it\'s upper')
if str1.islower() is True:
    print('it\'s a letter and it\'s lower')
if str1.isdigit() is True:
    print('it\'s a digit')
if str1.isascii() is True:
    print('it\'s a special chracter')

string_letter = 'A'

checker(string_letter)

这段代码可以工作..。如果我为特殊字符创建一些额外的子句,因为现在只是说空格是一个特殊字符……这是因为.isascii()对于特殊字符来说太宽了。

有没有我怀念的本机方法可以更优雅地完成该功能?又名给出字符串中某个字符的信息?

我是python的新手,所以很抱歉,也许我找不到本机解决方案,因为我对术语还不是很熟练。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-22 12:09:59

使用elif并将特殊字符检查器放在最后。

代码语言:javascript
运行
复制
def checker(str1):
    if str1.isspace():
        print('it\'s a space')
    elif str1.isupper():
        print('it\'s a letter and it\'s upper')
    elif str1.islower():
        print('it\'s a letter and it\'s lower')
    elif str1.isdigit():
        print('it\'s a digit')
    elif str1.isascii():
        print('it\'s a special chracter')

string_letter = '&'

checker(string_letter)

然后,

代码语言:javascript
运行
复制
it's a special chracter
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58045167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档