《案例006:阶乘-递归-反向输出-排序-逆序(共9种)》


《目录》

01:阶乘求和
02:递归求阶乘
03:递归输出
04:反向输出
05:反向输出II
06:设置输出颜色
07:算素数
08:排序
09:逆序列表


01:阶乘求和

题目 求1+2!+3!+…+20!的和。

程序分析 1+2!+3!+…+20!=1+2(1+3(1+4(…20(1))))

res = 1

for i in range(20, 1, -1):
    res = i * res + 1

print(res)

02:递归求阶乘

题目 利用递归方法求5!。

def factorial(n):
    return n * factorial(n - 1) if n > 1 else 1

print(factorial(5))

03:递归输出

题目 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

def rec(string):
    if len(string) != 1:
        rec(string[1:])
    print(string[0], end='')

rec(input('string here:'))

04:反向输出

题目 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

程序分析 学会分解出每一位数,用字符串的方法总是比较省事。

n = int(input('输入一个正整数:'))
n = str(n)
print('%d位数' % len(n))
print(n[::-1])

05:反向输出II

题目 按相反的顺序输出列表的值。

a = ['one', 'two', 'three']
print(a[::-1])


 

06:设置输出颜色

题目 文本颜色设置。

class bcolors:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKGREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    ENDC = '\033[0m'
    BOLD = '\033[1m'
    UNDERLINE = '\033[4m'

print(bcolors.WARNING + "警告的颜色字体?" + bcolors.ENDC)

07:算素数

题目 求100之内的素数。

程序分析 用else执行for循环的奖励代码(如果for是正常完结,非break)。

lo = int(input('下限:'))
hi = int(input('上限:'))

for i in range(lo, hi + 1):
    if i > 1:
        for j in range(2, i):
            if (i % j) == 0:
                break
        else:
            print(i)

08:排序

题目 对10个数进行排序。

raw = []

for i in range(10):
    x = int(input('int%d: ' % i))
    raw.append(x)

for i in range(len(raw)):
    for j in range(i, len(raw)):
        if raw[i] > raw[j]:
            raw[i], raw[j] = raw[j], raw[i]

print(raw)

09:逆序列表

题目 将一个数组逆序输出。

程序分析 依次交换位置,或者直接调用reverse方法。

lis = [1, 10, 100, 1000, 10000, 100000]

# First implementation: using swapping
for i in range(int(len(lis) / 2)):
    lis[i], lis[len(lis) - 1 - i] = lis[len(lis) - 1 - i], lis[i]

print('第一种实现:')
print(lis)

# Second implementation: using the reverse() method
lis = [1, 10, 100, 1000, 10000, 100000]
print('第二种实现:')
lis.reverse()
print(lis)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大大大钢琴

喜欢!就请他吃3块钱好吃的吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值