然小兆同学 发表于 2022-7-13 23:36:31

Python随机生成88*88列表

本帖最后由 然小兆同学 于 2022-7-13 23:47 编辑

为什么用while循环生成只有第一行?

import random
sum = []
i = 0
j = 0
n = 0
while i <= 88:
    sum.append([])
    while j <= 88:
      sum.append(random.randint(0,1024))
      j += 1
      print(sum)
    i += 1


但是用foriin   这个就可以顺利生成。

import random
sum = []
i = 0
j = 0
n = 0
for i in range(88):
    sum.append([])
    for j in range(88):
      sum.append(random.randint(0,1024))      
      print(sum)

为什么用while不可以实现呀?

咕咕鸭 发表于 2022-7-13 23:42:17

图片应该可以添加进文本吧

然小兆同学 发表于 2022-7-13 23:48:14

咕咕鸭 发表于 2022-7-13 23:42
图片应该可以添加进文本吧

我现在加入文本代码了,帮忙看看,谢谢{:7_131:}

临时号 发表于 2022-7-13 23:59:38

一个问题
在for循环中,每次执行完for j in range(88),再执行for j in range(88)的时候j就会等于0
但在while循环中,第一次执行完while j <= 88之后,j就等于89了,再执行一次while j <= 88,因为j <= 88条件不满足,所以直接跳过了while循环,导致while j <= 88只执行了一次
所以应将代码改为这样
import random
sum = []
i = 0
j = 0
n = 0
while i <= 88:
    sum.append([])
    j = 0
    while j <= 88:
      sum.append(random.randint(0,1024))
      j += 1
      print(sum)
    i += 1

hornwong 发表于 2022-7-14 12:06:22

{:5_108:}

咕咕鸭 发表于 2022-7-14 17:02:43

我觉得,应该是
import random
sum = []
i = 0
j = 0
n = 0
while i <= 88:
    sum.append([])
    j = 0
    while j <= 88:
      sum.append(random.randint(0,1024))
      j += 1
      
    i += 1
print(sum)

{:10_319:}
页: [1]
查看完整版本: Python随机生成88*88列表