在 python 中的海龟中使用列表

Posted

技术标签:

【中文标题】在 python 中的海龟中使用列表【英文标题】:using list in turtle in python 【发布时间】:2018-09-14 03:22:30 【问题描述】:

下面这行我没看懂-

'i = random.randint(0, len(colors)-1)' (用############ 突出显示) 在以下代码中:

import  turtle
import random


colors = 
["red","green","blue","yellow","orange","black","purple","gray","maroon"]
turtle.penup()

for i in range(200):
    x = random.randint(-100,100)
    y = random.randint(-100,100)

    #set a random position
    turtle.setpos(x,y)

    #set a random color
    ############
    i = random.randint(0, len(colors)-1) 
    ############
    turtle.dot(colors[i])

此外,如果我写有什么问题 i = random.randint(0, len(colors)) 代替 i = random.randint(0, len(colors)-1) ??

提前谢谢...

【问题讨论】:

您的意思是 len(colors)-1 吗?认为 len(colors-1) 有废话 我建议您阅读手册。它是一个范围内的随机值。 你写的代码不正确(-1 应该像random.randint(0, len(colors)-1) 这样在最里面的括号之外),无论如何在 Python 中都有更简单的方法(@ 987654324@),无论如何,SO 是为了询问如何修复自己的代码,而不是为了理解别人的代码。 len(colors-1) 会给你这个错误:TypeError: unsupported operand type(s) for -: 'list' and 'int' 【参考方案1】:

而不是:

i = random.randint(0, len(colors)-1) 
turtle.dot(colors[i])

随机利用choice()函数:

turtle.dot(random.choice(colors))

这避免了原始错误的机会,因为不涉及任何指标或数学:

>>> import random
>>> help(random.choice)
Help on method choice in module random:

choice(seq) method of random.Random instance
    Choose a random element from a non-empty sequence.

【讨论】:

【参考方案2】:

应该是:

i = random.randint(0, len(colors)-1)

它选择随机颜色 btwn 0 和颜色数组的长度 -1(保持在其边界内)。

【讨论】:

【参考方案3】:

改变并尝试这个,

i = random.randint(0, len(colors)-1)

【讨论】:

以上是关于在 python 中的海龟中使用列表的主要内容,如果未能解决你的问题,请参考以下文章

python中的方向控制函数

如何在 Python 中隐藏海龟图标/指针

python海龟画图怎么把背景变成黑色

使用Python的turtle(海龟)模块画图

turtle库--海龟绘图

使用Python的turtle(海龟)模块画图