如何解决Python序列生成器
您好,首先感谢您花时间阅读我的问题。
我目前正在创建一个 python 生成器,所以它会帮助我的主要工作...... 我假装得到一个只有数字改变的序列:
代码:
numbers = range(0,170)
sequence_of_numbers = []
for number in numbers:
if number < 170:
sequence_of_numbers.append(number)
print("color " + sequence_of_numbers + " = Math.floor(Math.random() * 256);")
我想得到什么:
color1 = Math.floor(Math.random() * 256);
color2 = Math.floor(Math.random() * 256);
color3 = Math.floor(Math.random() * 256);
color4 = Math.floor(Math.random() * 256);
color5 = Math.floor(Math.random() * 256);
等等...
Traceback (most recent call last):
File https://extendsclass.com/lib/Brython-3.8.9/www/src/Lib/site-packages/editor.py,line 116,in run
exec(src,ns)
File <string>,line 9,in <module>
TypeError: Can't convert list to str implicitly
解决方法
刚刚注意到这一点。
您正在将您的数字附加到一个列表中,并且基本上是尝试将它们一次全部打印出来,使用 for 迭代循环可以避免这种情况。
numbers = range(0,170)
sequence_of_numbers = []
for number in numbers:
if number < 170:
sequence_of_numbers.append(number)
for x in range(len(sequence_of_numbers)):
print("color " + str(sequence_of_numbers[x]) + " = Math.floor(Math.random() * 256);")
:)
,啊,我刚刚意识到您可能正在打印内容以用于 C# 或其他语言。 你可以这样做:
for i in range(1,170):
print(f"color{i} = Math.floor(Math.random() * 256);")
没有理由实际存储另一个列表,因为您没有使用它。您可以改为只迭代普通的 range
。在这种情况下,它将使用 1,2,3,...,169。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。