ryq4247 发表于 2022-3-22 20:31:34

列表23 ,习题0

0. 创建一个 88 x 88 的随机整数矩阵(二维列表),然后匹配用户输入的整数是否与其中某元素相等,如果相等则打印其行号和列号。

要求1:随机整数取值范围 0~1024

要求2:需找出所有匹配的元素来自


小甲鱼答案如下:
import random
   
# 创建并初始化二维列表
matrix = []
for i in range(88):
    matrix.append([])
    for j in range(88):
      matrix.append(random.randint(0, 1024))
   
target = int(input("请输入一个代匹配的整数:"))
   
# 匹配用户输入的整数
for i in range(88):
    for j in range(88):
      if matrix == target:
            print(i, j)



我的问题是:
for i in range(88):
    for j in range(88):
      if matrix == target:
            print(i, j)

这段代码为什么不可以写成: if matrix == target:
                                                print(i, j)
按我的理解,如果matrix == target,直接打印出来不行吗?为什么还要i和j在去循环?

深谙流年 发表于 2022-3-22 20:41:41

那你的i和ji从哪里来呢

ryq4247 发表于 2022-3-22 22:06:06

深谙流年 发表于 2022-3-22 20:41
那你的i和ji从哪里来呢

最上面就有啊

深谙流年 发表于 2022-3-23 01:01:18

ryq4247 发表于 2022-3-22 22:06
最上面就有啊

那个i和j可不一样,上面的是创建表的,相当于局部变量,你在外面是用不了它们的,难道你的意思是边创建表边查询吗

傻眼貓咪 发表于 2022-3-23 09:07:21

import random

target = int(input("请输入一个代匹配的整数:"))
matrix = []
for i in range(88):
        matrix.append([])
        for j in range(88):
                temp = random.randint(0, 1024)
                matrix.append(temp)
                if target == temp:
                        print(i, j)
页: [1]
查看完整版本: 列表23 ,习题0