第3周基本数据类型-Python语言程序设计(学习笔记)
2018-04-14 本文已影响61人
努力奋斗的durian
文章原创,最近更新:2018-04-13
1.第3周课程导学
2.数字类型及操作
3.实例3:天天向上的力量
4.字符串类型及操作
5.模块2:time库的使用
6.实例4:分本进度条
7.第3周作业及学习资料
原链接 Python语言程序设计北京理工大学
1.第3周课程导学
1.1课前复习
所有的复习应该在一张纸上能够默写出来,直到正确为止.
1.2本课概要
1.3练习与作业
2.数字类型及操作
2.1单元开篇
2.2整数类型
2.3浮点数类型
因为有尾数所以结果是错误.
2.4复数类型
众多的语言当中,只有python提供了复数类型.与数学概念中的复数是一致.很少使用,是空间变量比较常用.
2.5数值运算操作浮
2.6数值运算函数
2.7单元小结
3.实例3:天天向上的力量
3.1"天天向上的力量"问题分析
3.2"天天向上的力量"第一问
dayup=pow(1.001,365)
daydowun=pow(0.999,365)
print("向上:{:.2f},向下:{:.2f}:".format(dayup,daydowun))
3.3"天天向上的力量"第二问
3.3"天天向上的力量"第三问
dayup=1.0
dayfactor=0.01
for i in range(365):
if i%7 in [0,6]:
dayup=dayup*(1-dayfactor)
else:
dayup=dayup*(1+dayfactor)
print("工作日的力量{:.2f}".format(dayup))
3.3"天天向上的力量"第四问
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.001
while dayup(dayfactor)<37.78:
dayfactor+=0.001
print("工作日需努力的参数是:{:.3f}".format(dayfactor))
3.3"天天向上的力量"举一反三
4.字符串类型及操作
4.1单元开篇
4.2字符串类型的表示
三单引号,可以当作注释,前提是不做变量的情况下.
方法挺好的,使得单引号与双引号的处理非常方便
4.3字符串操作符
weekStr="星期一星期二星期三星期四星期五星期六星期日"
weekid=eval(input("请输入星期1-7: "))
pos=(weekid-1)*3
print(weekStr[pos:pos+3])
输出的结果:
input函数输入的值为字符串,需要用eval转为数值.
weekStr="一二三四五六日"
weekid=eval(input("请输入星期1-7: "))
print("星期"+weekStr[weekid-1])
输出的结果:
4.4字符串处理函数
英文字母,汉字等等都是表示一个字符.
str函数与eval函数是一对对应函数.
用八进制以及十六进制表示计算机的内部运算形式.
4.5字符串处理方法
4.6字符串类型的格式化
举例可以如下:
>>> "我是{},你是{},他是{}".format("猪","老鼠","老虎")
'我是猪,你是老鼠,他是老虎'
>>> "我是{2},你是{1},他是{0}".format("猪","老鼠","老虎")
'我是老虎,你是老鼠,他是猪'
>>> "我是{1},你是{2},他是{0}".format("猪","老鼠","老虎")
'我是老鼠,你是老虎,他是猪'
如果填充未表明,则表示是空格.
python标点采用的是英文体系,不能用中文的标点体系.
4.7单元小结
5.模块2:time库的使用
5.1单元开篇
5.2time库基本介绍
5.3时间获取
c.time返回的是个字符串
5.4时间格式化
5.5程序计时应用
从某一个确定的值开始计算,要开始时间和结束时间,并计算差值.
5.6单元小结
6.实例4:分本进度条
6.1"文本进度条"问题分析
6.2"文本进度条"简单的开始
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))
print("------执行结束------")
:3.0f与:3显示的结果有点区别,前面一个是:3显示的结果,后面一个是:3.0f显示的结果.差别是是否多了一个小数点0.我猜应该是系统默认浮点数的占位浮是1而不是0.具体暂时还没有找到相关的依据.
6.3"文本进度条"单行动态刷新
>>> import time
>>> for i in range(101):
print("\r{:3}%".format(i),end="")
format默认的对齐方式应该是靠右对齐,具体暂时也没有相关的依据.等以后有的话,再补充.
\r退回当前行的行首,用其他的软件才可以避免\r的功能.
6.4"文本进度条"实例完整效果
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,"-"))
输出的结果:
6.5"文本进度条"举一反三
7.第3周作业及学习资料
所有的代码汇总:
天天向上的力量 第一问
#DayDayUpQ1.py
dayup = pow(1.001, 365)
daydown = pow(0.999, 365)
print("向上:{:.2f},向下:{:.2f}".format(dayup, daydown))
天天向上的力量 第二问
#DayDayUpQ2.py
dayfactor = 0.005
dayup = pow(1+dayfactor, 365)
daydown = pow(1-dayfactor, 365)
print("向上:{:.2f},向下:{:.2f}".format(dayup, daydown))
天天向上的力量 第三问
#DayDayUpQ3.py
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))
天天向上的力量 第四问
#DayDayUpQ4.py
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))
文本进度条 简单的开始
#TextProBarV1.py
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("------执行结束------")
文本进度条 单行动态刷新
#TextProBarV2.py
import time
for i in range(101):
print("\r{:3}%".format(i), end="")
time.sleep(0.1)
文本进度条 实例完整效果
#TextProBarV3.py
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,'-'))