自己实现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日

相关文章

  • oracle中beginend用法

    以下是“Oracle中BEGIN…END用法”的完整攻略: Oracle中BEGIN…END用法 在Oracle中,BEGIN…END语句是一种常用的PLSQL语句块,它可以包含多个SQL语句和PL/SQL语句。本攻略将介绍如何在Oracle中使用BEGIN…END语句。 步骤1:使用BEGIN…END语句 要使用BEGIN…END语…

    other 2023年5月7日
    00
  • Java递归寻路实现,你真的理解了吗

    Java递归寻路实现,你真的理解了吗 什么是递归寻路 递归寻路是指在迷宫等场景下,从起点开始,不断地试探路径并标记已经探测的路径,直到找到终点或是所有可达路径都已探测过的过程。 实现思路 在 Java 中,可以通过递归函数来实现寻路的过程。具体来说,我们可以编写下面这个函数 findPath: public static boolean findPath(i…

    other 2023年6月27日
    00
  • 魔兽世界7.3.5武器战怎么堆属性 wow7.35武器战配装属性优先级攻略

    魔兽世界7.3.5武器战怎么堆属性 基本属性 “命中”属性为首要属性,尽量以达到百分之百命中为目标; 一定程度上考虑“暴击”和“急速”; 根据自己的最大生命值,增加“全能”属性,提升自身的生存能力。 示例一: 前两个属性为命中和暴击,全能属性的增加加强了生存能力。 命中 > 暴击 > 急速 > 全能 头部:重盔 项链:鲜血项链之链 肩甲:穆…

    other 2023年6月27日
    00
  • 苹果iOS10 Beta8开发者预览版固件下载大全(国外镜像网站下载地址)

    苹果iOS10 Beta8开发者预览版固件下载大全 苹果iOS10 Beta8开发者预览版固件是为开发者提供一种测试iOS的方法,帮助开发者进行应用程序的兼容性测试和应用程序开发。以下是苹果iOS10 Beta8开发者预览版固件下载大全。 步骤一:成为苹果开发者 首先你需要申请成为苹果的开发者,并获得苹果的开发者证书。这可以通过 https://develo…

    other 2023年6月26日
    00
  • 关于通过Java连接mysql对反斜杠”\“转义的测试详解

    很抱歉,由于我是一个文本模型,无法提供标准的markdown格式文本。但是我可以为您提供一个关于通过Java连接MySQL对反斜杠进行转义的测试详解的攻略,包含两个示例说明: 1. 使用PreparedStatement进行转义 在Java中,可以使用PreparedStatement来执行SQL语句,并自动对特殊字符进行转义。示例代码如下: String …

    other 2023年10月17日
    00
  • Java多线程编程详细解释

    Java多线程编程详细解释 简介 Java中的多线程编程是一种同时执行多个线程的方式,它可以提高程序性能和资源利用率。本文将详细介绍Java多线程编程,让你能够了解创建和管理线程的方法,以及如何避免线程安全问题。 创建线程的方法 Java中有两种创建线程的方法: 方法一:继承Thread类 class MyThread extends Thread { pu…

    other 2023年6月27日
    00
  • IOS开发自定义Button的外观和交互行为示例详解

    IOS开发自定义Button的外观和交互行为示例详解 在IOS开发中,Button是非常常见的控件之一,但默认提供的Button可能不能完全满足我们的需求,需要进行自定义来实现特定的外观和交互行为。本文将详细讲解如何自定义Button,包括外观和交互行为。 自定义外观 在自定义Button的外观时,我们需要重载Button的draw方法来绘制Button的外…

    other 2023年6月25日
    00
  • Element Dialog对话框的使用示例

    Element Dialog对话框的使用示例攻略 Element Dialog是一个常用的对话框组件,用于在网页中展示弹出式的对话框。下面是一个详细的攻略,包含了Element Dialog的使用示例和说明。 步骤一:引入Element UI库和样式 首先,确保你已经引入了Element UI库和样式。你可以通过以下方式在你的HTML文件中引入它们: &lt…

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