使用python敲的十个简单小算法
记录本次学习,方便后期复习api
# author:lzk
# date:2021/12/21 18:33
# 从键盘输入一个小于 500 的三位整数,将这个整数乘 2
# 得到一个新的数,将这个新的数从尾到头倒叙输出。
def reverse_out(num: int) -> int:
num1 = str(2 * num)
num2 = num1[::-1]
return num2
# 要求如下:
#
# (1) 分两行输入两个整数,第一个整数表示字符串 string 的索引 begin,
# 第二个整数表示需要删除的长度 length。
#
# (2) 将字符串 string 中,从索引 begin 开始,长为 length 的子字符串删除。
#
# (3) 输出字符串 string 删除后剩下的部分。
# 示例 1
# 输入
# abcde
# 2
# 3
#
# 输出
# ab
def out_string() -> str:
st = str(input('请输入一个字符串:'))
begin = int(input('请输入要删除的起始位置:'))
len = int(input('请输入要删除的长度:'))
str1 = st[:begin]
str2 = st[begin + len:]
return str1 + str2
# 已知字符串 s ,请将另一个字符串 sub 添加到字符串 s 的指定索引位置中,并将添加后的 s 输出。
# 示例
# 输入
# abcde
# **(第1行是需添加的字符串 sub)
# 2(第2行是指定的添加位置索引 pos(从0开始计算),且 pos 是字符串 s 的有效索引位置)
#
# 输出
#
# ab**cde
def insert_string() -> str:
st = str(input('请输入一个字符串:'))
list1 = list(st)
st1 = str(input('请输入要插入的字符串:'))
begin = int(input('请输入要插入的起始位置:'))
list1.insert(begin, st1)
return ''.join(list1)
# 请用程序实现:输入一段英文文本 text,将其中出现的敏感词改为***(三个星号),并将更改后的内容输出。
#
# 注意:敏感字符包括 “fuck”、“shit”、“bitch”,其他的暂不考虑。
#
# 运行你的程序,使控制台显示如下内容:
def sensitive_word() -> str:
st = str(input('请输入一个字符串:'))
st = st.replace('fuck', '***')
st = st.replace('shit', '***')
st = st.replace('bitch', '***')
return st
# 1x1=1
# 1x2=2 2x2=4
# 1x3=3 2x3=6 3x3=9
def chengfa():
for i in range(1, 10):
for j in range(1, i + 1):
# print('%s*%s=%s'%(j,i,i*j),end=' ')
print('{j}*{i}={c}'.format(j=j, i=i, c=j * i), end=' ')
print()
# 输入单词的前两个字符,判断输入的单词是星期几,并输出对应的单词;如果输入的字符不匹配,则输出error。
# 示例 1
# 输入
#
# tu
#
# 输出
#
# tuesday
def judge_xingqi() -> str:
str1 = str(input("请输入前两位字母:"))
dict1 = dict(mo='monday', tu='tuesday', we='wednesday', th='thursday', fr='friday',
sa='saturday', su='sunday')
if dict1.__contains__(str1):
return dict1[str1]
else:
return 'error'
# 输入一个不多于五位的正整数num,求出它是几位数,将结果输出,并将每一位的数字都打印出来。
#
# 注意: 位数和每位的数字分两行打印。
# 示例 1
# 输入
#
# 12345
#
# 输出(使用空格分隔同行的多数据输出)
#
# 五
# 1 2 3 4 5
def len_out():
num = str(input("请输入一个不多于五位数的正整数:"))
dict1 = {1: '一', 2: '二', 3: '三', 4: '四', 5: '五'}
str1 = dict1.get(len(num))
if str1 is None:
print("请输入不多于五位的正整数!")
len_out()
return
print(str1)
for i in num:
print(i, end=' ')
# 一只猴子摘桃子, 第一天摘了两个桃, 以后每天摘的是前一天的两倍还多一个.
# 请用程序实现
#
# 输入一个天数day,计算第day天它摘的个数,并将结果输出。
# 示例 1
# 输入
#
# 2
#
# 输出
#
# 5
def monkey_toutao() -> int:
days = int(input("请输入天数:"))
nums = 2
for i in range(1, days):
nums = 2 * nums + 1
return nums
# 杨辉三角,又称贾宪三角形、帕斯卡三角形,是二项式系数在三角形中的一种几何排列。以下是杨辉三角的前十行:
# 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
# 1 9 36 84 126 126 84 36 9 1
def pascal_triangle():
row = int(input('请输入要求的行数:'))
list1 = [1]
if row == 1:
print(list1)
elif row == 2:
print([1, 1])
else:
list1.extend([1, 1])
for i in range(3, row + 1):
for j in range(1, i + 1):
if j == 1:
list1.append(1)
elif j == i:
list1.append(1)
else:
index = int((1 + i - 1) * (i - 1) / 2) - 1 + j
# 有点像是堆排序里面的算下标思想
list1.append(list1[index - i] + list1[index - i + 1])
list2 = []
begin = int((1 + row - 1) * (row - 1) / 2) - 1
print(begin)
for i in range(1, row + 1):
list2.append(list1[begin + i])
print(list2)
# 请用程序实现:输入一段英文文本 text,将文本中的单词分别按照 全部小写、全部大写 和 标题化 格式输出。
def out_upper_lower_title():
text = input("请输入你要转换的文本:")
print('小写',text.lower())
print('大写',text.upper())
print('标题',text.title())
if __name__ == '__main__':
while True:
flag = input('任意键继续(quit退出)')
if flag == 'quit':
break
# print(reverse_out(int(input('请输入一个小于500的三位整数:'))))
# print(out_string())
# print(insert_string())
# print(sensitive_word())
# chengfa()
# print(judge_xingqi())
# len_out()
# print(monkey_toutao())
# pascal_triangle()
out_upper_lower_title()