Python基础之range()函数

range()函数常用于for循环结构中生成等差数列,可以接收1个、2个或者3个整数参数:

接收1个整数参数时:range(x)会按顺序返回 0,1,2,3,…x−1这个数列。
接收2个整数参数时:range(x, y)会按顺序返回 x,x+1,x+2,…,y−1这个数列。
接收3个整数参数时:range(x, y, z)分为两种情况:

  • z > 0时,按顺序返回 x,x+z,x+2z,x+3z,…这个数列中小于 y的所有数。

  • z < 0时,按顺序返回 x,x+z,x+2z,x+3z,…这个数列中大于 y 的所有数。

接受3个整数参数且z<0问题应用:

输入一个二维数组 M[12][12],根据输入的要求,求出二维数组的右下半部分元素的平均值或元素的和。右下半部分是指次对角线下方的部分,如下图所示,黄色部分为对角线,绿色部分为右下半部分:
Python基础之range()函数_第1张图片
输入格式:

第一行输入一个大写字母,若为 S,则表示需要求出右下半部分的元素的和,若为 M,则表示需要求出右下半部分的元素的平均值。

接下来 12 行,每行包含 12 个用空格隔开的浮点数,表示这个二维数组,其中第 i+1 行的第 j+1 个数表示数组元素 M[i][j]。

输出格式:

输出一个数,表示所求的平均数或和的值,保留一位小数。

数据范围:

−100.0≤M[i][j]≤100.0

题解:

c = input()

matrix = []
s = 0   #求和
num = 0     #个数

#读入二维数组
for i in range(12):
    row = list(map(float, input().split()))
    matrix.append(row)
    
#遍历元素
#边界判断:行数为1~11,列数起点为11减去所在行数
for i in range(1, 12):
    for j in range(11, 11 - i, -1):
        s += matrix[i][j]
        num += 1
        
#检查操作要求
if c == 'M':
    s /= num

#格式化输出
print("%.1f" % s)
来源

Acwing题库
Python官方文档

你可能感兴趣的:(python,算法,面试)