对于特定数字的循环

时间:2018-02-01 02:01:28

标签: python

我正在尝试编写一个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)

4 个答案:

答案 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)

感谢您的评论。