所以我对大学有挑战,它涉及制作一个带有单个分段的动态饼图
我已经
了 chart_title = 'Tourism GDP by States/Territories in Australia'
segment_labels = ['QLD', 'VIC', 'NSW', 'SA', 'WA', 'TAS', 'NT', 'ACT']
percentages = [0.24, 0.22, 0.328, 0.06, 0.082, 0.03, 0.02, 0.02]
from turtle import *
radius = 200
penup()
forward(radius)
left(90)
pendown()
color('palegreen')
begin_fill()
circle(radius)
end_fill()
home()
right(90)
color('black')
def segment(percentages):
rollingPercent = 0
radius=200
for percent in percentages:
segment = percent * 360
rollingPercent += segment
setheading(rollingPercent)
pendown()
forward(radius)
penup()
home()
这是对的吗? 因为当我执行代码时,它只绘制一个绿色圆圈,并且不会在饼图中绘制任何段
答案 0 :(得分:1)
您的代码由几部分组成。
第1节:
chart_title = 'Tourism GDP by States/Territories in Australia'
segment_labels = ['QLD', 'VIC', 'NSW', 'SA', 'WA', 'TAS', 'NT', 'ACT']
percentages = [0.24, 0.22, 0.328, 0.06, 0.082, 0.03, 0.02, 0.02]
radius = 200
第2节:
from turtle import *
第3节:
penup()
forward(radius)
left(90)
pendown()
color('palegreen')
begin_fill()
circle(radius)
end_fill()
home()
right(90)
color('black')
第4节:
def segment(percentages):
rollingPercent = 0
radius=200
for percent in percentages:
segment = percent * 360
rollingPercent += segment
setheading(rollingPercent)
pendown()
forward(radius)
penup()
home()
在第一部分中,您将定义一些变量
在第二部分中,您将导入turtle
模块(库)
在第3部分中,您将从龟库中执行一些绘制绿色圆圈的函数
现在重要一点。在第4节中,您定义了一个函数(称为segment
),可以绘制段。但是,在您明确要求之前,它不会绘制段。如果您不熟悉函数的内容,则应阅读有关此问题的一些教程。理解它们非常重要(请参阅here,here和here)。
因此,虽然已经定义了绘制段的函数,但是您没有调用该函数(在函数中运行代码)。您的函数采用一个参数(参数)percentages
,它是段的百分比列表。请注意,在这种情况下,变量名percentages
是指仅存在于函数segment
中的局部变量,它不一定是指您在代码的第1部分中定义的列表(但它可以) 。要了解我对局部变量的含义,请阅读this。
所以你需要调用你的函数。为此,您需要添加代码行segment(percentages)
,该代码行调用函数segment
并将percentages
列表作为参数传递。
完整代码:
chart_title = 'Tourism GDP by States/Territories in Australia'
segment_labels = ['QLD', 'VIC', 'NSW', 'SA', 'WA', 'TAS', 'NT', 'ACT']
percentages = [0.24, 0.22, 0.328, 0.06, 0.082, 0.03, 0.02, 0.02]
from turtle import *
radius = 200
penup()
forward(radius)
left(90)
pendown()
color('palegreen')
begin_fill()
circle(radius)
end_fill()
home()
right(90)
color('black')
def segment(percentages):
rollingPercent = 0
radius=200
for percent in percentages:
segment = percent * 360
rollingPercent += segment
setheading(rollingPercent)
pendown()
forward(radius)
penup()
home()
segment(percentages)
从您的评论中可以清楚地看出,您需要熟悉Python中的函数,因此我建议您阅读一些教程并了解基础知识。它将使未来的生活更轻松,并真正为您打开编程功能。
答案 1 :(得分:0)
您已定义功能segment
来执行某些操作,但您从未真正调用或运行它 - 这就是为什么它不执行任何操作以外的操作为你画一个圆圈。您可以通过segment()
在新的非缩进行上执行此操作。