Python3.7 -- 学习应用--舒尔特方格(注意力表格)

# 从2*2到9*9
#引入随机函数
import random

#注意力测试需要生成多少行
rowx = int((input('请输入一个1到9的数字:')))
lowy =rowx

#排序后数列
list=[]
#原随机数数列
list2 = []
#每次的随机数
str1 =''

for i in range(1,rowx*rowx+1):
        str1= str(random.randint(1,rowx*rowx*10000))
        list.append(str1)
        list2.append(str1)

#print('list:{0}',list)
#将随机数进行排序
list.sort()
#print(len(list))
#print('list after sort:{0}',list)
#print('list2:',list2)

n1 = 0
print('第一种方法:')
#for是从1开始,所有下标需要加1
for i in range(1,len(list)+1):
    n1 =list2.index(list[i-1])+1
    #不足三位使用空格补,这样有利格式对奇
    print('{0: ^3}'.format(n1),end=' ')
    #换行使用的
    if (i % rowx== 0):
        print('\n')

print('第二种方法:')

for i in range(1,rowx+1):
    j=1
    for j in range(1,lowy+1):
        r1 =i*rowx-(rowx-j)
        n1 = list[r1-1]
        rx=list2.index(n1)+1
        print('{0: ^3}'.format(rx),end=" ")
    print('\n')

#以下是运行结果
'''
第一种方法:
 8   7  10   3  12

17  16  18   5   2

23  19  14  15   6

 1   4  13  22  25

24   9  20  11  21

第二种方法:
 8   7  10   3  12

17  16  18   5   2

23  19  14  15   6

 1   4  13  22  25

24   9  20  11  21  
'''

你可能感兴趣的:(Python3.7 -- 学习应用--舒尔特方格(注意力表格))