嵩天老师python基础课程笔记-2_海龟编辑器绘制八角形-程序员宅基地

技术标签: python  python学习笔记  编程语言  

第二周 Python基本图形绘制

2.1 深入理解python语言
2.2 实例2:python蟒蛇绘制
2.3 模块1:turtle库的使用
2.4 turtle程序语法元素分析
2.1 深入理解python语言

计算机发展四个阶段:
1946-1981:计算机系统结构时代,计算能力问题
1981-2008:网络和视窗时代,人与计算机交互能力
2008-2016:复杂系统时代,数据问题
2017- :人工智能时代,人类的问题

不同编程语言

语言名称 学习内容 语言本质 解决问题
C 指针、内存、数据类型 理解计算机系统结构 性能
Java 对象、跨平台、运行时 理解主客体关系 跨平台
C++ 对象、多态、继承 理解主客体关系 大规模程序
VB 对象、按钮、文本框 理解人机交互逻辑 桌面应用
Python 编辑逻辑、第三方库 理解问题、求解问题 各类问题

深入理解python语言
通用性:Python语言是一个通用语言,其通用性是其最大特点
语法简介:Python语法具有强制可读性,有较少的底层语法元素,是C语言的代码量10%
计算生态:Python具有大量的第三方库,有快速增长的第三方库,跨操作系统

编程语言的种类
机器语言:二进制代码,与CPU型号相关
汇编语言:二进制代码用助记符表示,与CPU型号相关
高级语言:接近自然语言,编译器编译后运行,与CPU型号无关
超级语言:接近自然语言,粘接已有程序,形成庞大生态,python是唯一超级语言

2.2 实例2:python蟒蛇绘制

问题1:计算机绘图是什么原理?
问题2:蟒蛇绘制应当从哪里开始?
代码如下:

    #PythonDraw
    import turtle   #引入turtle库
    turtle.setup(650, 350, 200, 200)
    turtle.penup()
    turtle.fd(-250)
    turtle.pendown()
    turtle.pensize(25)
    turtle.pencolor("gray")
    turtle.seth(-40)
    for i in range(4):
        turtle.circle(40, 80)
        turtle.circle(-40, 80)
    turtle.circle(40, 80/2)
    turtle.fd(40)
    turtle.circle(16, 180)
    turtle.fd(40 * 2/3)
    turtle.done()
2.3 模块1:turtle库的使用

turtle库概述
turtle绘图体系的Python实现,是python语言的标准库之一

标准库:随解释器一起安装到操作系统的功能模块
第三方库:需要经过安装才能使用的功能模块(库:Library、包:Package、模块:Module统称模块)

turtle绘图窗体
turtle种使用的单位是像素,窗体左上角是坐标原点

turtle.setup(width,height,startx,starty)
#setup()设置窗体的大小及位置,4个参数后两个表示相对整个屏幕的位置

turtle空间坐标体系
内部有一个绝对坐标系,中间为(0,0)点,可以从中点去往任意地方
例如:goto

import turtle
turtle.goto(100,100)
turtle.goto(100,-100)
turtle.goto(-100,-100)
turtle.goto(-100,100)
turtle.goto(0,0)

海龟坐标:以海龟视角控制海龟的行走

turtle的角度坐标系
可以用turtle.seth(angle)来设置,例如turtle.seth(45)可以让海龟方向朝向45度
也可以用turtle.right(angle)``turtle.right(angle)让海龟向左向右旋转

例子:

import turtle
turtle.left(45)
turtle.fd(150)
turtle.right(135)
turtle.fd(300)
turtle.left(135)
turtle.fd(150)
ts.turtle.getscreen()
ts.getcanvas().postscript(file = 'z.eps')

turtle的色彩体系
利用RGB的色彩,红绿蓝三色取0-255(或者0-1)数值来确定颜色
可以用turtle.colormode(mode)改变整数(255)表示颜色或者小数(1)表示颜色

2.4 turtle语法元素分析
  1. 库引用与import
    库引用:扩充Python程序功能的一种方式

库引用使用import保留字完成,采用<a>.<b>()的编码风格

          import<库名>    
         <库名>.<函数名>(<函数参数>)

使用formimport保留字共同完成对库的引用

        form<库名>import<函数名>
        from<库名>import*
        <函数名>(<函数参数>)
    #PythonDraw
    from turtle import*  #引入turtle库
    setup(650, 350, 200, 200)
    penup()
    fd(-250)
    pendown()
    pensize(25)
    pencolor("gray")
    seth(-40)
    for i in range(4):
        circle(40, 80)
        circle(-40, 80)
    circle(40, 80/2)
    fd(40)
    circle(16, 180)
    fd(40 * 2/3)
    done()

或者为了防止名称冲突,可以使用importas(建议)

    import<库名>as<库别名>
    <库别名>.<函数>(<函数参数>)
#PythonDraw
import turtle as t   #引入turtle库
t.setup(650, 350, 200, 200)
t.penup()
t.fd(-250)
t.pendown()
t.pensize(25)
t.pencolor("gray")
t.seth(-40)
for i in range(4):
    t.circle(40, 80)
    t.circle(-40, 80)
t.circle(40, 80/2)
t.fd(40)
t.circle(16, 180)
t.fd(40 * 2/3)
t.done()

2.turtle画笔控制函数

turtle.penup()turtle.pu(),表示画笔抬起
turtle.pendown()turtle.pd(),表示画笔落下
turtle.pensize(width)turtle.width(),表示画笔宽度
turtle.pencolor(color),表示画笔颜色

3.turtle运动控制函数

turtle.forward(distance)turtle.fd(distance),表示直线前行,可以是负数
turtle.circle(r,extent)表示根据rexcent角度的弧形

r默认在海龟左侧r
extent默认是360度整圆

4.turtle方向控制函数

turtle.setheading(angle)turtle.seth(angle),表示角度改变

angle改变的是绝对坐标度数,逆时针为正

turtle.left(angle),turtle.right(angle)海龟视角左右

angle表示海龟前景视角上向左向右旋转的角度

for i in range(3,5):
    print(":)",i)
:) 3
:) 4

range函数产生循环技术序列

range(N)产生0到N-1的整数序列
range(M,N)产生M到N-1的整数序列,共N-M个数字

    #PythonDraw
    import turtle as t   #引入turtle库
    t.setup(650, 350, 200, 200) #窗口大小为650*350,位置是窗口左上角距离屏幕左上角(200,200)处
    t.penup()                    #抬起画笔
    t.fd(-250)                   #向后行进250个像素,画布上没有任何痕迹
    t.pendown()                  #画笔落下
    #由原点变为左侧250
    t.pensize(25)                #设置笔的宽度为25
    t.pencolor("gray")           #颜色设置
    t.seth(-40)                  #方向设置为绝对坐标40度位置
    #准备工作完成
    for i in range(4):           
        t.circle(40, 80)
        t.circle(-40, 80)        #绘制身体部分
    t.circle(40, 80/2)              
    t.fd(40)
    t.circle(16, 180)
    t.fd(40 * 2/3)
    t.donet.done                #绘制完成不会不会自动退出,手动退出
turtle八边形绘制

‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬描述

使用turtle库,绘制一个八边形。

import turtle as t
t.pensize(2)
for i in range(8):
    t.fd(100)
    t.left(45)
    t.done
turtle八角形绘制

‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬描述

使用turtle库,绘制一个八角形。

import turtle as t
t.pensize(2)
for i in range(8):
    t.fd(150)
    t.left(135)
    #t.done
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46312912/article/details/105828863

智能推荐

に的用法(转)-程序员宅基地

文章浏览阅读277次。&lt;script type="text/javascript"&gt;&lt;!--google_ad_client = "pub-0241434510974184";/* 博客文章广告728x90, */google_ad_slot = "7316585398";google_ad_width = 728;google_ad_height = 90;// --&g..._!jjjjnjuuhhuyyhhzhzhggdvbvhyz

Python异步IO之协程(二):使用asyncio的不同方法实现协程-程序员宅基地

文章浏览阅读3.6k次,点赞13次,收藏38次。引言:在上一章中我们介绍了从yield from的来源到async的使用,并在最后以asyncio.wait()方法实现协程,下面我们通过不同控制结构来实现协程,让我们一起来看看他们的不同作用吧~在多个协程中的线性控制流很容易通过内置的关键词await来管理。使用asyncio模块中的方法可以实现更多复杂的结构,它可以并发地完成多个协程。一、asyncio.wait()你可以将一个操作分..._python异步io之协程(二):使用asyncio的不同方法实现协程

reactos操作系统实现(162)_co_intcreatewindowex-程序员宅基地

文章浏览阅读2.2k次。co_IntCreateWindowEx函数主要用创建一个显示的窗口,具体实现代码如下:#001 HWND APIENTRY#002 co_IntCreateWindowEx(DWORD dwExStyle,#003 PUNICODE_STRINGClassName,#004 PUN_co_intcreatewindowex

opentsdb源码编译 本地调试环境搭建_opentsdb编译-程序员宅基地

文章浏览阅读895次。opentsdb源码编译 本地调试环境搭建opentsdb源码编译及调试环境搭建前言源码编译过程调试环境搭建opentsdb源码编译及调试环境搭建以下介绍opentsdb源码编译和本地调试环境搭建过程。官网地址: http://opentsdb.net/docs/build/html/development/development.html.前言OpenTSDB is a distrib..._opentsdb编译

pip 异常问题_pipexception:-程序员宅基地

文章浏览阅读2.1k次。使用pip安装出现报错 Exception:Traceback (most recent call last): File "C:\Users\csprock\Anaconda3\lib\site-packages\pip\basecommand.py", line 215, in main status = self.run(options, args) File "..._pipexception:

华为笔记本开发android,华为二合一笔记本支持Android可能是鸡肋!-程序员宅基地

文章浏览阅读923次。原标题:华为二合一笔记本支持Android可能是鸡肋!华为手机销量猛增无疑让华为高兴,不过面对华为提出提出其消费者BG要在5年内实现千万收入,压力颇大,单靠手机业务显然难以实现,在小米推出笔记本的示范效应下,华为推出笔记本是很正常的情况,在过去几年,华为一直都在学习小米的营销模式。 让人诧异的是华为的二合一笔记本产品是一个双系统产品,即是加上键盘是使用Windows系统的笔记本,拆掉键盘就是And..._android开发用华为笔记本怎么样

随便推点

QT 操作 sqlite数据库(二)----问题与其解决方案_sqlite no such function: concat-程序员宅基地

文章浏览阅读6.1k次。上一节从网络上找了一个一般的示例给大家,下面将逐步修改代码将其变为常规开发中可用的可复用代码。首先说下上面的代码在本人实际使用过程中遇到的问题及如何结果1、创建程序后提示“QSqlDatabase: No such file or directory” 的错误2、大部_sqlite no such function: concat

HTML列表项目结点:HTMLCollection和NodeList-程序员宅基地

文章浏览阅读251次。HTMLCollection是元素集合(元素顺序为文档流中的顺序),它和NodeList很像,有length属性来表示HTMLCollection对象的长度,可以通过 item() 传入数字索引来访问单个元素(也可通过方括号[ ]的方式)。当时它还有一个 nameItem() 方法,可以返回集合中指定 name 属性值 或 id 属性值的元素。HTMLCollection是即时更新的,当其所包含的..._html [object nodelist]

福音!GitHub开源中文版《Go入门指南》学习教程-程序员宅基地

文章浏览阅读975次。一个语言欢迎肯定有它独特的原因。比如Python作为胶水语言,上手快、使用简单、三方库资源丰富,机器学习的一些模型算法包,深度学习Tensorflow、Pytorch都是用Python来..._go语言基础 github

StringUtil和StringUtils的区别_stringutil和stringutils有啥区别-程序员宅基地

文章浏览阅读4.4k次。org.apache.commons.lang.StringUtils类是用于操作Java.lang.String类的,而且此类是null安全的,即如果输入参数String为null,则不会抛出NullPointerException异常。StringUtils类中有130多个静态方法,都可以通过如下方式调用:StringUtils.xxx()。_stringutil和stringutils有啥区别

STC的IAP功能使用_stc iap 全局中断-程序员宅基地

文章浏览阅读1w次,点赞3次,收藏33次。 以一些资料源自mcuol.com的xiaoxiaopig博客里面,http://blog.mcuol.com/User/xiaoxiaopig/Article/38135_1.htm,在此声明,如有意见,请立该联系处理。有空要加为好友∧_∧ STC89C51、52内部都自带有2K字节的EEPROM,54、55和58都自带有16K字节的EEPROM,STC单片机是利用IAP技术实现的EEPROM,内部Flash擦写次数可达100,000 次以上,先_stc iap 全局中断

JS实现已知图片路径下载图片_js通过图片路径下载图片-程序员宅基地

文章浏览阅读1.4k次。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><button id="btn">jsdownload</button></body><script> const btn = documen_js通过图片路径下载图片

推荐文章

热门文章

相关标签