如何在Python中检查字符串是否只包含数字或“/”?

2024-02-12

我正在尝试检查字符串是否仅包含数字或“/”,以用作验证形式,但是我找不到同时执行这两项操作的方法。自动取款机我有这个:

if variable.isdigit() == False:

这适用于数字,但我还没有找到一种方法来检查斜杠。


有很多选项,如此处所示。列表推导式是一个不错的选择。

让我们考虑两个字符串,一个满足条件,另一个不满足:

>>> match = "123/456/"
>>> no_match = "123a456/"

我们可以使用以下方法检查其中的字符是否匹配isdigit()和比较:

>>> match[0].isdigit() or match[0] == '/'
True

但我们想知道是否所有字符都匹配。我们可以通过使用获得结果列表列表推导式 https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions:

>>> [c.isdigit() or c == '/' for c in match]
[True, True, True, True, True, True, True, True]
>>> [c.isdigit() or c == '/' for c in no_match]
[True, True, True, False, True, True, True, True]

请注意,不匹配字符串的列表有False在同一位置'a' char.

既然我们想要all要匹配的字符,我们可以使用all()功能 https://stackoverflow.com/questions/19389490/how-pythons-any-and-all-functions-work。它需要一个值列表;如果其中至少一个为 false,则返回 false:

>>> all([c.isdigit() or c == '/' for c in match])
True
>>> all([c.isdigit() or c == '/' for c in no_match])
False

奖励积分

放上一个功能

你最好把它放在一个函数上:

>>> def digit_or_slash(s):
...     return all([c.isdigit() or c == '/' for c in s])
... 
>>> digit_or_slash(match)
True
>>> digit_or_slash(no_match)
False

生成器表达式

生成器表达式 https://docs.python.org/2/reference/expressions.html#generator-expressions往往会更有效率:

>>> def digit_or_slash(s):
...     return all(c.isdigit() or c == '/' for c in s)
... 

但就你的情况而言,无论如何它可能可以忽略不计。

关于什么in?

我更喜欢使用in运算符,如下:

>>> def digit_or_slash(s):
...     return all(c in "0123456789/" for c in s)

请注意,这只是选项之一。可悲的是,你的问题失败了Python之禅推荐 https://www.python.org/dev/peps/pep-0020/ (>>> import this):

应该有一种(最好只有一种)明显的方法来做到这一点。

但没关系,现在你可以选择你喜欢的任何东西:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python中检查字符串是否只包含数字或“/”? 的相关文章

随机推荐

  • 使用 XHR 流时通过 SockJs 确定 STOMP 的用户

    客户端不支持WebSockets 因此SockJs使用XHR Streaming和defineUser 虽然在使用WebSockets时被调用 但根本不会被调用 还有其他方法来设置本金吗 这就是我所拥有的 class CustomHands
  • 从系列/列中查找第一个元素(例如“True”)的索引

    如何查找系列或列中元素的索引 例如 True 例如 我有一个列 我想在其中识别事件发生的第一个实例 所以我把它写成 Variable df Force lt event 然后 这将创建一系列布尔数据 其中为 False 直到第一个实例变为
  • RAML:嵌套模式

    1 编写 RAML 时 我可以在模式定义中使用嵌套吗 例如 schemas DNSResponse type object properties AnswerSection type array items I want a re usea
  • Rails ActiveRecord::多参数分配错误

    我的模型中有以下代码 attr accessor expiry date validates presence of expiry date on gt create message gt can t be blank 我认为以下几点 但是
  • WebClient.UploadString 方法的最大数据长度

    我的 asp net mvc 应用程序中有以下代码 string URI http send url com smsapi sender php string queryParameters a long query string stri
  • scipy curve_fit多系列数据

    我试图建立一个曲线拟合 考虑基于相同 x 值和相同 指数 定律的多个 y 系列 该系列中的 y 值略有不同 因为它们是实验性的 但仍然很接近 x 相同 我尝试构建两个数组 一个包含 x 另一个包含两个不同系列的 y def f x a b
  • ContentResolver.bulkInsert(..) 的意义是什么?

    My goal 我想批量 以事务方式 将多条记录插入到sqlite中 我的问题 我找到了方法android content ContentResolver 批量插入 http android git kernel org p platfor
  • PHP 中的位操作和 MySQL 检索

    我正在尝试稍微优化我的 mysql 表 以获得一个更易于管理的表 我想将用户权限存储在一个位字段中 例如 用户权限可以是 0110 我的用户权限数量越来越多 因此长度可能会长一点 该示例可能对应于以下内容 0 用户不能在网站上发布新闻 1
  • Groovy 中的爬虫(JSoup VS Crawler4j)

    我希望在 Groovy 中开发一个网络爬虫 使用 Grails 框架和 MongoDB 数据库 它能够爬取网站 创建网站 URL 及其资源类型 内容 响应时间和涉及的重定向数量的列表 我正在争论 JSoup 与 Crawler4j 我已经阅
  • HTML5 日期输入 6 位数年份

    我有一个标准
  • 设置 QMessageBox 的父级

    我不明白设置父级有什么好处QMessageBox 例如在以下代码中 void mainWindow showMessage QString msg QMesageBox information this title msg this is
  • 如何创建批处理文件来在Cmder中执行命令?

    我想创建一个启动 Cmder 的批处理文件 然后在 Cmder 中执行一些命令 我知道如何使用批处理文件启动 Cmder 但不知道如何使用批处理文件在 Cmder 中编写 执行命令 我尝试这个 echo off cd C Program F
  • 将 html 内联图像从浏览器复制/粘贴到文字处理器

    我正在尝试使用 html 内联图像 背景 尝试创建我自己的 CMS 它不会将图像保留为单独的文件 我可以将此类图像从浏览器 Firefox IE 复制 粘贴到 Photoshop 或 MS Paint 等图像处理程序 但不能复制到 MS W
  • 使用 svn+ssh 协议通过 2 跳访问 Subversion 存储库

    我的 Ubuntu Subversion 服务器无法直接访问互联网 192 168 1 2 我的公共 Ubuntu 机器通过 DMZ 暴露在 192 168 1 1 我已经设置了从 192 168 1 1 3906 到 192 168 1
  • C 中的“double”运算和优化

    我最近分析了一段用 VS2005 编译的旧代码 因为 调试 无优化 和 发布 O2 Oi Ot 选项 编译中的数值行为不同 简化的 代码如下所示 void f double x1 double y1 double x2 double y2
  • YII 2.0 GridView 更新

    我在通过 javascript 更新 yiigridview 时遇到问题 我正在尝试以 yii 1 1 方式使用它 jQuery fn yiigridview update grid id 但这给我带来了错误 undefined is no
  • 管道阶段规范对象必须恰好包含一个带有 php mongo 聚合的字段

    我正在尝试将聚合与项目 匹配和排序一起使用 但出现异常 MongoResultException准确地说 说 exception A pipeline stage specification object must contain exac
  • php oop 从同一类的方法内部调用方法

    我有以下问题 class class name function b do something function c function a call function b 当我像往常一样调用函数时 this gt b 我收到此错误 Usin
  • 如何避免页面刷新时的按钮事件

    我有 aspx 页面 该页面通过单击按钮将数据插入数据库 但当我按下按钮时 它就正常了 我收到 成功插入数据 的成功消息 在这种情况下 如果我按 F5 或刷新页面 它将触发按钮单击事件 为什么应该是这样 如何避免这种情况 When the
  • 如何在Python中检查字符串是否只包含数字或“/”?

    我正在尝试检查字符串是否仅包含数字或 以用作验证形式 但是我找不到同时执行这两项操作的方法 自动取款机我有这个 if variable isdigit False 这适用于数字 但我还没有找到一种方法来检查斜杠 有很多选项 如此处所示 列表