Python语言程序设计

第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,'-'))
上一篇下一篇

猜你喜欢

热点阅读