嵩天老师python基础课程笔记-2

第二周 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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是第八篇笔记。 ### Python 文件操作 #### 文件操作基础 - 文件操作是指对计算机硬盘上的文件进行读写操作,Python 中的文件操作是通过内置的 `open()` 函数实现的。 - `open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)` 函数用于打开一个文件,并返回文件对象。 - `file`:要打开的文件名(包含路径)。 - `mode`:文件打开的模式,有读模式('r')、写模式('w')、追加模式('a')等。 - `buffering`:缓冲区大小,0 表示不缓冲,1 表示缓冲一行,大于 1 表示缓冲区大小,负数表示使用默认缓冲区大小。 - `encoding`:文件编码格式。 - `errors`:错误处理方式。 - `newline`:换行符。 - 文件对象的方法: - `read(size=-1)`:读取文件内容,`size` 表示读取的字节数,不指定表示读取整个文件内容。 - `readline(size=-1)`:读取文件中的一行内容,`size` 表示读取的字节数,不指定表示读取整行内容。 - `readlines(hint=-1)`:读取所有行并返回一个列表,`hint` 表示读取的字节数,不指定表示读取全部行。 - `write(string)`:将字符串写入文件。 - `writelines(sequence)`:将字符串序列写入文件,序列中每个元素都是字符串。 #### 文件操作示例 - 打开文件:`file = open('file_name', 'r')`。 - 读取文件内容:`content = file.read()`。 - 关闭文件:`file.close()`。 - 读取文件中的一行内容:`line = file.readline()`。 - 逐行读取文件内容:`for line in file: print(line)`。 - 写入文件内容:`file.write('Hello World!')`。 - 写入多行内容:`file.writelines(['Hello', 'World', '!'])`。 #### 文件操作进阶 - 使用 `with` 语句可以自动关闭文件,避免忘记关闭文件而导致的问题。 - 示例: ```python with open('file_name', 'r') as file: content = file.read() ``` - 使用 `os` 模块可以对文件进行更加高级的操作,如文件重命名、删除等。 - 示例: ```python import os os.rename('file_name', 'new_file_name') # 重命名文件 os.remove('file_name') # 删除文件 ``` ### Python 面向对象编程 #### 面向对象编程基础 - 面向对象编程是一种编程思想,将程序中的对象看作是相互交互的实体,通过它们之间的交互来完成程序的功能。 - 类(class)是面向对象编程中的一个重要概念,它是一种用户自定义的数据类型。 - 类中包含属性(特征)和方法(行为),属性指对象的数据成员,方法指对象的行为成员。 - 类的定义: ```python class ClassName: # 类属性 attribute = value # 构造函数 def __init__(self, arg1, arg2, ...): self.arg1 = arg1 self.arg2 = arg2 ... # 类方法 def method(self, arg1, arg2, ...): ... ``` - 类的实例化: ```python object_name = ClassName(arg1, arg2, ...) ``` - 对象的属性和方法: ```python object_name.attribute # 访问对象的属性 object_name.method(arg1, arg2, ...) # 调用对象的方法 ``` #### 面向对象编程示例 - 示例:定义一个 `Rectangle` 类,实现矩形的面积和周长计算。 ```python class Rectangle: # 类属性 name = 'Rectangle' # 构造函数 def __init__(self, width, height): self.width = width self.height = height # 类方法 def area(self): return self.width * self.height def perimeter(self): return 2 * (self.width + self.height) ``` - 使用示例: ```python rectangle = Rectangle(3, 4) print(rectangle.name) # 输出 'Rectangle' print(rectangle.area()) # 输出 12 print(rectangle.perimeter()) # 输出 14 ``` ### 总结 本篇笔记介绍了 Python 中的文件操作和面向对象编程基础,包括文件操作函数的使用、类的定义、对象的实例化和属性、方法的访问等。了解和掌握这些内容可以帮助我们更好地进行 Python 编程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值