根据MOOC平台,北理的python基础课程做的一些学习笔记。
第一周
1.1
计算机的发展参照摩尔定律,表现为指数方式。
源代码与目标代码:(源代码:采用某种编程语言编写的计算机程序,人类可读。e.g.result=2+3)
(目标代码:计算机可直接执行,人类不可读,e.g.100010101010001)
编译:通过编译器,将源代码一次性转化为目标代码的过程。
解释:将源代码通过解释器逐条的转化为目标代码同时逐条运行。
根据执行方式不同,将编译语言分成两类:
静态语言:使用编译执行的编程语言。e.g. C/C++,Java
脚本语言:使用解释执行的编程语言。e.g.Python,JavaScript,PHP
程序的基本编写方法:IPO。input,process,output
学习编程的方法:掌握语法,熟悉基本概念和结构;结合计算问题思考程序结构,会使用编程套路
;参照案例多联系多实践。
1.2
弄清楚了温度转换问题,可以将温度转换问题当作各类转换问题的代表性问题
缩进:一行代码开始前的空白区域,表达程序的格式框架
单行注释:以#开头,其后内容为注释
多行注释:以```开头与结尾。中间包括的内容即为注释内容
变量:程序中用于保存与表示数据的占位符
使用等号(=)向变量赋值或修改值,=被称为赋值符号
保留字:被编程语言内部定义并保留使用的标识符。
Python的命名可以用汉字
保留字中的True,False,None首字母是大写,如果写成了小写,则表示用户自定义的一个变量
数据类型:供计算机程序理解的数据类型
字符串:由一对单引号或双引号表示(使用单引号或者双引号没有区别)。“10011101”
整数:10011101
浮点数:
列表:[10,011,101]
使用[]获取字符串中一个或多个字符
﹣索引:返回字符串中单个字符<字符串>[ M ]
“请输入带有符号的温度值:"[0]或者 TempStr [-1]
﹣切片:返回字符串中段字符子串<字符串>[ M : N ]
“请輸入带有符号的温度值:[1:3]或者 TempStr [0:-1]左闭右开
列表使用[]表示,采用(,)分割各个元素['F','f']表示两个元素`F`与`f`
使用保留字in判断一个元素是否在列表中
TempStr[-1]in [`C`,`c`]判断前者是否与列表中某个元素相同,会返回一个布尔类型
赋值语句:由赋值符号构成的一行代码
赋值语句用来给变量赋予新的数据值
e.g. C=(eval(TempStr[0:-1])-32)/1.8 #右侧运算结果赋值给变量C
赋值语句右侧的数据类型同时作用于变量
e.g. TemStr=input("") #input()返回一个字符串,TempStr也是字符串
分支语句:由判断条件决定程序运行方向的语句
在判断语句的后面需要冒号(:),这是语法的一部分。
函数:根据不同的输入参数产生不同的输出的过程,类似数学中的y=f(x)。
输入与输出的格式:
输入函数:input()
<变量>=input("提示信息字符串") #提示信息字符串并不作为变量的一部分
输出函数:print()
print("拟输出的字符串")
print("转化后的温度是{:.2f}".format(C)) #将format(C)的运行结果放置在{}这个槽里面。
print("hello",i) #中间有一个逗号表示会用空格分隔开
评估函数:eval() 去掉参数最外侧引号并执行余下语句的函数
e.g. eval("1+1") #去掉引号后就直接成了1+1,计算机会运算得出2,否则,有引号的话,计算机不会执行加法
深刻意义:可以将任何语句变为机器可识别的python语句
自己写代码时遇到的问题:
①每个判断语句之后必须要有冒号(:)
②文字类字符串的是单引号,即if tempre[-1] in ['C','c']:
③else可以没有自己的条件,但是elif必须的要有自己的条件。
2.1
能掌握蟒蛇的绘制方法,就懂得了python的绘图基本方法
通过改变程序的参数,可以改变蟒蛇的颜色,长度。。。
同样的,蟒蛇的绘制也可以当作图形绘制的典型问题,可以举一反三:圆形,五角星,国旗,机器猫
2.2(使用turtle库)
python计算生态=标准库+第三方库
标准库:随解释器直接安装到操作系统中的功能模块
第三方库:需要经过安装才能使用的功能模块
库Library,包Package,模块Module,统称“模块”
setup函数用于窗体绘制:
turtle.setup(width,height,startx,starty) #分别:宽度,高度,窗口原点 (只有当你需要控制窗体大小时才用,其他时候可以不用)
不设置窗口原点的话,系统会默认将其放置于屏幕正中心
绝对空间坐标:
海龟一开始的位置是画布的中心,并为此建立一个空间坐标系
turtle.goto(x,y)
e.g. turtle.goto(100,100) #从原点出发到达点(100,100)
turtle.goto(100,-100) #从点(100,100)出发到达点(100,-100)
turtle.goto(-100,-100) #从点(100,-100)出发到达点(-100,-100)
turtle.goto(-100,100) #从点(-100,-100)出发到达点(-100,100)
turtle.goto(0,0) #从点(-100,100)出发到达(0,0)
海龟空间坐标:
前进方向(turtle.fd(d)),后退方向(turtle.bk(d)),左侧方向,右侧方向
turtle.circle(r,angle) 走一个圆
角度坐标体系:
正X方向:360/0;正Y方向:90/-270;负X方向:180/-180;负Y方向:270/-90
turtle.seth(angle) #改变海龟的行进方向(只改变方向,不前进)
turtle.left(angle) turtle.right(angle) 通过向左向右的角度改变方向
色彩体系(RGB色彩模式,由三种颜色{红,绿,蓝}构成万物色):
RGB每个颜色的取值范围0-255整数或0-1小数
turtle.colormode(mode) #设置颜色数值采用小数还是整数的函数
turtle.colormode(1) turtle.colormode(255)
2.3
库引用:扩充python程序功能的方式
使用import保留字完成,采用<a>.<b>()编码风格
即: import<库名>
<库名>.<函数名>(<函数参数>)
每行都写turtle会很麻烦,可以改为:
from turtle import*
setup(650,577,888) #即前面无需再写turtle.了
...
还可以采用这种方法{最推荐的方法}
import <库名> as <库别名> #相当于给库起了一个小名
<库别名>.<函数名>(<函数参数>)
turtle画笔控制函数:
turtle.penup() 别名 turtle.pu()
抬起画笔,海龟在飞行
turtle.pendown() 别名 turtle.pd()
落下画笔,海龟在爬行
turtle.pensize(width) 别名 turtle.width(width)
画笔宽度,海龟的腰围(画笔设置后一直有效,直到下次重新设置)
purple.pencolor(color)
color为颜色字符串或者r,g,b值 画笔颜色,海龟在涂色
颜色字符串 e.g.turtle.pencolor("purple")
RGB的小数值 e.g.turtle.pencolor(0.63,0.13,0.94)
RGB的元组值 e.g.turtle.pencolor((0.63,0.13,0.94))
运动控制函数:控制海龟行进:走直线&走曲线
turtle.forward(d) 别名 turtle.fd(d)
向前行进,海龟走直线
turtle.circle(r.extent=None) 根据半径r绘制extent角度的弧形
r:默认圆心在海龟左侧r距离的位置 extent:绘制角度,默认是360°整圆
方向控制函数:控制海龟面对方向:绝对角度&海龟角度
turtle.setheading(angle) 别名 turtle.seth(angle)
改变行进方向,海龟走角度 angle:改变行进方向,值的大小为变向角度,且逆时针转向
turtle.left(angle) 海龟向左转 angle的值:在向左的方向上转多少度
turtle.right(angle) 海龟向右转 angle的值:在向右的方向上转多少度
循环语句:按照一定次数循环执行一组语句
for <变量> in range(<参数>) #当作一组固定搭配来记
<被循环执行的语句>
range(<参数>) 表示循环“参数”次 变量i从0开始计数
range函数:产生循环计数序列
range(N) 产生0到N-1的整数序列,共N个
range(M,N) 产生M到N-1的整数序列,共N-M个
turtle.done 表示窗口需要手动退出,不会自动退出