我正在尝试编写一个for循环,使其只包含1到7之间的数字(包括两者),并且数字存储在列表中。 列表的长度应为8629。 这是我尝试运行的代码。我收到此错误:SyntaxError:语法无效
random_list = []
for i in range(0,8628):
x = i % 7
random_list[i].append(x+1)
while i == i + 1
print(random_list)
答案 0 :(得分:0)
这将给出您指定范围内的随机整数:
<强>代码强>
import random
random_list = [random.randint(1, 7) for _ in range(8629)]
<强>测试强>
random_list[:10]
# [3, 4, 4, 5, 3, 1, 3, 7, 7, 6]
min(random_list), max(random_list)
# (1, 7)
len(random_list)
# 8629
对于连续数字的循环,请尝试itertools
:
代码
import itertools as it
cycled_list = list(it.islice(it.cycle(range(1, 8)), 8629))
<强>测试强>
cycled_list[:10]
# [1, 2, 3, 4, 5, 6, 7, 1, 2, 3]
min(cycled_list), max(cycled_list)
# (1, 7)
len(cycled_list)
# 8629
请参阅@Ming Chu的帖子列表压缩变体。
答案 1 :(得分:0)
random_list = [i % 7 + 1 for i in range(8628)]
print(random_list)
列表将是:[1,2,3,4,5,6,7,...........]
答案 2 :(得分:0)
如果您的要求是:
列表的长度应该是8629,并写一个for循环,使它只包含1到7之间的数字。不应该这样吗?
from random import *
random_list = []
while len(random_list) < 5:
random_list.append(randint(1, 7))
print(random_list)
答案 3 :(得分:-1)
这里的问题是你的语法。您没有遵循python 3.x或2.x语法。
语法是编写代码的样式或方法。如果希望代码有效,则必须遵循语法。
如果您使用的是Python 3.x版本,那么您的代码应编写如下: -
random_list = []
for i in range(0,8628):
x = i % 7
random_list[i].append(x+1)
while i == i + 1:
print(random_list)
根据Python 3.x语法,这将是正确的格式化代码。
问题在于,无论何时启动类似“for”或“while”的循环,都必须将代码缩进4个空格或制表符。
编辑:
您的问题的正确代码是,
random_list = []
for i in range(1,8630):
x = i % 7
if x == 0:
x = 7
random_list.append(x)
print(random_list)
感谢您的评论。