You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用turtle库绘制n角星 解决6、14等特殊点数绘制问题

Python turtle绘制n角星方案修正

你遇到的问题核心是偶数分支判断条件重复,且未对6、14、22这类特殊点数做单独判断:这类点数规律为x ≡ 6 mod 8(即x减6后可被8整除),对应的10、18、26这类点数规律为x ≡ 2 mod 8,调整判断顺序和绘制逻辑即可解决。

修正要点

  1. 调整偶数分支的判断优先级,避免重复的x%2==0条件导致后续分支永远无法触发
  2. 删除了x%4==0分支中冗余的y+=360/x语句,该语句不会对循环逻辑产生影响
  3. 新增x%8==6的判断分支,对应6、14、22这类点数,采用适配的旋转角度计算逻辑

修正后完整代码

from turtle import *

# Settings 
speed(5)
width(1)
color('red', 'yellow') # outline, fill

x=int(input('Enter the number of points you want the star to have.')) 

begin_fill()

# 奇数点数星
if x % 2 != 0:
    for i in range(x):
        right(180 - 180/x)
        forward(300)
# 可被4整除的偶数点数星
elif x % 4 == 0:
    for i in range(x):
        y = 180 - 360/x
        right(y)
        forward(300)
# 10、18、26……这类 x%8==2 的点数
elif x % 8 == 2:
    for i in range(x):
        y = 90 + 180/x
        right(y)
        forward(300)
# 6、14、22……这类 x%8==6 的点数
else:
    for i in range(x):
        y = 180 - 720/x
        right(y)
        forward(300)

end_fill()

hideturtle()

exitonclick()

内容的提问来源于stack exchange,提问作者user13558716

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 11:27:03