|
10鱼币
本帖最后由 Envirchem 于 2022-9-18 09:20 编辑
a = int(input("请输入一个待匹配的整数:"))
nums = []
c = 0
for i in range(88 * 88):
import random
b = random.randint(0, 1024)
nums.append([b])
c += 1
if c >= 88 * 88:
break
while nums.index([a]) > 0:
if nums.index([a]) % 88 == 0:
print(nums.index([a]) / 88, nums.index([a]) / 88) #求行和列
else:
print(nums.index([a]) // 88 + 1, nums.index([a]) % 88) #求行和列
nums[nums.index([a])] = a - 1
这是python列表(v)中动动手的第0题,在88*88矩阵中查找你输入的待匹配数,输出它的行和列,我写的这个虽然能运行出结果,但会报一个ValueError,比如我输入1024,虽然会出结果,但会出现“ValueError: [1024] is not in list”这样的错误。求大神帮我看一下哪里出了问题?
完整的报错如下:Traceback (most recent call last):
File "C:/Users/29436/Desktop/python homework/523478.py", line 12, in <module>
while nums.index([a]) > 0:
ValueError: [1024] is not in list
本帖最后由 jackz007 于 2022-9-18 12:26 编辑
楼主的代码存在根本问题,nums 本应该是二维列表,样子像这样[[1 , 2 , 3 , 4] , [5 , 6 , 7 , 8] , ...],可是,楼主的 nums 却是这个样子[[1] , [2] , [3] , [4] . . .],剩下的代码就无法进一步讨论了。
试试这个代码吧 import random # 不可以把 import 语句放入循环体
a = int(input("请输入一个待匹配的整数:"))
if 0 <= a <= 1024:
nums = []
for i in range(88):
b = []
for j in range(88):
b . append(random . randint(0 , 1024))
nums . append(b)
for i in range(88):
for j in range(88):
if nums[i][j] == a:
print(i , ',' , j)
【简化版】: import random # 不可以把 import 语句放入循环体
a = int(input("请输入一个待匹配的整数:"))
if 0 <= a <= 1024:
nums = [[random . randint(0 , 1024) for i in range(88)]for j in range(88)]
for i in range(88):
for j in range(88):
if nums[i][j] == a:
print(i , ',' , j)
|
最佳答案
查看完整内容
楼主的代码存在根本问题,nums 本应该是二维列表,样子像这样[[1 , 2 , 3 , 4] , [5 , 6 , 7 , 8] , ...],可是,楼主的 nums 却是这个样子[[1] , [2] , [3] , [4] . . .],剩下的代码就无法进一步讨论了。
试试这个代码吧
【简化版】:
|