python课程设计笔记(四)整数、浮点数与字符串 time库
整数类型(范围无限制)
十进制1 -1
二进制0b1 -0b1
八进制0o1 -0o1
十六进制0x1 -0x1
浮点类型(范围有限制但可忽略)
运算存在不确定尾数 :0.1+0.2!=0.3
原因:二进制表示小数可以无限接近但不能完全相同,转换过程中产生不确定小数
如何避免:浮点数键运算及比较用round()函数进行辅助 round(x, d)#对x进行四舍五入,d是截取小数位数
浮点数的科学计数法表示 <a>e<b> # a*10^b
数值运算操作符
10/3 = 3.3333
10//3 = 3
x**y #x^y
类型间的混合运算:生成结果最宽类型 复数>浮点数>整数 123
数值运算函数
绝对值 abs()
商余 divmod(x,y) 输出(商,余数)
幂余 pow(x,y[, z])输出 ( x**y)%z 求x**y的最后几位
四舍五入 round(x [ , d]) x保留d位小数,默认d为0
最大最小值 max/min(x1,x2,x3,..)
强制转换 int(小数、字符串) 直接舍弃小数
float(整数、字符串) 为整数加上小数部分
字符串类型
表示方法:
1)一对单引号、一对双引号,仅表示单行字符串
2)一对三单引号、或三双引号,表示多行字符串
字符串的序号(两种序号在一个字符串中同时存在):正向递增 反向递减(最后一个-1,向左为-2,-3,、、)
字符串的索引和切片
索引 "你好啊"【0】 或str【0】
切片(slice) (copyright: https://www.cnblogs.com/cedrelaliu/p/6004352.html)
切片操作(slice)可以从一个字符串中获取子字符串(字符串的一部分)。起始偏移量start、终止偏移量end 、可选的步长step 定义一个分片。
格式: [start:end:step]
-
- [:] 提取从开头(默认位置0)到结尾(默认位置-1)的整个字符串
- [start:] 从start 提取到结尾
- [:end] 从开头提取到end - 1
- [start:end] 从start 提取到end - 1
- start:end:step] 从start 提取到end - 1,每step 个字符提取一个
特殊:倒转字符串将字符串倒转(reverse), 通过设置步长为负数:[ : :-1]
字符串运算的操作符:
x+y:链接两个字符串
n*x或x*n:复制n次字符串x
x in s:x是否为s的子串,返回true or false
字符串处理函数
len(x) :字符串x的长度,并且一个汉字和一个英文字母长度都为1
str(x):字符串强制类型转换,任意类型x转换为字符串 ====与eval()相反
hex(x) 与 oct(x) :将x转换为八进制与十六进制形式
chr(u):x为Unicode编码,返回其对应的字符
ord(x):x为字符,返回对应的Unicode编码
注:Python统一使用Unicode编码
str.lower() str.upper()
str.split(" ")
str.count("a")
str.replace(old,new)
str.center(width[,fillchar])
str.strip("=pn"_
str.join("1234") str join 到 "1234‘’中
字符串输出的格式化
槽:“ < { } { } >”.format("ch1","ch2)
槽中的格式控制参数
time库:
处理时间的标准库
时间获取:
time() #获取时间戳:一个浮点数,从1970年开始的以秒为单位的时间间隔
ctime() #获取一可读的字符串 Mon May 14 22:51:40 2018
gmtime() #其他程序可利用的时间格式 time.struct_time(tm_year=2018, tm_mon=5, tm_mday=14, tm_hour=14, tm_min=52, tm_sec=25, tm_wday=0, tm_yday=134, tm_isdst=0)
时间格式化:
将时间以合理的方式展示出来
strftime(tpl,ts) #tpl是输出格式模板(字符串)ts是gmtime()
tpl中的控制符:
%Y-->年份 %m-->月份(数字) %B-->月份名称(日期英文) %b-->月份名词缩写(英文)
%d-->日期(数字) %A-->星期(英文) %a-->星期(英文) %H-->小时(24h制)
%p-->上/下午 %M-->分钟 %S-->秒 %h-->小时(12h制)
程序计时:
测量时间 perf_counter() #返回CPU级别的精确时间计数值,单位为秒,差值有意义
休眠时间 time.sleep(time) #停滞t秒
实例:
文本进度条的生成
import time print("---执行开始---") scale = 10 start = time.perf_counter() for i in range(scale+1): du = time.perf_counter()-start a='*'*i b="."*(scale-i) c=(i/scale)*100 print("\r{:>3.0f}%[{}->{}]{:.2f}s".format(c,a,b,du),end=" ") time.sleep(0.32)
控制print函数
\r 光标退回当前行行首
print(< 字符串 >,end="打印结束字符“>
注意,在idle为了显示完整信息自动屏蔽\r, py文件要在命令行中运行