原日报0412,然而摸到了现在_(:3」∠)_
分支与循环
"""
replace()方法语法:
str.replace(old, new[, max])
old -- 将被替换的子字符串。
new -- 新字符串,用于替换old子字符串。
max -- 可选字符串, 替换不超过 max 次
count()方法语法:
str.count(sub, start= 0,end=len(string))
sub -- 搜索的子字符串
start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
end -- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
杨辉三角:
第n行的m个数可表示为 C(n-1,m-1),即为从n-1个不同元素中取m-1个元素的组合数。
每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。
即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一。即 C(n+1,i)=C(n,i)+C(n,i-1)。
"""
from typing import Optional
import numpy as np
class Str(str):
def replace(self, __old: str, __new: str, __count: int = ...) -> str:
## if isinstance(self,str):
var = [self]
__max = self.count(__old)
if self.find(__old) == -1:
return self
if __count == ... or __count > __max:
__count = __max
for i in range(__count):
label = var[i].find(__old)
var += [var[i][:label] + __new + var[i][label + 1:]]
return var[-1]
## else : print(type(self))
def count(self, x: str, __start: Optional[int] = ..., __end: Optional[int] = ...) -> int:
if __start == ... or __start >= len(self):
__start = 0
if __end == ... or __end >= len(self):
__end = len(self)
arg = [self]
__max = len(self)
for i in range(__max):
label = arg[i].find(x)
if label == -1:
return len(arg) - 1
arg += [arg[i][:label] + arg[i][label + 1:]]
def yanghui_triangle(x):
x += 1
print('1'.center(48))
__list = [[... for _ in range(x)]for _ in range(x)]
__str = ['' for _ in range(x)]
for i in range(2,x):
__list[i][0] = 1
for j in range(1, i-1):
__list[i][j] = __list[i-1][j-1] + __list[i-1][j]
__list[i][i - 1] = 1
for j in range(i):
__str[i] += str(__list[i][j])
__str[i] += ' '
print(__str[i].center(50), end='\t')
print()
print()
a = Str('sdsdsdsdsdsdsd')
## b = Str(254)
print(a.replace('d', 'r', 3))
print(a.replace('d', 'r'))
print(a.replace('f', 'r'))
print(a.replace('d', 'r', 10))
## print(b.replace('d', 'r', 10))
print('-'*20)
for i in range(3):
yanghui_triangle(np.random.randint(1, 11))
C:\Users\user\AppData\Local\Programs\Python\Python38\python.exe C:/Users/user/AppData/Roaming/JetBrains/PyCharmCE2020.3/scratches/scratch.py
srsrsrsdsdsdsd
srsrsrsrsrsrsr
sdsdsdsdsdsdsd
srsrsrsrsrsrsr
--------------------
1
1 1
1 2 1
1 3 3 1
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
进程已结束,退出代码0
问题1:replace不知道怎么判断类型。if isinstance 和 else 的组合判断无法做到类型不符的时候打印输入的数据类型,而是直接把254打印了出来(见注释)。判断条件换成type(self) is not str 情况也一样。
高情商:深刻地复习了列表与字符串的函数和方法
低情商:被基础数据结构暴打_(:3」∠)_
要说学到了什么东西,也没有。都是旧知识,但是太零碎了,只能多打,不然各种原来如此,早就知道。