Python语言程序设计——基本数据类型
一、数字类型及操作
1、整数型
- 可正可负,没有取值范围限制
- pow(x,y):计算X的y次方,想算多大算多大
- 十进制:1010,99,217
- 二进制:以0b或0B开头:0b010,-0B101
- 八进制:以0o或0O开头:0o123,0O456
- 十六进制:以0x或0X开头:0x9a,-0X89
2、浮点型
- 带有小数点及小数的数字
- 浮点数取值范围和小数精度都存在限制,但常规计算可忽略
- 取值范围数量级约-10的307至10的308,精度数量级10负16次方
- 浮点数间运算存在不确定尾数,不是bug,可通过round()函数辅助
- 浮点数采用科学计数法表示,使用字母e或E作为幂的符号,以10为基数,格式如下:e 表示a*10b 例如:4.3e-3值为0.0043
3、复数型
- 与数学中复数的概念一致。a+bj,其中,a是实部,b是虚部
z.real获得实部,z.imag获得虚部
4、数值运算操作符
5、数值运算函数
二、字符串类型及操作
1、字符串类型的表示
字符串的表示:
- 一对单引号或一对双引号表示,仅表示单行字符串
- 一对三单引号或三双引号表示,可表示多行字符串,三单引号也可以是多行注释
字符串的序号:
字符串的使用:
*转义符:
"\b"回退 "\n"换行 "\r"回车(光标移到本行首)
2、字符串操作符
两种获取星期的方式
#WeekNamePrintv1.py
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])
3、字符串处理函数
4、字符串处理方法
5、字符串类型的格式化
- 字符串格式化使用.format()方法,用法如下:
<模板字符串>.format(<逗号分隔的参数>) - 槽
三、time库的使用
1、time库是Python中处理时间的标准库
-计算机时间的表达 import time
time.()
-提供获取系统时间并格式化输出功能
-提供系统级精确计时功能,用于程序性能分析
2、time库包含三类函数
- 时间获取:time() ctime() gmtime()
- 时间格式化: strftime() strptime()
格式化:类似字符串格式化,需要有展示模板,展示模板由特定的格式化控制符组成 - 程序计时:sleep(),perf_counter()
四、天天向上
天天向上的力量 第一问
#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,'-'))