2022年 11月 6日

Python语言程序设计(嵩天老师版)第二周笔记

目录

一、第一周回顾

二、计算机技术的演进

三、编程语言的初心

编程语言的种类

不同的语言

四、python语言的特点 

五、turtle库的使用

turtle背景介绍

import

一张纸——turtle绘图窗体

一支笔——画笔控制函数

turtle空间坐标体系——利用空间坐标改变位置

turtle角度坐标体系

for和in


一、第一周回顾

保留字:保留字一共有33个,红色部分的在python中用不到,只有Ture、False以及None是大写字母,别的都不是。就是我们不能用保留字定义字符串等

二、计算机技术的演进

  • 计算机系统结构时代(1946-1981):研制不同类型的计算机、计算机的体系结构、CPU,操作系统,编译器,解释器等不同的软件,主要是为了提升计算机自身的能力。
  • 网络和视窗时代(1981-2008):互联网Window视窗操作系统,主要是为了接人人机交互问题。
  • 2008年,安卓操作系统诞生,PC时代向移动时代转换。
  • 复杂信息时代(2008-2016):出现了很多新名词:网络安全(系统复杂)、云计算、大数据等。所有的信息都可以数据化,这一时期主要是为了解决数据问题。
  • 2016-:人工智能,计算机的应用早已无孔不入,如今就是为了解决人类问题。我们现在处于新计算时代。

三、编程语言的初心

编程语言的种类

  • 机器语言:二进制语言,用二进制代码表达指令;
  •                          计算机硬件可以直接执行,与CP型号无关。
  •         ej:完成2+3功能的机器语言:11010010 00111011
  • 汇编语言:是一种将二进制代码直接对应助记符的编程语言;
  •                          与CPU型号有关;
  •                          程序不通用,需要汇编器转换。
  •          ej:完成2+3的汇编语言:add 2,3,result
  •  高级语言:更接近自然语言,同时更容易描述计算问题;
  •                           与CPU型号无关;
  •                            编译后运行。
  •          ej:完成2+3的高级语言:result = 2 + 3
  •    超级语言:粘性整合已有程序,具备庞大计算生态,可以很容易利用已有代码功能;
  •                             编程思维是集成开发。
  •            ej:完成2+3的超级语言:result = sum(2,3)
  • 不同的语言

  • C
  • 学习内容:指针、内存、数据类型
  • 语言本质:理解计算机系统结构
  • 解决问题:性能
  • 关心内存,不然程序不好运行,计算机硬件没有那么多的内存和资源
  • java
  • 学习内容:对象、跨平台、运行时
  • 语言本质:理解主客体关系
  • 解决问题:跨平台和程序中的交互问题
  • C++(C语言的演进)
  • 学习内容:对象、多台、跨平台
  • 语言本质:理解主客体关系
  • 解决问题:大规模程序
  • VB
  • 学习内容:对象、按钮、文本框
  • 语言本质:理解交互逻辑
  • 解决问题:桌面应用
  • Python
  • 学习内容:编程逻辑、第三方库
  • 语言本质:理解问题求解
  • 解决问题:各类问题
  1. 补充:
  2. C/C++:Python可以调用C写的接口代码,且不占用内存;
  3. JAVA:针对特定开发和岗位需求;
  4. HTML/CSS/JS:不可替代的前端技术,全栈能力;
  5. 其他语言:R/GO/MATLAB,特定领域 
  6. 四、python语言的特点 

  • python是通用、脚本、开源、跨平台、多模型语言。
  • 具有强制可读性:缩进是语法规则
  • 较少的底层语法元素:不需要操作内存和低级接口
  • 多种编程方式
  • 支持中文字符
  • 代码量是c的10%

13万的第三方库,且仍然在快速增长。Python的计算生态由标准库和第三方库组成。标准库是随解释器直接安装到操作系统中的功能模块,标准库包括库Library、包Package、模块Module,统称模块。第三方库需要经过安装才能使用的功能模块。我们可以把这些库想象成一个森林,森林里的每一棵树都有自己的作用。

  • 开放共享
  • 跨操作系统平台
  • 避免重复造轮子

五、turtle库的使用

在正式介绍之前,我们可以想象一下,我们自己在画画的时候,我们会需要一张纸,很多不同颜色的笔,以及绘画目标,才能够完成绘画。

turtle背景介绍

turtle于1969年问世,用于程序设计入门。turtle库是turtle绘图体系的Python实现,是入门级的图形绘制函数。

import

Import是保留字之一,用于扩充Python程序功能。有三种形式:

  • import <库名>
  • <库名>.<函数名>(<函数参数>
  • ej:
    1. import turtle
    2. turtle.setup(650,350,100,100)
  •  from <库名> import*
  •  <函数名>(<函数参数>)
  • ej:
    1. from turtle import*
    2. setup(650,350,100,100)
  • Import <库名>as <字母>
  •  <字母>.<函数名>(<函数参数>)
  • ej:
    1. import turtle as t
    2. t.setup(650,350,100,100)

一张纸——turtle绘图窗体

turtle的绘图窗体是turtle的一个画布空间,也就是那张纸。窗口使用的最小单位是像素。

代码:

turtle.setup(width,height,startx,starty)

它是用来设置窗体的大小和位置的。Width表示画布的宽度,height表示画布的高度。Startx,starty表示画布左上角在屏幕的位置。如果没有(startx,sarty)就默认为(0,0)。不过setup()也不是必须的。

 

一支笔——画笔控制函数

  1. 1. 画笔操作后一直有效,一般成对出现
  2.     turtle.penup():别名 turtle.up(),通俗地讲就是把画笔拿出来
  3.     turtle.pendown():别名turtle.pd(),通俗地讲就是开始绘画,笔头在纸上动起来。
  4. 2. 画笔设置后一直有效,直至下次重新设置
    1.     画笔是什么颜色,画笔的粗细,在我们开始绘画的时候也要选择好。
    2.     turtle.pensize(width):别名turtle.width(width) ,是画笔宽度。
    3.     turtle.pencolor(color)color为颜色字符串或RGB值
  5.     以紫色为例:
  6.     颜色字符串:turtle.pencolor(“purle”)
  7.     RGB的小数值:turtle.pencolor(0.63,0.13,0.94) 
  8.     RGB的元祖值:turtle.pencolor((0.63,0.13,0.94))
  9. 3. 补充说明RGB
  10.      RGB是一种色彩体系,由REB/GREEN/BLUE三种颜色可以构成万物色。RGB指红蓝绿整个通道的颜色组合,它可以覆盖视力所能感知的所有颜色,RGB每色取值范围0-255整数或者0-1小数。
  11.      Turtle.colormode(mode):
  12.      mode = 1.0为RGB小数模式,mode = 255:RGB整数值模式。

 

turtle空间坐标体系——利用空间坐标改变位置

  • 绝对坐标:利用空间坐标改变位置 表示为:turtle.goto(x,y)

  •  海龟坐标:海龟的当前前进方向一定是它的前进方向

turtle.fd(d):fd就是foward向前,d代表向前走多少个像素。

turtle.bk(d):bk就是back向后,d代表向后走多少个像素。

turtle.circle(r,angle):根据半径r绘制extent角度弧形,r默认圆心在海龟左侧r距离,半径为负数就是在海龟右侧。angle是圆心角,默认360°。

 

turtle角度坐标体系

  • 绝对角度

 Turtle.setheading(angle):别名turtle.seth(angle),改变海龟行进方向,只改变方向,不行进;angle为绝对角度。

  • 海龟角度

turtle.left(angle)

turtle.right(angle)

以海龟现在的行进方向,决定向左/右转多少角度。

for和in

for和in也是保留字。

for <变量> in range(<参数>)  <被循环执行的语句>

<变量>表示每次循环的计数,0到<次数>-1

比如代码:

  1. for i in range(5):
  2. print(“Hello:”,i)

输出结果为:

注意print()中的“,”代表空格。

range()是一个产生循环计数序列的函数 range(N)产生0到N-1的整数序列,共N个 range(M,N)产生M到N-1的整数序列,共N-M个。