15-排序6_指鹿为马排序

  • 阅读: 263
  • 更新: 2022-06-11

搞笑指数:🤣🤣🤣🤣🤣

1. 题目描述

2. 关键点

  • 《指鹿为马》

3. 代码实现

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import random


def 指鹿为马排序(lst):
    """指鹿为马排序"""
    丞相 = '赵高'
    皇帝 = '秦二世胡亥'
    满朝文武 = ['甲', '乙', '丙', '丁', '戊']
    print(
        f'丞相{丞相}拿出了原始列表献给皇帝{皇帝},'
        '说:“这是一个已经排好序的列表,特意献给陛下鉴赏。”')
    print(
        f'皇帝{皇帝}看了看,心想这列表明明没有排好序,为何{丞相}说排好了呢?'
        '便问道:“丞相弄错了吧?这列表明明没有排好序,怎么说排好了呢?”')
    print(
        f'{丞相}没有理会{皇帝}的话,而是一本正经对着满朝文武问道:'
        '“你们说说,这列表排好没有?”')

    还活着的满朝文武 = []
    for 官员 in 满朝文武:
        回答 = random.choice(['已经排好', '没有排好'])
        print(f'>>> 官员{官员}回答说:{回答}')
        if 回答 == '没有排好':
            print(f'官员{官员}被拖了出去,不久外面传来一声惨叫')
        else:
            还活着的满朝文武.append(官员)

    print('满朝文武官员还剩{}活着'.format('、'.join(还活着的满朝文武)))
    print('\n至此,所有人都说此列表已经排好了序,你说呢?')
    x = input('你说这列表排好了吗?[yes/no]: ')
    if x == 'yes':
        print('你学会了指鹿为马排序算法')
    else:
        print(
            '你没有学会指鹿为马排序算法,满朝文武都看向了你,'
            '你再也没有机会学此算法了')


lst = [random.randint(0, 10) for i in range(10)]
print(lst)
指鹿为马排序(lst)
print(lst)

4. 运行示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
[0, 4, 4, 7, 0, 2, 5, 8, 9, 3]
丞相赵高拿出了原始列表献给皇帝秦二世胡亥,说:“这是一个已经排好序的列表,特意献给陛下鉴赏。”
皇帝秦二世胡亥看了看,心想这列表明明没有排好序,为何赵高说排好了呢?
    便问道:“丞相弄错了吧?这列表明明没有排好序,怎么说排好了呢?”
赵高没有理会秦二世胡亥的话,而是一本正经对着满朝文武问道:“你们说说,这列表排好没有?”
>>> 官员甲回答说:没有排好
官员甲被拖了出去,不久外面传来一声惨叫
>>> 官员乙回答说:已经排好
>>> 官员丙回答说:没有排好
官员丙被拖了出去,不久外面传来一声惨叫
>>> 官员丁回答说:已经排好
>>> 官员戊回答说:已经排好
满朝文武官员还剩乙、丁、戊活着

至此,所有人都说此列表已经排好了序,你说呢?
你说这列表排好了吗?[yes/no]: yes
你学会了指鹿为马排序算法
[0, 4, 4, 7, 0, 2, 5, 8, 9, 3]

5. 进阶思考


=== 全文完 ===


欢迎加入QQ群:778391413

京公网安备 11011302003970号 京ICP备2022012301号-1