问
写一个程序,能够计算xy的二维数组,xy两个值为变量由用户输入
这题我先查了半天啥叫二维数组,原来就是遍历xy两个变量然后把遍历
出来的数逐个相乘,方法一是出题作者提供的,但是我觉的作为一个
入门级的题,代码写成这样,我真是理解不了,所以我试着把他代码中的
逻辑拆开逐一实现了,这样向我这样入门选手看着才能明白一点
建议debug 5,6可能看的更明白些,另外注意输入的逗号要是英文的逗号
"""
1 接收用户输入的值
2 split方法利用逗号把输入值分成切片,转换成列表,然后利用for循环把列表中的值遍历给整数型x
3 定义两个函数接收列表中的值
4 利用循环嵌套输出大列表中有小列表的模版
5 利用循环嵌套将值逐一写入列表中
6 打印函数
"""
# -----------------------------------------------------------------
# 方法一
input_str = input("请输入x,y的值,中间用逗号分开:")
dimensions = [int(x) for x in input_str.split(',')]
rowNum = dimensions[0]
colNum = dimensions[1]
multilist = [[0 for col in range(colNum)] for row in range(rowNum)]
for row in range(rowNum):
for col in range(colNum):
multilist[row][col] = row * col
print(multilist)
1 把用户输入的值变成元组
2 再把元组变成列表
3 定义两个变量来接收列表中的两个值,括号里的是值对应的索引
4 定一个总列表,用来接收分列表
5 设计一个嵌套循环,外部循环是先把分列表的空列表添加到总列表中,
然后进入内部循环,遍历y值col然后逐个把y*x,把得出的值逐个添加到分列表中,
遍历完返回上级,将x值加1再次循环,直到循环结束。
6 打印总列表
知识点
二维数组 - 就是把遍历出的xy值逐个相乘得出结果
# -----------------------------------------------------------------
# 方法二
import ast
input_list = ast.literal_eval(input("请输入x,y的值,中间用逗号分开:"))
input_list = list(input_list)
rowNum = input_list[0]
colNum = input_list[1]
multi_list = []
for row in range(rowNum):
internal_list = []
multi_list.append(internal_list)
for col in range(colNum):
n = row * col
internal_list.append(n)
print(multi_list)