xiaozhuzhu12138 发表于 2023-4-16 11:50:26

大佬们看一下 我下面的wuile语句哪里有问题

x = int(input("请输入需要匹配的数字:"))
import random

z1 = 0
z = 0
c = 0
s= []
s1 = []
while z < 88:
    shuzi = random.randint(0,1024)
    s.append(shuzi)
    z += 1
   
while z1 < 88:
    while c < 88:
      shuzi1 = random.randint(0,1024)
      s1.append(shuzi1)
      c += 1
    s = s1
    s1 = []
    c = 0
    z1 += 1
      
for i in range(88):
    for j in range(88):
      if s == x:
            print(i, j)
#i = 0
#n = 0
#while i < 88:
   # while n < 88:
   #   if s == x:
      #    print(i,n,end = '\n')
         #   n += 1
         #   continue
       # else:
      #    n += 1
#else:
       # i += 1
            
                  
      

傻眼貓咪 发表于 2023-4-16 12:00:20

请问你是想生成随机矩阵吗?题目是什么?

isdkz 发表于 2023-4-16 12:09:37

您好!您的while循环中存在一个小问题。根据您的代码,您正在尝试创建一个88行88列的二维数组,并使用随机数填充该数组。

然后,您想在该数组中查找等于用户输入的数字的元素。

这里是修复后的代码:

x = int(input("请输入需要匹配的数字:"))
import random

s = []

for _ in range(88):
    row = []
    for _ in range(88):
      shuzi = random.randint(0, 1024)
      row.append(shuzi)
    s.append(row)

for i in range(88):
    for j in range(88):
      if s == x:
            print(i, j)

在这个修复后的代码中,我使用了两个for循环来创建二维数组并填充随机数。这样更简洁,易于理解。同时,这段代码能够正确地生成二维数组并在其中查找指定的数字。

oneywa 发表于 2023-4-28 17:42:51

这里应该用for语句

陶远航 发表于 2023-5-1 20:40:43

这个while语句中有一个逻辑错误,即内部的while循环没有及时终止,导致外层while循环无法正常运行。具体来说,在执行完内部的while循环后,应该立即将c重置为0,否则循环永远无法退出。另外,你的代码中数组s并没有定义正确的形状(shape),因此在添加元素时会出错。以下是修改后的代码供参考:
x = int(input("请输入需要匹配的数字:"))
import random

z1 = 0
z = 0
c = 0
s= []
s1 = []
while z < 88:
    shuzi = random.randint(0,1024)
    s.append() # 定义每个元素为一个列表
    z += 1
   
while z1 < 88:
    while c < 88:
      shuzi1 = random.randint(0,1024)
      s1.append(shuzi1)
      c += 1
    s = s1
    s1 = []
    c = 0
    z1 += 1
      
for i in range(88):
    for j in range(88):
      if s == x:
            print(i, j)

这里我将每个元素设为一个长度为1的列表,以便后续添加值。同时,利用len(s)可以获取列表s的长度,而不必预定一个变量进行自增。
页: [1]
查看完整版本: 大佬们看一下 我下面的wuile语句哪里有问题