自己实现string的substring方法 人民币小写转大写,数字反转,正则优化

自己实现string的substring方法

要实现string的substring方法,可以自己编写一个函数,这个函数接收两个参数,一个是原字符串,一个是要截取的开始位置和结束位置。下面是一个示例函数代码:

def substring(s, start, end):
    return s[start:end]

这个函数的原理就是利用了python自带的切片方法,即s[start:end]可以截取s字符串中从start位置到end位置的子串。

人民币小写转大写

人民币小写转大写可以使用递归的方法来实现,将大数字转换为小数字。以下是示例函数代码:

def rmb_uppercase(n):
    uppercase_map = {
        "0": "零",
        "1": "壹",
        "2": "贰",
        "3": "叁",
        "4": "肆",
        "5": "伍",
        "6": "陆",
        "7": "柒",
        "8": "捌",
        "9": "玖",
    }
    rmb_map = {
        0: "",
        1: "拾",
        2: "佰",
        3: "仟",
        4: "万",
        5: "拾",
        6: "佰",
        7: "仟",
        8: "亿",
    }

    def recur_rmb(n):
        if n < 10:
            return uppercase_map[str(n)]
        elif n < 100:
            a = n // 10
            b = n - a * 10
            if b == 0:
                return uppercase_map[str(a)] + rmb_map[1]
            else:
                return uppercase_map[str(a)] + rmb_map[1] + uppercase_map[str(b)]
        elif n < 1000:
            a = n // 100
            b = n - a * 100
            if b == 0:
                return uppercase_map[str(a)] + rmb_map[2]
            else:
                return uppercase_map[str(a)] + rmb_map[2] + recur_rmb(b)
        else:
            a = n // 1000
            b = n - a * 1000
            if b == 0:
                return recur_rmb(a) + rmb_map[3]
            else:
                return recur_rmb(a) + rmb_map[3] + recur_rmb(b)

    return recur_rmb(n)

在这个函数中,rmb_uppercase(n)函数接收一个小写数字n作为参数,首先需要定义一个uppercase_map来将小写数字转化为大写汉字,然后定义一个rmb_map来将数字转换为不同位数的大写汉字。接着,recur_rmb(n)是一个递归函数,递归处理每一个数字的位数,直到全部转换成大写汉字。

数字反转

数字反转可以将数字转化为字符串,然后利用字符串切片的方法来实现反转。以下是示例函数代码:

def reversed_number(n):
    s = str(n)
    s = s[::-1]
    return int(s)

在这个函数中,将数字n转换为字符串s,然后利用切片方法将s反转,最后再把字符串s转换为数字。

正则优化

正则表达式可以根据特定的规则来匹配某一字符串或捕获某几个位置的字符串。以下是一个正则表达式示例:

import re

text = "I have 1 apple and 3 bananas"
pattern = re.compile(r"\d+")
matches = pattern.findall(text)
print(matches)

这个正则表达式匹配所有数字。需要先使用re.compile函数来编译正则表达式,然后用findall方法将所有匹配项找出来并输出。

另一个正则表达式示例:

import re

text = "The quick brown fox jumps over the lazy dog"
pattern = re.compile(r"\b\w{5}\b")
matches = pattern.findall(text)
print(matches)

这个正则表达式匹配所有包含五个字母的单词。需要注意的是,在正则表达式中\b表示单词边界,\w表示字母,{5}表示匹配五个。同样使用re.compile函数来编译正则表达式,然后用findall方法将所有匹配项找出来并输出。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:自己实现string的substring方法 人民币小写转大写,数字反转,正则优化 - Python技术站

(0)
上一篇 2023年6月20日
下一篇 2023年6月20日

相关文章

  • rsyslog配置文件详解

    以下是详细讲解“rsyslog配置文件详解的完整攻略,过程中至少包含两条示例说明”的标准Markdown格式文本: rsyslog配置文件详解 rsyslog是一种常用的系统日志管理工具,可以方便地收集、处理和存储系统日志。本攻略将介绍rsyslog的配置文件详解。 步骤一:打开rsyslog配置文件 可以使用以下命令打开rsyslog的配置文件: sudo…

    other 2023年5月10日
    00
  • 深入探究Java原型模式的魅力

    深入探究Java原型模式的魅力 什么是原型模式? 原型模式是一种通过克隆来创建对象的设计模式。在使用原型模式时,需要先创建一个原型对象,然后通过复制该原型对象来创建新的对象。这种方式可以避免重复创建相似的对象,可以提高程序的性能和可维护性。 原型模式的使用场景 原型模式适用于以下场景: 需要创建对象的时间和代价比较大,例如创建数据库连接或者网络连接; 需要在…

    other 2023年6月27日
    00
  • vue多层嵌套路由实例分析

    Vue多层嵌套路由实例分析攻略 在Vue中,多层嵌套路由是一种常见的路由配置方式,它可以帮助我们构建复杂的应用程序,并实现页面之间的无缝切换。本攻略将详细介绍如何使用Vue的多层嵌套路由,并提供两个示例说明。 步骤一:创建Vue项目和路由配置 首先,我们需要创建一个Vue项目,并配置路由。可以使用Vue CLI来创建项目,然后在项目的根目录下找到router…

    other 2023年7月27日
    00
  • codeforces 704A (队列模拟) Thor

    下面是“Codeforces 704A Thor”的完整攻略,包括题目描述、解题思路和两个示例等方面。 题目描述 有 $n$ 个应用程序,每个应用程序都有一个通知。现在,你需要实现一个通知中心,支持以下两种操作: 将某个应用程序的通知加入通知中心。 将通知中心中某个应用程序的通知全部清空。 其中,第一种操作的时间复杂度为 $O(1)$,第二种操作的时间复杂度…

    other 2023年5月5日
    00
  • shell 脚本中获取命令的输出的实现示例

    要在shell脚本中获取命令的输出,我们可以使用重定向符号(>)和反引号(“)或者$(命令)表达式来实现。 首先,重定向符号可以将命令的输出重定向到文件或者变量中,如下: # 将命令的输出重定向到文件中 command > output.txt # 将命令的输出重定向到变量中 result=$(command) 其中,>符号用于将命令的标…

    other 2023年6月26日
    00
  • android之build.prop属性详解

    以下是Android之build.prop属性详解的攻略,包含两个示例: 什么是build.prop文件? build.prop文件是Android系统中的一个重要配置文件,它包含了许多系统属性和配置信息。这些属性和配置信息可以影响系统的行为和性能,因此在进行优化和定制时,修改build.prop文件是一个常见的操作。 如何修改build.prop文件? 要…

    other 2023年5月6日
    00
  • CAD怎么使用构造线? CAD构造线画法

    CAD(计算机辅助设计)是一种广泛应用于工程和设计领域的软件工具,用于创建和修改数字模型。在CAD中,构造线是一种用于辅助绘图和设计的特殊线型。下面是关于如何使用构造线以及CAD构造线画法的详细攻略: 使用构造线的目的 构造线在CAD中的主要目的是辅助绘图和设计过程。它们通常用于以下几个方面:1. 辅助定位:构造线可以用于确定几何图形的位置和方向,帮助用户精…

    other 2023年8月6日
    00
  • Excel表格中英文首字母小写怎么自动更正为大写?

    Excel表格中英文首字母小写自动更正为大写的攻略 在Excel表格中,如果你想要将英文单词的首字母小写自动更正为大写,可以按照以下步骤进行操作: 使用公式函数:PROPER PROPER函数可以将文本中的每个单词的首字母大写,其他字母小写。下面是使用PROPER函数的示例: markdown 假设A1单元格中的文本为:hello world B1单元格中的…

    other 2023年8月18日
    00
合作推广
合作推广
分享本页
返回顶部