自己实现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技术站