赞
踩
目录
计算机的概念
功能性:对数据的操作,表现为数据计算、输入输出处理和结果存储等
可编程性:根据一系列指令自动地、可预测地、准确地完成操作者的意图
计算机的发展
摩尔定律:计算机发展历史上最重要的预测法则
单位面积集成电路上可容纳晶体管的数量约每两年翻一番;
CPU/GPU、内存、硬盘、电子产品价格等都遵循摩尔定律;
未来30年,摩尔定律依然有效。
计算机的发展参照摩尔定律,表现为指数方式
计算机硬件所依赖的集成电路规模参照摩尔定律发展;
计算机运行速度因此也接近几何级数快速增长;
计算机所能高效支撑的各类运算功能不断丰富发展。
程序设计(也称编程)
深度应用计算机的主要手段;
计算机可编程性的体现。
程序设计语言(也称编程语言)
程序设计的具体实现方式;
用于交互(交流)的人造语言。
特点:简单,严谨,精确。
特定的关键词、规则,使简单;
同样的代码只能有一种理解,不能有二义性,使严谨;
让计算机知道数据的特性、特点,使精确。
C语言1972,Python语言1990。
编程语言的执行方式
源代码:采用某种编程语言编写的计算机程序,人类易理解,如:
a = 7;
目标代码:计算机直接执行,常人难理解,如:
11010010 00111011;
编译
将源代码一次性转换成目标代码的过程。(一次性翻译,之后不需要源代码)
将源代码通过编译器翻译成计算机可直接执行的目标代码,程序执行软件获取程序输入并输出结果。
解释
将源代码逐条转换成目标代码并逐条运行。(实时翻译和执行)
解释器读取运行源代码和程序输入得到输出结果。
编程语言的分类
静态语言:使用编译器 C/C++、Java
编译器一次生成目标代码,充分使用更多优化程序
程序运行速度快
脚本语言:使用执行器 Python、JavaScript、PHP
执行程序需要源代码,维护灵活(逐条),能跨多个操作系统平台
边翻译边执行难加载优化
程序在,源代码就在,不易丢失
I Input 输入 程序输入
P Process 处理 程序主要逻辑(处理方法,即算法)
O Output 输出 程序输出
编程解决问题的步骤:
分析问题的计算部分—规划IPO—设计算法—编写程序—调试测试—升级维护
编程能训练计算思维:抽象交互关系、自动化执行的思维模式
区别于逻辑思维(数学)和实证思维(物理)的第三种思维模式
Python-蟒蛇
Python 1~3:1990-2002-2008
应用于火星探测、搜索引擎、引力波分析……
两种编程方式
交互式:在 IDLE 中,对每条语句即使运行结果,适合语法练习
文件式:在一个源程序的文件中批量地编写一组语句,一次性执行
交互式:
- >>> r=25
- >>> area=3.1415*r*r
- >>> print(area)
文件式:
- r=25
- area=3.1415*r*r
- print(area)
输出结果:
1963.4375000000002
交互式:
- >>> import turtle
- >>> turtle.pensize(2)
- >>> turtle.circle(10)
- >>> turtle.circle(40)
- >>> turtle.circle(80)
- >>> turtle.circle(160)
文件式:
- import turtle
- turtle.pensize(2)
- turtle.circle(10)
- turtle.circle(40)
- turtle.circle(80)
- turtle.circle(160)
输出结果: 动态绘制
交互式:
- >>> from turtle import *
- >>> color('red','red')
- >>> begin_fill()
- >>> for i in range(5):
- fd(200)
- rt(144)
-
- >>> end_fill()
文件式:
- from turtle import *
- color('red','red')
- begin_fill()
- for i in range(5):
- fd(200)
- rt(144)
-
- end_fill()
输出结果:
需求:华氏度和摄氏度的相互转换
计算部分:直接转换温度值
输入:带摄氏或华氏标志的温度值
处理:根据温度标志选择合适的温度转换算法
输出:带摄氏或华氏标志的温度值
设计输入输出格式:例如F表示华氏度,C表示摄氏度
设计算法:华氏度和摄氏度的定义及转换公式
C=(F-3²)/1.8
F=C*1.8+3²
- TempStr = input("请输入带有符号的温度值:")
- if TempStr[-1] in ['F','f']:
- C=(eval(TempStr[0:-1])-32)/1.8
- print("转换后的温度是{:.2f}C".format(C))
- elif TempStr[-1] in ['C','c']:
- F=1.8*eval(TempStr[0:-1])+32
- print("转换后的温度是{:.2f}F".format(F))
- else:
- print("输入格式错误")
高亮
缩进:表达程序的格式框架
严格明确,是语法的一部分,缩进不正确程序运行错误
表达所属关系,
变量
用来保存和表示数据的占位符号
变量采用标识符(名字)来表示,关联标识符的过程叫命名
可以用等号对变量赋值或修改值(单一等号“=”为赋值符号)
命名规则
大小写字母、数字、下划线、汉字等字符及组合
注意:首字符不能是数字、不与保留字相同
保留字
被编程语言内部定义并保留使用的标识符
and | elif | import | raise | global | continue | pass |
as | else | in | return | nonlocal | def | yield |
assert | except | is | try | Ture | from | del |
break | finally | lambda | while | False | if | |
class | for | not | with | None | or |
字符串类型
字符串由单引号或双引号表示
字符串是有序字符序列,可以对字符索引
正向递增序号:第一个为0,往后递增
反向递减序号:第一个为-1,往前递减
索引:返回字符串中单个字符
格式:字符串[M] ( M表示字符序号)
如 "请输入带有符号的温度值:"[0] 或TempStr[-1]
切片:返回字符串中一段字符子串
格式:字符串[M:N]
如 "请输入带有符号的温度值:"[1:3] 或TempStr[0:-1]
数字类型:
整数类型 浮点数类型
列表类型:
由0个或多个数据组成的有序序列 (类似数组)
用[ ]表示,内用逗号分隔,如:
[10,010,110] ['F','f']
用保留字“in”判断一个元素是否在列表中,结果Ture/False,如:
TempStr[-1] in ['C','c']
赋值语句
由赋值符号(=)构成的一行代码
分支语句
由判断条件决定程序运行方向的语句
使用保留字if...elif...else构成条件判断的分支结构,如:
if TempStr[-1] in ['F','f']:
如果条件为Ture则执行冒号后缩进的语句
冒号“:”是语法必不可少的一部分
打完冒号自动缩进
elif=else if
函数
格式:函数名(参数)
如:eval(TempStr[0:-1])
输入函数:input( )
获取输入的信息
格式:变量名=input(“提示信息的字符串”)
括号中的文字用来提示用户输入什么样的信息
输出函数:print( )
以字符形式输出结果
格式:print(字符串或字符串变量)
格式化:
如:print("转换后的温度是{:.2f}F".format(F))
{ }表示槽,后面变量填充到这个槽里
:.2f表示变量F填充到这个位置时,保留两位小数
评估函数:eval( )
去掉参数最外侧单/双引号并执行余下的语句
格式:eval(字符串/字符串变量)
举例: >>>eval(“1”)-- 1
>>>eval(“1+2”)-- 3
>>>eval(‘ “1+2” ’)-- ‘1+2’
>>>eval(‘print(“Hallo”)’)-- Hallo
时间节点 | 时期 | 任务 |
1946 第一台计算机诞生 | ||
↓→ | 计算机系统结构时代 | 解决计算能力问题:研制计算机及体系结构,CPU,计算机系统,操作系统,编译器解释器。 |
1981 个人PC机诞生 | ||
↓→ | 网络和视窗时代 | 解决机机交互与人机交互问题:互联网 Windows视窗操作系统 |
2008 安卓系统诞生 | ||
↓→ | 复杂信息时代 | 解决数据问题:接口、存储、产生 |
2016 计算机打败人工 | ||
↓→ | 人工智能时代 | 关注人类自身问题 |
今 |
C
语言本质:理解计算机系统结构
解决问题:性能
适用对象:计算机专业,做底层程序的设计开发
Java
诞生于网络与视窗时代
采用面向对象的方式 跨平台的方法
学习内容:对象 跨平台 运行时
语言本质:理解主客体关系
解决问题:跨平台 程序交互问题
适用对象:适合软件专业
C++
C语言的演进 有面向对象的特点
学习内容:对象 多态 继承
语言本质:理解主客体关系
解决问题:大规模程序编写(操作系统 大规模图像处理)
适用对象:计算机专业
VB
学习内容:对象 按钮 文本框
语言本质:理解交互逻辑(人机)
解决问题:桌面应用
用得少
Python
学习内容:编辑逻辑 第三方库
语言本质:理解问题求解
解决问题:各类问题计算部分的实现
适用对象:所有专业
优势一:语法简洁
语法强制可读性(缩进使整洁易读
较少底层语法元素,不操作内存和低级借口
有多种编程方式
支持处理中文字符
优势二:生态高产
有13万第三方库,安装后可使用,数量快速增长。
用他人的代码减少重复工作
程序生态更加开放共享
能跨操作平台,更灵活
机器语言
一种二进制语言,直接使用二进制代码表达指令
计算机硬件(CPU)可以直接执行,与具体CPU型号有关
例如:完成2+3功能的机器语言,表示出来的是二进制代码,这个代码怎样执行、执行结果,怎样表达应CPU而异
汇编语言
一种将二进制代码直接对应助记符的编程语言,利用助记符进行程序设计
汇编语言与CPU型号有关,程序不通用,需要汇编器转换
例如:完成2+3 功能的汇编语言为add 2,3,result
高级语言
更接近自然语言,同时更容易描述计算问题
高级语言代码与具体CPU型号无关,编译后运行(用编译器或解释器)
编译器参考CPU型号,将高级语言转换为目标代码
例如:完成2+3功能的高级语言为result = 2 + 3
超级语言 Python
具有庞大计算生态,可以很容易利用已有代码功能
编程思维不再是刀耕火种,而是集成开发
例如:完成2+3 功能的高级语言result = sum(2,3) 利用已有函数
设计蟒蛇形状
计算机绘图原理?窗体如何通过程序产生?如何在窗体绘图
如何绘制线-弧-蛇
- import turtle
- turtle.setup(650,350,200,200)
- turtle.penup()
- turtle.fd(-250)
- turtle.pendown()
- turtle.pensize(25)
- turtle.pencolor("grey")
- turtle.seth(-40)
- for i in range(3):
- 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()
turtle-海龟
turtle库是turtle绘图体系的Python实现
turtle绘图体系诞生于1969,主要用于程序设计入门
turtle库是Python语言的标准库之一,入门级的图形绘制函数库
Python计算生态=标准库+第三方库
标准库:随解释器直接安装到操作系统中的功能模块
第三方库:需要安装才能使用的功能模块
库library、包package、模块module三者略有不同,且统称为模块
Turtle的原理
海龟在窗体中心,在画布上游走,轨迹形成图案
由程序控制,可以改变颜色、宽度等
窗体(绘图窗口)最小单位为像素
屏幕坐标原点为桌面左上角
Turtle绘图窗体坐标原点是窗体左上角
setup()函数:设置窗体位置及大小
setup()函数不是必须的,需要控制位置和大小才用
用法:turtle.setup(窗体宽度,窗体高度,在屏幕的起始点X,在屏幕的起始点Y)
后两个参数可以没有,默认屏幕正中间
例如:
turtle窗体内部的空间坐标体系包含绝对坐标和海龟坐标
绝对坐标:窗体中心为原点,正负与笛卡尔坐标系一致
goto()函数:让海龟到达某个坐标位置
用法:turtle.goto(x,y)
海龟坐标:以海龟所在位置为坐标原点
fd():向海龟运行方向前进一段距离
用法:turtle.fd(距离)
说明:这个距离指像素长度
bk():向海龟运行方向反方向后退一段距离
用法:turtle.bk(距离)
circle()函数:向海龟运行方向左侧一定距离为圆心进行曲线运行
用法:turtle.circle(圆弧半径,圆弧角度)
绝对角度
以窗体为参考
seth()函数:改变海龟行进方向
用法:seth(绝对角度)
注意:只改变海龟方向(角度)但不行进(没有轨迹)
海龟角度
以海龟前方为0°基线,划定角度
left()函数:让当前海龟向左改变方向
用法:turtle.left(海龟角度)
right函数:让当前海龟向右改变方向
用法:turtle.right(海龟角度)
RGB色彩模式:由三种颜色构成的万物色
RGB指红绿蓝三个颜色通道的色彩组合
覆盖视力能感知的所有颜色
每色取值范围为0-255整数或者0-1小数
中文名称 | 英文名称 | RGB整数值 | RGB小数值 |
白色 | white | 255,255,255 | 1,1,1 |
黄色 | yellow | 255,255,0 | 1,1,0 |
洋红 | magenta | 255,0,255 | 1,0,1 |
青色 | cyan | 0,255,255 | 0,1,1 |
蓝色 | blue | 0,0,255 | 0,0,1 |
黑色 | black | 0,0,0 | 0,0,0 |
海贝色 | seashell | 255,245,238 | 1,0.96,0.93 |
金色 | gold | 255,215,0 | 1,0.84,0 |
粉红色 | pink | 255,192,203 | 1,0.75,0.80 |
棕色 | brown | 165,42,42 | 0.65,0.16,0.16 |
紫色 | purple | 160,32,240 | 0.63,0.13,0.94 |
番茄色 | tomato | 255,99,71 | 1,0.39,0.28 |
turtle的RGB色彩模式
默认用小数值,可以切换整数
colormode()函数:确定颜色模式
用法:turtle.colormode(1/255)
用“1”,则后续RGB值均为小数
用“255”,则后续RGB值均为整数
库引用:扩充Python程序功能的方式
使用保留字import引入库
用法:import 库名
后续使用方法为:库名.函数名(函数参数)
使用保留字from和import引入库
这样在使用函数前不用加“turtle.”
用法:from 库名 import 函数名
from 库名 import *
from 库名 import 函数名(函数参数)
例如:
import turtle
turtle.setup(650,350,200,200)
改写为:
from turtle import*
setup(650,350,200,200)
两种引用库的方法比较
用import引入,使用时“turtle.setup”为一个整体,不会出现重名问题
用from 库名 import* 引入,使用时为“setup”,可能与自定义函数重名
如果程序中使用了多个库,那么尽量用import引入方式
用保留字import和as引入(常用)
用法import 库名 as 库别名(小名)
用一个更简短的名字代替原库名,后续使用时用这个简短的库名就可以
例如:
import turtle as t
t.setup(650,350,200,200)
penup()函数
别名:pu()
抬起画笔,不在画布上形成图案
用法:turtle.penup()
pendown(函数)
别名:pd()
放下画笔
用法:turtle.pendown()
pendown与penup成对出现,有起有落
pensize()函数
别名:penwidth()
设置画笔宽度
用法:turtle.pensize(像素宽)
pencolor()函数
设置画笔颜色
用法:turtle.pencolor(颜色字符串或R,G,B值)
颜色字符串:turtle.pencolor("purple")
RGB小数值:turtle.pencolor(0.63,0.13,0.94)
RGB元组值:turtle.pencolor((0.63,0.13,0.94))
pensize与pencolor设置后一直有效,直至下一次设置
控制海龟行进:走直线 走曲线
forward()函数
别名:fd()
向前行进,海龟走直线
用法:turtle.forward(像素距离)
距离值为正,海龟正向运动
距离值为负,海龟反向运动
circle()函数
绘制弧形曲线
用法:turtle.circle(半径长度,圆心角角度)
半径:正数圆心在海龟左边,负数圆心在海龟右边
同心角:如果未设定此参数,默认为整圆
海龟原地转动,不行进
控制海龟面对方向:绝对角度 海龟角度
setheading() 函数
别名:seth()
改变行进方向,让海龟原地转动至给定的绝对角度
用法:turtle.seth(角度)
left()函数与right()函数
海龟原地转动至给定的海龟角度(以海龟自身为参考)
用法:
turtle.left(角度)
turtle.right(角度)
range()函数:产生循环计数序列
用法:主要与for和in搭配使用
range(N):产生0到N-1的整数序列,共N个
range(M,N):产生M到N-1的整数序列,共N-M个
保留字for和in实现循环
用法:for 变量 in range(循环次数):
要循环的语句
例如:
- >>> for i in range(5):
- print(i)
- 0
- 1
- 2
- 3
- 4
- >>> for i in range(5,10):
- print(i)
- 5
- 6
- 7
- 8
- 9
- >>> for i in range(3):
- print("youth:",i)
- youth: 0
- youth: 1
- youth: 2
备注:从0开始
备注:print函数内、双引号外有逗号时,打印出来会变成空格
done()函数
在文件式中,如果要绘图窗口自动关闭,则不加此语句;如果要保留绘图窗口,手动关闭,则最后加上“turtle.done()”
turtle.hideturtle() 隐藏海龟
turtle.showturtle() 显示海龟
turtle.speed() 控制画笔速度
turtle 的速度介于0到10之间
速度字符串通过以下方式映射到速度值:
‘fastest’:10
‘fast’:10
‘normal’:6
‘slow’:3
‘slowest’:1
从1到10的速度会强制加快线条绘制和 turtle 转向的动画速度
turtle.tracer(False) 实现秒画
turtle.bgcolor(颜色) 设置背景颜色
turtle.home() 海龟返回初始状态(0,0)(使用前应该抬起)
turtle.fillcolor(颜色) 填充颜色,在开始和结束位置用上begin_fill()和end_fill()
turtle.color(颜色) 同时设置画笔和填充的颜色
turtle.write(arg, move=False, align='left', font=('Arial', 8, 'normal'))
turtle.write(内容, 画笔位置, 对齐方式, font=('字体', 字号, '类型'))
move(可选):在默认情况下,move为false。如果move为true,则笔将移动到右下角。
align(可选):可取值是left即左、center即中、right即右之一,是字符串格式。
font(可选):字体三元组(fontname、fontsize、fonttype),fontname即字体名称,fontsize即字体大小,fonttype即字体类型如:normal、bold、italic...
参考:(12条消息) Python可视化:python画图字体设置_刘兴禄的博客-CSDN博客_python画图设置字体
用法:turtle.write(内容, font=('字体', 字号, '类型'))就可以
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。