zzhsb 发表于 2022-10-12 21:29:35

大佬看看这里为什么错了

看了答案,发现思路差不多,但是为什么我写的代码老是报错pop超出范围

zzhsb 发表于 2022-10-12 21:39:36

ps:后面加了j -= 1也还是报错

jackz007 发表于 2022-10-12 21:59:36

本帖最后由 jackz007 于 2022-10-12 22:01 编辑

def fy_shuffle(x , n = 1):
    begin , after = list(x) , []
    for i in range(n):
      for _ in range(len(begin)):
            after . append(begin . pop(random . randint(0 , len(begin) - 1)))
      print('第', i + 1 , '次打乱后的结果是 : ' , '' . join(after))
      begin , after = after[:] , []   
    print('最终结果是:' , '' . join(begin))

x = input('请输入需要打乱的字序列:')
n = int(input('请输入需要打乱的次数:'))
fy_shuffle(x , n)
      运行实况:
D:\\Python>python x.py
请输入需要打乱的字序列:ABCDEFG
请输入需要打乱的次数:5
第 1 次打乱后的结果是 :CBFDEAG
第 2 次打乱后的结果是 :EFCBGDA
第 3 次打乱后的结果是 :AECGDFB
第 4 次打乱后的结果是 :BACFEGD
第 5 次打乱后的结果是 :BFCGADE
最终结果是: BFCGADE

D:\\Python>
页: [1]
查看完整版本: 大佬看看这里为什么错了