XMU Python语法

 

题解:

  这道题重点是行号和列号 !千万! 别搞反了,还有就是用dx 和 dy数组表示顺时针转动

 1 dx = [-1, 0, 1, 0]
 2 dy = [0, 1, 0, -1]
 3 n, m = map(int, input().split())  # n行m列
 4 x, y, d = 0, 0, 1
 5 
 6 # 注意 x为 行标  y为 列标
 7 
 8 # 先 执行前 然后 执行后
 9 table = [[0 for i in range(m)] for i in range(n)]  # 二维列表的初始化(处理为全为0)!!!!!!
10 
11 # a, b用来记录当前位置
12 for i in range(1, m * n + 1):
13     table[x][y] = i
14     # 千万千万千万千万千万 注意 行列的关系#
15     a = x + dx[d]
16     b = y + dy[d]
17     if a < 0 or a >= n or b < 0 or b >= m or table[a][b] != 0:  # 如果越界,则顺时针改变方向
18         d = (d + 1) % 4  # 顺时针改变方向
19         a = x + dx[d]
20         b = y + dy[d]
21     x = a
22     y = b
23 for i in range(n):
24     for j in range(m):
25         print(table[i][j], end=' ') # 这里末尾的空格可能要处理一下(学校的ljoj过不去)
26     print()

 

 

 题解:

  这个题主要让我学到了list(map())这种输入方法

  其他都容易

 1 letter = input()
 2 list1 = []
 3 
 4 for i in range(12):
 5     list2 = list(map(float, input().split()))  # 记住这种输入方法
 6     list1.append(list2)
 7 
 8 if letter == 'S':
 9     count = 0
10     Sum = 0
11     for i in range(0, 11):
12         for j in range(i + 1, 12):
13             Sum += list1[i][j]
14             count += 1
15     res = Sum/count
16     print('%.1f' % res)
17 
18 elif letter == 'M':
19     count = 0
20     Sum = 0
21     for i in range(1, 12):
22         for j in range(0, i):
23             Sum += list1[i][j]
24             count += 1
25     res = Sum/count
26     print('%.1f' % res)

 

posted @ 2023-07-04 22:31  上原歩夢  阅读(27)  评论(0)    收藏  举报