• Python
  • 编程基础与 turtle 绘图学习笔记

  • @ 2025-8-2 20:52:52

编程基础与 turtle 绘图学习笔记

一、绘制矩形(基础语法与逻辑)

(一)需求分析

根据输入的高、宽、绘图字符、实心/空心标识,打印对应矩形。需处理用户输入、循环控制行列绘制,区分实心和空心逻辑。

(二)代码实现

# 接收用户输入的一行数据,按空格分割为四个参数,分别对应矩形的高(a)、宽(b)、绘图字符(t)、实心/空心标识(shi)
a, b, t, shi = input().split()  
# 将高和宽转换为整数类型,因为输入的前两个参数是表示尺寸的整数
a = int(a)  
b = int(b)  

# 外层循环控制矩形的行数,range(a) 会生成 0 到 a - 1 的序列,共 a 次循环,对应矩形的 a 行
for i in range(a):  
    # 内层循环控制每行的列数,range(b) 生成 0 到 b - 1 的序列,共 b 次循环,对应矩形的 b 列
    for j in range(b):  
        # 判断是否绘制实心矩形,当 shi 不是 '0' 时(即 shi 为 '1' ),绘制实心
        if shi != '0':  
            # 打印绘图字符 t,end="" 表示不自动换行,让同一行的字符连续输出
            print(t, end="")  
        else:  
            # 绘制空心矩形时,判断当前位置是否为矩形边界
            # 边界条件:第一行(i == 0)、最后一行(i == a - 1)、第一列(j == 0)、最后一列(j == b - 1)
            if i == 0 or i == a - 1 or j == 0 or j == b - 1:  
                # 边界位置打印绘图字符 t
                print(t, end="")  
            else:  
                # 非边界位置打印空格,形成空心效果
                print(" ", end="")  
    # 每行所有列绘制完成后,打印换行符,切换到下一行
    print()  

(三)代码解释

  1. 输入处理input().split() 读取用户输入并按空格拆分,分别赋值给 abtshi ,再通过 int() 函数将 ab 转为整数,用于控制矩形行列数。
  2. 循环控制:外层 for i in range(a) 控制矩形行数,内层 for j in range(b) 控制每行的列数,嵌套循环遍历矩形每个位置。
  3. 实心/空心判断if shi != '0' 判断是否绘制实心,满足则直接打印字符;为空心时,进一步判断是否在边界(i == 0 or i == a - 1 or j == 0 or j == b - 1 ),是边界打印字符,否则打印空格。
  4. 换行处理:内层循环结束(一行绘制完),执行 print() 输出换行符,开始下一行绘制。

二、长方形面积计算(数学逻辑与循环应用)

(一)需求分析

给定长方形面积(整数),求长和宽均为整数且长≥宽的长方形可能种数,需遍历可能的长和宽组合,统计符合条件的数量。

(二)代码实现(需补充,以下为示例思路)

A = int(input())  # 获取用户输入的长方形面积
count = 0  # 初始化计数器,记录符合条件的长方形种数
# 遍历可能的宽,从 1 到 int(A**0.5) ,因为长≥宽,宽最大不超过面积的平方根
for width in range(1, int(A**0.5) + 1):  
    if A % width == 0:  # 判断当前宽度是否能整除面积,即存在对应的整数长
        count += 1  # 符合条件,计数器加 1
print(count)  # 输出可能的长方形种数

(三)代码解释

  1. 输入处理int(input()) 读取用户输入的面积值,赋值给 A
  2. 循环遍历for width in range(1, int(A**0.5) + 1) 遍历可能的宽,范围到面积平方根(避免重复计算,如长和宽交换的情况)。
  3. 条件判断if A % width == 0 判断当前宽 width 能否整除面积 A ,能整除说明存在对应的整数长(A // width ),此时长方形存在,count 加 1 。
  4. 结果输出:循环结束,print(count) 输出符合条件的长方形种数。

三、turtle 绘图基础及案例

(一)turtle 库基础操作

  1. 库导入import turtle 导入 turtle 库,后续可使用库中函数绘制图形,如 turtle.forward()(向前移动)、turtle.left()(左转) 等。
  2. 画笔设置
    • turtle.pensize(size) :设置画笔粗细,size 为整数,代表像素值,如 turtle.pensize(10) 设置画笔粗细为 10 像素。
    • turtle.color(pencolor, fillcolor) :设置画笔颜色和填充颜色,pencolor 为线条颜色,fillcolor 为填充颜色,如 turtle.color("blue", "yellow")
  3. 图形绘制
    • turtle.circle(radius, extent) :绘制圆弧或圆形,radius 为半径,extent 为绘制的角度(可选,不填默认 360 度即圆形 ),如 turtle.circle(100, 90) 绘制半径 100 像素、90 度的圆弧。
    • turtle.forward(distance) :让画笔向前移动 distance 像素距离,绘制直线。
    • turtle.left(angle) :让画笔逆时针转动 angle 角度,改变绘制方向。
  4. 填充控制
    • turtle.begin_fill() :开始填充,后续绘制的封闭图形会用设置的填充颜色填充。
    • turtle.end_fill() :结束填充,完成封闭图形的颜色填充操作。
  5. 保持窗口turtle.done() 使绘图窗口保持显示,防止程序结束后窗口立即关闭,方便查看绘制结果。

(二)练习案例 - 绘制彩色圆弧(练习 2 扩展理解)

import turtle
# 设置画笔粗细为 10 像素
turtle.pensize(10)  
# 绘制红色、90 度圆弧
turtle.color("red")  
turtle.circle(100, 90)  
# 绘制黄色、90 度圆弧
turtle.color("yellow")  
turtle.circle(100, 90)  
# 绘制蓝色、90 度圆弧
turtle.color("blue")  
turtle.circle(100, 90)  
# 绘制绿色、90 度圆弧
turtle.color("green")  
turtle.circle(100, 90)  
# 保持绘图窗口显示
turtle.done()  

解释:依次设置画笔颜色,调用 turtle.circle(100, 90) 绘制四个 90 度圆弧,拼接成类似彩色圆环的图形,turtle.done() 保证窗口不关闭。

(三)练习 1 - 绘制三角形

import turtle
t = turtle.Pen()  # 创建画笔对象 t,方便后续操作
# 循环 3 次,绘制三角形三条边
for i in range(1, 4):  
    t.forward(100)  # 画笔向前移动 100 像素,绘制边
    t.left(120)  # 画笔左转 120 度,调整方向
# 保持绘图窗口显示
turtle.done()  

解释turtle.Pen() 创建画笔对象 t ,通过 for 循环三次执行 t.forward(100)(绘制边长)和 t.left(120)(调整角度,三角形内角 60 度,外角 120 度,这里转外角实现转向 ),完成三角形绘制。

(四)练习 3 - 绘制五角星

import turtle
t = turtle.Pen()  # 创建画笔对象 t
# 循环 5 次,绘制五角星五条边
for i in range(1, 6):  
    t.forward(100)  # 画笔向前移动 100 像素
    t.left(144)  # 画笔左转 144 度,调整方向(五角星每个转向角度为 144 度 )
# 保持绘图窗口显示
turtle.done()  

解释:利用 for 循环五次绘制边并调整角度,t.left(144) 依据五角星几何特点设置转向角度,循环结束后用 turtle.done() 保持窗口显示绘制的五角星。

(五)在线判题系统作业相关

  1. 作业页面功能:包含作业介绍、题目列表(如 T1097 画矩形P215 【例36.1】计算矩阵边缘元素之和 等 ),可查看题目状态(是否递交)、进行代码编辑递交、查看成绩等操作,助力练习和巩固知识。
  2. 使用建议:遇到对应题目,根据需求分析思路,结合课堂学的语法(如循环、条件判断、库函数使用等 )编写代码,在系统中递交测试,根据反馈调试优化,提升编程能力。

以上就是本节课涉及的编程基础(输入处理、循环、条件判断等 )和 turtle 绘图相关知识及实践案例,多动手练习这些代码,理解语法逻辑和图形绘制原理,逐步提升编程技能呀!

0 条评论

目前还没有评论...