寒假Python第二周学习笔记
实例2:Python蟒蛇绘制
import turtle
turtle.setup(650,350,200,200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
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()
turtle库的使用
python计算生态=标准库+第三方库 标准库:随解释器直接安装到操作系统中的功能模块 第三方库:需要经过安装才能使用的功能模块 turtle.setup(width,height,startx,starty)用来设置启动窗体的位置和大小,四个参数中后两个可选【不是必须的】 turtle.goto(x,y) 让在任何位置的海龟到达某一个坐标位置 例如:
import turtle
turtle.goto(10,50)
turtle.goto(20,20)
turtle.goto(30,30)
turtle.goto(70,20)
turtle.goto(0,0)
turtle.fd(d)朝正前方走,bk反方向,circle表示以海龟当前位置左侧某一点为圆心进行曲线运动 turtle.seth(angle)只改变海龟的行进角度,不运动 turtle.left(angle)/turtle.right(angle)向左或向右改变运行方向 绘制z型曲线
import turtle
turtle.setup(20,20)
turtle.fd(100)
turtle.seth(-135)
turtle.fd(100)
turtle.seth(0)
turtle.fd(100)
RGB色彩体系,整数值(0,255)&小数值(0,1)。色彩模式切换 import<库名> <库名>.<函数名>(<函数参数>) 不会出现函数重名的问题 from<库名>import<函数名> from<库名>import* <函数名>(<函数参数>) 可能重名 使用import和as保留字共同完成 import<库名>as<库别名> <库别名>.<函数名>(<函数参数>)
画笔控制函数
画笔操作后一直有效,一般成对儿出现(penup pendown) turtle.penup() 别名 turtle.pu() 抬起画笔 turtle.pendown() 别名 turtle.pd() 落下画笔 turtle.pensize(width) 别名 turtle.width(width) 画笔宽度 turtle.pencolor(color) 画笔颜色 color的三种形式: 1.颜色字符串 turtle.pencolor(“purple”) 2.RGB小数值 turtle.pencolor(0.63,0.13,0.94) 3.RGB的元组值 turtle.pencolor((0.63,0.13,0.94)) 元组值就是将RGB的小数值或整数值形成一个独立的元素
turtle运动控制函数
*控制海龟行进:走直线&走曲线 turtle.forward(d) 别名 turtle.fd(d) d是行进距离,可以为负数,倒退行驶 turtle.circle(r,extent=None)根据半径r绘制extent角度的弧形 r:默认圆心在海龟左侧r距离的位置 extent:绘制角度,默认是360°整圆
turtle方向控制函数
控制海龟面对的方向:绝对角度&海归角度 turtle.setheading(angle) 别名 turtle.seth(angle)让海龟转向 angle:绝对角度 turtle.left(angle)/turtle.left(angle)海龟左转和右转(不运动) angle是在海龟当前行进方向上旋转的角度
循环结构
按照一定次数循环执行一组语句 for<变量>in range(<参数>) <被循环执行的语句> <变量>表示每次循环的计数,0到<次数>-1 range()函数 产生循环计数序列 range(N)产生0到N-1的整数序列,共N个 range(M,N)产生从M到N-1的整数序列,共N-M个 turtle.done()程序运行之后程序不会退出,需要手工关闭窗体退出;如果希望程序运行之后自动退出,去掉最后一行代码即可 总结 库引用:import、from…import、import…as…
数字类型及操作
整数类型:可正可负,无取值范围限制 pow(x,y)函数:计算x的y次幂,想算多大算多大 四种进制表示形式 十进制:65,6556,9464 二进制,以0b或0B开头:0b010,-0B101 八进制,以0o或0O开头:0o123,-0O456 十六进制,以0x或0X开头:0x9a,-0X89 ***浮点类型***带有小数点及小数的数字,取值范围和小数精度存在限制,但常规计算可以忽略 浮点数间运算存在不确定尾数,不是bug 在计算机中,二进制和十进制不是严格的对等关系,当0.1用二进制表示时,它是无限循环小数,只能取53位表示小数部分 二进制表示小数,可以无限接近,但不完全相同 用round函数 得到浮点数运算和浮点数之间的比较关系 round(x,d):对x四舍五入,d是小数截取位数 浮点数可以采用科学计数法表示 使用字母e或E作为幂的符号,以10为基数 格式: < a >e< b > 表示 ax10的b次方 复数类型 z=1.23e-4+5.6e+89j z.real获得实部,z.imag获得虚部 数值操作运算符 x//y整数除 10//3=3 +x表示x本身 -y表示y的负值 x乘乘y x的y次幂 整数->浮点数->复数,类型间可进行混合运算,生成结果为最宽的类型 int(x)x取整 float(x) x变为浮点数 float(52)结果52.0 complex(x)x变复数,增加虚数部分 complex(2)2+0j 实例:天天向上的力量 问题: 一年365天,每天进步1%,累计进步多少,每天退步1%,累计剩下多少? 一年365天,工作日涨1%,休息日下降1%,结果是多少
dayup=1.0
dayfactor=0.01
for i in range(365):
if i % 7 in [6,0]:
dayup=dayup*(1-dayfactor)
else:
dayup=dayup*(1+dayfactor)
print("工作日的力量:{:.2f}".format(dayup))
工作日努力到什么程度才能和每天努力1%一样呢?
def dayUP(df):
dayup = 1
for i in range(365):
if i % 7 in [6, 0]:
dayup = dayup*(1 - 0.01)
else:
dayup = dayup*(1 + df )
return dayup
dayfactor = 0.01
while dayUP(dayfactor) < 37.78:
dayfactor += 0.001
print("工作日努力参数是:{:.3f}".format(dayfactor))
字符串类型及操作 字符串有两类共四种表达方法 1.由一对单引号或双引号表示,仅表示单行字符串 2.由一对三单引号或三双引号表示,可表示多行字符串 如果希望在字符串中包含双引号或单引号 ‘这里有个双引号(")’或者“这里有个单引号(’)” 转义符 \ 表达特定字符的本意print("这里有个双引号(\")") 转义符形成一些组合,表达一些不可打印的含义 \b 回退 \n 换行 \r 回车 获得星期字符串*
weekStr="星期一星期二星期三星期四星期五星期六星期日"
weekId=eval(input("请输入星期数字(1-7):"))
pos=(weekId - 1)* 3
print(weekStr[pos:pos+3])
weekStr="一二三四五六日"
weekId=eval(input("请输入星期数字(1-7):"))
print("星期"+weekStr[weekId-1])
字符串处理函数 len(x)字符串长度 str(x) 任意类型x所对应的字符串形式 hex(x)或oct(x) 整数x的十六进制或八进制小写形式的字符串 十二星座字符序列:for i in range(12): print(chr(9800+i),end="") str.lower()全小写 str.upper()全大写 str.count(sub)返回子串sub在str中出现的次数 str.replace(old,new) str.center(width[,fillchar]) 字符串类型的格式化.format() <模板字符串>.format(<逗号分隔的参数>)
|