【python】一次str.islower() 和 str.is

作者: yarving | 来源:发表于2018-04-03 23:19 被阅读26次

总结:islower()isupper()仅对字符串中字母的大小写进行判断,并不会判断所有字符是否都为英文字母

问题来源

今天碰到一个需求,简化了就是验证一个字符串:

  • 不能全是数字
  • 不能全是小写字母
  • 不能全是大写字母

我的解决方案

时间比较紧,没有考虑用正则表达式的方法,于是写了个判断:

if s.isdigit() or s.islower() or s.isupper():
    return False
else:
    return True

因为isdigit会对字符串中所有的字符进行测试,当所有的字符都为数字字符时,返回真,否则返回假;
于是我想当然的认为islowerisupper也会对所有的字符进行测试,仅当全为小写字母或全为大写字母是为真,期望的是:

  • 1234, asdf, ASDF这类是通过测试,整段函数返回False
  • 1234asdf, 1234ASDF, asdfASDF这类是可以不能通过测试的,整段函数返回True

测试时发现的问题

写完代码后,我写了个单元测试之后,发现字符串1234yarving也会通过测试,整段函数返回True,这和我的初衷不同了,于是help(s.islower)help(s.isupper)查看了下:

寻根问题

  • help(s.islower)Return True if all cased characters in S are lowercase and there is at least one cased character in S, False otherwise.,如果所有的字母全是小写并且至少有一个字母,返回真,否则返回假
  • help(s.isupper)Return True if all cased characters in S are uppercase and there is at least one cased character in S, False otherwise.,如果所有的字母全是小写并且至少有大个字母,返回真,否则返回假

isupperislower这两个方法仅会判断字符串里的字母是否大小写,而不会对其他的字符进行判断,所以1234yarving中包含的字母全为小写,会通过islower()测试,整段函数返回False

相关文章

  • 【python】一次str.islower() 和 str.is

    总结:islower()和isupper()仅对字符串中字母的大小写进行判断,并不会判断所有字符是否都为英文字母 ...

  • 反省2017-2-14可能是记录以来最满意的一天

    在因需要学习excel函数过程中发现原来和R、python比,excel这么简单。第一次因为学过R和python有...

  • Python 初学者

    五月,和Python的首次邂逅 第一次认识的python,是通过老师的讲解,认识到这个弱脚本的胶水语言,从第一次认...

  • git与github,第一次接触

    git与github,第一次接触 加入了lzj老师的python之禅知识星球,和大家一起学习python。 lzj...

  • 编程语言基础python之序列解包和打包

    python中序列类型有可变的列表、字典、集合和不可变的元组、字符串。Python中一次给多个变量赋值的方法,称为...

  • 要不要学python

    最近在朋友圈,和公众号看到很多劝大家学习python 的文章。 自己说一下自己的一次经历和对要不要学习python...

  • ubuntu+odoo11安装注意事项

    第一次配置python依赖库的话估计lxml和pyldap都会装不上,解决办法如下:1.我装的是python3.5...

  • 2018-07-19

    一次被问到python 中数组与元祖的区别。 第一反映是,python中哪有数组。他提示我,是大括号和小括号的区别...

  • 关于python调用jar包的记录

    日常写python的时候,有一次涉及到和其他公司的合作项目。我们平常使用的是python编写脚本,而对方公司主要是...

  • Python2 和 Python3 共存

    ===安装和运行Python2、Python3=== 在下载安装好Python 2.7和Python 3.6后,找...

网友评论

本文标题:【python】一次str.islower() 和 str.is

本文链接:https://www.haomeiwen.com/subject/tglhhftx.html