欢迎光临
我们一直在努力

加减乘除:重新实现字符串之间的加减乘除。

"""
重新实现字符串之间的加减乘除。
以相加为例:
字符串A和字符串B相加,
先求字符串A的所有字符ASCII码之和,
再求字符串B的所有字符ASCII码之和,
然后将两个和相加,即为两个字符串相加。
相减是两个和相减
相乘是两个和相乘
相除是两个和相除
"""

class StrASCII(str):
    """
    继承自str类的StrASCII类,用于计算字符串中字符的ASCII值总和,并提供基本运算符重载。

    Attributes:
        total: int, 字符串中所有字符的ASCII值总和。
    """

    def __init__(self, s: str):
        """
        初始化StrASCII对象,计算并存储字符串s中字符的ASCII值总和。

        Parameters:
            s: str, 输入的字符串。
        """
        self.total = 0
        for char in s:
            self.total += ord(char)

    def __add__(self, right):
        """
        实现加法操作,将两个StrASCII对象的ASCII值总和相加。

        Parameters:
            right: StrASCII, 右操作数。

        Returns:
            StrASCII, 新的StrASCII对象,其total值为两个操作数total值之和。
        """
        return self.total + right.total

    def __sub__(self, right):
        """
        实现减法操作,计算两个StrASCII对象的ASCII值总和之差。

        Parameters:
            right: StrASCII, 右操作数。

        Returns:
            StrASCII, 新的StrASCII对象,其total值为两个操作数total值之差。
        """
        return self.total - right.total

    def __mul__(self, right):
        """
        实现乘法操作,计算两个StrASCII对象的ASCII值总和的乘积。

        Parameters:
            right: StrASCII, 右操作数。

        Returns:
            StrASCII, 新的StrASCII对象,其total值为两个操作数total值的乘积。
        """
        return self.total * right.total

    def __truediv__(self, right):
        """
        实现除法操作,计算两个StrASCII对象的ASCII值总和的比值。

        Parameters:
            right: StrASCII, 右操作数。

        Returns:
            StrASCII, 新的StrASCII对象,其total值为两个操作数total值的比值。
        """
        return self.total / right.total

    def __floordiv__(self, right):
        """
        实现整除操作,计算两个StrASCII对象的ASCII值总和的整数比值。

        Parameters:
            right: StrASCII, 右操作数。

        Returns:
            StrASCII, 新的StrASCII对象,其total值为两个操作数total值的整数比值。
        """
        return self.total // right.total

if __name__ == '__main__':
    a = StrASCII('Hello')
    b = StrASCII('World')
    print(f"a+b={a + b}")
    print(f"a-b={a - b}")
    print(f"a*b={a * b}")
    print(f"a/b={a / b}")
    print(f"a//b={a // b}")
赞(0) 打赏
未经允许不得转载:创想未来 » 加减乘除:重新实现字符串之间的加减乘除。

评论 抢沙发

评论前必须登录!

 

更好的Python学习

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册