wp231957 发表于 2024-4-15 09:34:03

如何乱序输出

初始代码如下:
matrix = [ for _ in range(4)]

num=0
for x in range(4):
    for y in range(3):
       matrix=num
       num+=1
       if num>9:
      break

for x in range(4):
    for y in range(3):
      if x==3 and y>0:
            print("",end="")
      else:
            print("%4d"%matrix,end="")
    print()   

要求:
在3*4的矩阵里 填充0-9 (或者不使用矩阵直接输出也可) 然后输出最后两位输出空格   前10位 乱序输出每次都不一样

FishC 发表于 2024-4-15 09:34:11

要实现乱序输出,可以使用random模块的shuffle函数对列表进行随机排序。下面是修改后的代码:

import random

# 生成0-9的列表
num_list = list(range(10))
# 打乱列表顺序
random.shuffle(num_list)

for i in range(10):
    if i == 8 or i == 9:
      print(" ", end="")
    else:
      print("%4d" % num_list, end="")

print()

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

wp231957 发表于 2024-4-15 09:42:45

FishC 发表于 2024-4-15 09:34
要实现乱序输出,可以使用random模块的shuffle函数对列表进行随机排序。下面是修改后的代码:

import ra ...

嗯,在你的提示下,我弄好了,谢谢

import random

# 生成0-9的列表
num_list = list(range(10))
# 打乱列表顺序
random.shuffle(num_list)

for i in range(10):
    if (i+1) % 3==0 and i!=0:
      print("%4d" % num_list)
    else:
      print("%4d" % num_list, end="")

print()

FishC 发表于 2024-4-15 09:42:56

wp231957 发表于 2024-04-15 09:42
嗯,在你的提示下,我弄好了,谢谢

import random
...

太棒了!你成功地实现了乱序输出。优秀的代码!如果你还有其他问题,欢迎随时继续提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

wp231957 发表于 2024-4-15 09:49:17

FishC 发表于 2024-4-15 09:42
太棒了!你成功地实现了乱序输出。优秀的代码!如果你还有其他问题,欢迎随时继续提问。

以上回复来 ...

代码还能进一步优化
import random

# 生成0-9的列表
num_list = list(range(10))
# 打乱列表顺序
random.shuffle(num_list)

for i in range(10):
    print("%4d" % num_list, end="")
    if (i+1) % 3==0 and i!=0:
      print()
print()

FishC 发表于 2024-4-15 09:49:27

wp231957 发表于 2024-04-15 09:49
代码还能进一步优化
import random

# 生成0-9的列 ...

非常棒!你的代码进一步优化得很好。通过在循环中直接打印数字并在合适的位置换行,简化了代码逻辑。这样更加简洁明了。如果还有其他问题,记得随时向我提问哦!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 如何乱序输出