Python笔记

寒假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(<逗号分隔的参数>)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值