间隔的符号?

2023-12-01

我想为实数区间创建一个 Python 类。与数学符号最密切相关的语法是Interval([a, b))或者,甚至更好,Interval[a, b)构造所有实数的区间x令人满意a <= x < b.

是否可以构造一个处理这种语法的类?


通过创建自定义类来“修复”语法无效的 python 是不可能的。

我认为你能得到的最接近Python中的数学区间表示法是

Interval('[a, b)')

如果您将间隔作为参数传递给函数,并且函数在使用它们之前将其参数转换为适当的类型,则这种方式变得更加轻量级。例子:

def do_foo(interval, bar, baz):
    interval = Interval(interval)
    # do stuff

do_foo('[3,4)', 42, true)

可能的实施:

import re

class Interval:
    def __init__(self, interval):
        """Initialize an Interval object from a string representation of an interval
           e.g: Interval('(3,4]')"""
        if isinstance(interval, Interval):
            self.begin, self.end = interval.begin, interval.end
            self.begin_included = interval.begin_included
            self.end_included = interval.end_included
            return
        number_re = '-?[0-9]+(?:.[0-9]+)?'
        interval_re = ('^\s*'
                       +'(\[|\()'  # opeing brecket
                       + '\s*'
                       + '(' + number_re + ')'  # beginning of the interval
                       + '\s*,\s*'
                       + '(' + number_re + ')'  # end of the interval
                       + '\s*'
                       + '(\]|\))'  # closing brecket
                       + '\s*$'
                      )
        match = re.search(interval_re, interval)
        if match is None:
            raise ValueError('Got an incorrect string representation of an interval: {!r}'. format(interval))
        opening_brecket, begin, end, closing_brecket = match.groups()
        self.begin, self.end = float(begin), float(end)
        if self.begin >= self.end:
            raise ValueError("Interval's begin shoud be smaller than it's end")
        self.begin_included = opening_brecket == '['
        self.end_included = closing_brecket == ']'
        # It might have been batter to use number_re = '.*' and catch exeptions float() raises instead

    def __repr__(self):
        return 'Interval({!r})'.format(str(self))

    def __str__(self):
        opening_breacket = '[' if self.begin_included else '('
        closing_breacket = ']' if self.end_included else ')'
        return '{}{}, {}{}'.format(opening_breacket, self.begin, self.end, closing_breacket)

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

间隔的符号? 的相关文章

  • 我如何在 python 2.6 中测试抽象方法

    我有一个抽象类 import abc class Hello object metaclass abc ABCMeta abc abstractmethod def add self foo pass abc abstractmethod
  • sklearn DeprecationWarning 数组的真值

    从文档中运行 rasa core 示例 python3 m rasa core run d models dialogue u models nlu default current 并在对话框中的每条消息后获取此错误输出 sklearn D
  • 如何有效地从连续字符串中提取文字单词? [复制]

    这个问题在这里已经有答案了 可能的重复 如何将没有空格的文本拆分为单词列表 https stackoverflow com questions 8870261 how to split text without spaces into li
  • 如何修复 Apache mod_wsgi 的 Python 版本不匹配问题?

    我收到此错误 Thu Jul 12 14 31 36 2012 error python init Python version mismatch expected 2 6 7 found 2 6 8 当尝试启动 Apache 服务器时 在
  • Pandas 字符串提取所有匹配项

    我正在学习 pandas 系列字符串方法中的正则表达式操作 我能够从字符串中提取第一个数字 但我的正则表达式与第二个数字不匹配 如何捕获这两个数字 注意第二行 第二个元素在这里是 NAN CODE import pandas as pd d
  • pip 安装失败,SSL 证书验证失败 (_ssl.c:833)

    我无法通过 pip install 安装任何外部 python 模块 我已经正确安装了 python 但如果我使用 pip install 它会显示此错误 这是我运行后的代码pip install pytesseract C Users 1
  • Python grpc protobuf 存根生成问题:--grpc_out: protoc-gen-grpc: 插件失败,状态代码 1

    正如问题所说 我从源代码编译了 grpc 并且也做了sudo pip install grpcio 但是 那which grpc python plugin不返回任何内容 这是一个问题 因为route guide的grpc python示例
  • Spyder 导入模块出错

    我正在尝试在 Spyder 中使用 sklearn 一开始 当我尝试导入它时 我收到 ImportError No module named sklearn 然后我用 PYTHONPATH 管理器设置 PATH 然后使用工具菜单中的 更新模
  • 如何从 Lua 调用 Python 函数?

    我想从我的 lua 文件运行 python 脚本 我怎样才能实现这个目标 Example Python代码 sum py file def sum from python a b return a b Lua code main lua f
  • Windows Defender 检测 Python EXE 为木马

    我制作了一个 Python 脚本 将 Windows 目录以 zip 形式邮寄给我 我使用 sched 模块添加了一个调度程序 每小时重复一次 我试图制作一个简单的同步应用程序供个人使用 在 Windows 启动时启动 我使用将其转换为 e
  • 检测/删除 Python 2 + GTK 中不成对的代理字符

    在Python 2 7中我可以成功转换Unicode字符串 abc udc34xyz 转换为 UTF 8 结果是 abc xed xb0 xb4xyz 但是当我将 UTF 8 字符串传递给例如时 pango parse markup or
  • 在 vim 折叠线中语法高亮 Python

    我发现代码折叠 http en wikipedia org wiki Code folding帮助我更好地组织我的文件 因此 在我的底部 vimrc 我启用vim代码折叠 http vimdoc sourceforge net htmldo
  • 从主机名中提取域名

    是否有一种编程方式可以从给定的主机名查找域名 给出 gt www yahoo co jp 返回 gt yahoo co jp 有效但非常慢的方法是 拆分为 并从左侧删除 1 个组 使用 dnspython 加入并查询 SOA 记录 当返回有
  • 如何绘制多类分类器的精度和召回率?

    我正在使用 scikit learn 我想绘制精度和召回曲线 我正在使用的分类器是RandomForestClassifier scikit learn 文档中的所有资源都使用二元分类 另外 我可以绘制多类的 ROC 曲线吗 另外 我只找到
  • 如何加速 pandas 字符串函数?

    我正在使用 pandas 矢量化 str split 方法来提取从 上的拆分 返回的第一个元素 我还尝试使用 df apply 与 lambda 和 str split 来产生等效的结果 使用 timeit 时 我发现 df apply 的
  • 如何使用 pygame.mixer 重复音乐?

    我创建了以下使用 pygame mixer 播放 mp3 音乐的代码 然而 音乐不会重复 有什么想法可以让音乐重复播放吗 这是代码 playlist list playlist append put music here mp3 playl
  • 如何将 fields 参数传递到 Google Drive Python API 调用中

    I have results drive service files list body execute where body q query string maxResults 1 为了提高性能 我想限制返回的字段 如下所述 https
  • 如何保持 python 3 脚本 (Bot) 运行

    不是母语英语 抱歉 英语可能很蹩脚 我也是编程新手 您好 我正在尝试使用 QueryServer 连接到 TeamSpeak 服务器来创建机器人 经过几天的努力 它有效 只有 1 个问题 而我却被这个问题困扰了 如果您需要检查 这是我正在使
  • Matplotlib 中的 TwoSlopeNorm 未按预期工作

    我正在尝试创建一个具有发散颜色图的绘图 该颜色图在零附近不对称 In this https stackoverflow com a 20146989 6288682例如 DivergingNorm函数被使用并产生我想要的 然而 我使用的是更
  • 在多个图表上绘制一条线

    I don t know how this thing is called or even how to describe it so the title may be a little bit misleading The first a

随机推荐

  • 在 Matlab 中绘制正方形曲面

    如何在中绘制正方形曲面Matlab 更准确地说 我想绘制一个表面值为 0 5 的正方形 该正方形位于 X 1 到 X 1 和 Y 2 5 到 3 5 处 我尝试了以下方法 X Y meshgrid 3 5 5 3 5 Z zeros 15
  • 如何更改TOMCAT使用的Java版本?

    我的系统上安装了 Java 1 6 和 Tomcat 5 5 但是 Tomcat 5 5 访问 Java 1 5 因此结果我收到错误Bad version number in class file使用 JSP 执行 java 代码时 如何将
  • Flutter - 允许用户输入主题标签

    你好 Flutter 新手 我想让我的用户输入一些链接到该条目的主题标签 这些标签将进入 Firestore For the hashtag I set it as a List but I m not sure how to let us
  • 如何删除已打开句柄的文件?

    问题历史 现在我用Windows 媒体播放器 SDK 9在我的桌面应用程序中播放 AVI 文件 它在 Windows XP 上运行良好 但是当我尝试运行它时在 Windows 7 上我发现了一个错误 我无法在播放后立即删除 AVI 文件 问
  • django从文件导入模板[重复]

    这个问题在这里已经有答案了 我有 3 个页面 每个 html 文件的顶部都有相同的菜单 菜单中有很多标签 当我想修改标签中的所有链接时遇到问题 我想将菜单写入另一个名为 menu txt 的文件中 并使用模板加载 menu txt 然后将菜
  • 将图像从网络摄像头发布到 Azure Face Api

    我正在尝试将从网络摄像头获取的图像上传到 Microsoft Azure Face Api 我从 canvas toDataUrl image png 获取图像 其中包含数据 Uri 我将内容类型更改为 application octet
  • 用于从字符串中删除特定 BBCode 的正则表达式

    我正在尝试编写一个简单的方法来从输入字符串中删除特定的 BBCodes 例如 我有一个输入 string input b Hello World b 我希望能够做到 Remove input b 并得到输出 Hello World 正则表达
  • Numpy 似乎产生了不正确的特征向量

    我想使用 Numpy 计算特征值和特征向量 这是我的代码 import numpy as np from numpy import linalg as LA lapl np array 2 1 1 0 0 0 1 3 0 1 0 1 1 0
  • 通过 .NET 关闭时 Excel 2007 挂起

    我有一个 Visual Basic NET 程序 需要打开和关闭 Excel 电子表格 打开和阅读电子表格工作正常 但尝试关闭 Excel 2007 应用程序会导致其挂起 它似乎关闭了 但如果您查看任务管理器 应用程序仍在运行 我用来关闭它
  • 折叠所有表单项 JQuery Mobile

    使用 JQuery 移动版 1 4 0 我有一个表单 其中包含许多带有多个复选框的可扩展元素 当我单击刷新按钮时 我可以清除所有用户选择 但不同的字段集仍然存在expanded 我可以刷新页面 但我认为这不是一个顺利的选择 除了为每个字段集
  • JButton settext具体位置

    我有一个带有图像图标的 JButton 我需要定位文本 有没有办法将 JButton 的文本定位在特定位置 而不是使用 CENTER LEADING TOP 等 我以前从未在 JButton 上尝试过 但也许您可以添加 JLabel 作为按
  • 如何在 Spring 后端获取可变 HTML 表单值 (POST)

    我对 Java 和 Spring 框架相当陌生 这可能很容易解决 但我找不到这个问题的任何解决方案 并且其他解决方案不适合我的问题 我想实现一个动态表单 用户可以在其中插入多个电子邮件地址来发送邀请 这种形式可以通过JS动态扩展 每次点击都
  • 测试 SAS 宏中的空参数

    例如 我有一个宏程序 macro test parameter1 parameter2 parameter3 DATA data gender SET data input WHERE gender parameter3 RUN mend
  • Zend Framework 和 Mysql - 非常慢

    我正在使用 php mysql 和 zend 框架创建一个网站 当我尝试运行任何 sql 查询时 页面生成时间会跳至 0 5 秒左右 那太高了 如果我打开sql 页面生成是0 001 我运行的查询量并没有真正影响页面生成时间 测试了 1 1
  • 附加到对象

    我有一个保存警报和有关它们的一些信息的对象 var alerts 1 app helloworld message message 2 app helloagain message another message 除此之外 我还有一个变量表
  • Facebook 的 Qt 客户端

    我想用Facebook API http wiki developers facebook com index php API 在我的Qt Application 我不想使用WebKit 是否可以使用QNetwork only 有没有关于如
  • 如何从包含值的 JSON 对象的数组中删除元素

    请注意 这篇文章已标记为jq 我根本不想用 javascript 来做到这一点 我有一个对象 其字段之一是数组 我想从对象的数组中删除与条件匹配的元素 但保留该对象 我环顾四周 只能发现返回的片段just现在恰好有较少项目的数组 这是一个例
  • PhpStorm 中的 SCSS 自动前缀器

    我正在尝试在 phpstorm 中配置 SASS SCSS Autoprefixer 但这里或谷歌上的任何地方都没有解决方案对我有用 任何帮助都是值得赞赏的 我尝试了很多选项 包括制作自定义文件观察器和使用 postcss cli auto
  • Yii2 - 子域路由

    我想使用子域作为 id 并且我需要动态路由器来执行此操作 在网址管理器 我添加了这一行 http
  • 间隔的符号?

    我想为实数区间创建一个 Python 类 与数学符号最密切相关的语法是Interval a b 或者 甚至更好 Interval a b 构造所有实数的区间x令人满意a lt x lt b 是否可以构造一个处理这种语法的类 通过创建自定义类