使用python敲点简单算法

使用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()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值