python学习记录01

学会举一反三

  • 观察代码,理解语法元素。参考框架结构,逐行分析,逐词理解。
  • 改变输入输出。
  • 问题扩展。

绘制蟒蛇``

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库

绘图窗体turtle.setup(width,height,startx,stary)
后两个可选,起始点是窗体左上角相对于屏幕左上角位置

turtle.goto(0,0) #绝对坐标
#海龟坐标
turtle.fd(d)正前
turtle.bk(d)后退
turtle.circle(r,angle) 圆心在左手侧距离为r处

turtle.seth(angle)改变海龟行进方向(不行进),绝对角度
turtle.left(angle)
turtle.right(angle)
成对出现turtle.penup() turtle.pendown()

#WindWheel.py
import turtle as t
t.pensize(2)
for i in range(4):
    t.seth(90*i)
    t.fd(150)
    t.right(90)
    t.circle(-150, 45)
    t.goto(0,0)

基本数据类型

整数(无取值范围限制)
pow(x,y) 次方

浮点数
运算存在不确定尾数(因为二进制和十进制不是完全对应的)
round(x,d) 对x四舍五入d位

复数

操作符
//整数除,10//3结果是3
x**y幂运算,y是小数时为开方
二元操作符 x +=y

混合运算结果为最宽类型
整数-》浮点数-》复数

运算函数
abs(x)绝对值
divmod(x,y)商余

divmod(10,1)输出(3,1)

pow(x,y,[,z]) —> (x**y)%z

round(x[,d]) d是保留小数位数

字符串

<字符串>[M:N:K],K是步长
[::-1]逆序
x+y 连接
nx,xn 复制n此字符串x
x in s 返回T F

函数
len()
str(x) 转换成字符串

方法
str.lower()
str.upper()
str.split(sep=None) 返回列表,如“A,B,D”.split(",")结果是 [‘A’,‘B’,‘D’]
str.count(sub) 返回sub在str中出现的次数
str.replace(old,new)
str.center(width[,fillchar]) 根据宽度居中
str.strip(chars) 去掉左右两侧chars中出现的字符
str.join(iter) 如",".join(“12345”) “1,2,3,4,5”

格式化
format+槽机制。可以按顺序对应或在槽中填写参数序号
:为引导符号
填充,对齐<左>右^居中,宽度
<,>数字千位分割符<.精度><类型>

time库

函数
time() 时间戳,浮点数 1970.1.1 0:0
ctime() 返回字符串
gmtime()

时间格式化
strftime(tpl,ts) tpl是格式化模板字符串,用来定义输出效果,ts是计算机内部事件类型变量

t = time.gmtime()
time.strftime("%Y-%m-%d %H:%M:%S",t)
'2021-4-27 15:42:37'
格式化字符串说明
%m月份
%B月份名称
%b月份名称缩写
%A星期
%a星期缩写
%H24小时制
%I12小时制
%p上下午

strptime(str,tpl) 将时间字符串传变为计算机内部格式
程序计时
测量时间 perf_counter() CPU级别的精确计数时
sleep()

文本进度条实例

import time
scale = 10
print("----执行开始-----")
for i in range(scale+1):
    a = '*'*i
    b = '.'*(scale-i)
    c =(i/scale)*100
    print('{:^3.0f}%[{}->{}]'.format(c,a,b))
    time.sleep(0.1)
print("----执行结束-----")

单行动态更新\r

import time
for i in range(101):
    print("\r{:3}%".format(i),end='')
    time.sleep(0.1)
import time
scale = 50
print("执行开始".center(scale//2,'-'))
start = time.perf_counter()
for i in range(scale+1):
    a = '*'*i
    b = '.'*(scale-i)
    c =(i/scale)*100
    dur = time.perf_counter() -start
    print('\r{:^3.0f}%[{}->{}]{:.2f}s'.format(c,a,b,dur),end='')
    time.sleep(0.1)
print("\n"+"执行结束".center(scale//2,'-'))
#星号三角形问题
n = eval(input())
for i in range(1,n+1,2):
    print("{0:^{1}}".format('*'*i, n))     #内部槽用n作为居中的width?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值