python奇闻杂技02 time模块,文本进度条示例,数字类型操作,字符串操作

time模块

概述:time库是Python中处理时间的标准库,包含以下三类函数

  • 时间获取:
    time(), ctime(), gmtime()
  • 时间格式化:
    strftime(), strptime()
  • 程序计时:
    sleep(), perf_counter()
    

 时间获取:

import time
print(time.time())     #获取当前时间戳,即计算机内部时间值,浮点型
print('-------')
print(time.ctime())    #获取当前时间并以易读方式表示,返回字符串
print('-------')
print(time.gmtime())  #获取当前时间,表示为计算机可处理的时间格式

result:
1571822780.9567018
-------
Wed Oct 23 17:26:20 2019
-------
time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=9, tm_min=26, tm_sec=20, tm_wday=2, tm_yday=296, tm_isdst=0)

时间格式化:

1.strftime方法

t=time.gmtime()
print(time.strftime("%Y-%m-%d %H:%M:%S",t))

result:
2019-10-23 10:15:46

格式化控制符:

 

 

 2.strptime方法:

timeStr='2019-10-23 10:15:46'
print(time.strptime(timeStr,"%Y-%m-%d %H:%M:%S"))

result:
time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=10, tm_min=15, tm_sec=46, tm_wday=2, tm_yday=296, tm_isdst=-1)

 

文本进度条实例:

1.文本进度条初版

import time

count = 10      
print("-------开始执行-------")

for i in range(count + 1):
    # print(i)
    a = "#" * i
    b = "." * (count - i)
    c = (i / count) * 100
    # print(c)
    print(f"[{a}->{b}]{c:.2f}% ")
    time.sleep(0.1)
    # print(b)

print("-------执行结束-------")

 

2.文本进度条优化版

 

 

 

import time

count=100
print("开始执行".center(50,'-'))        #以开始执行字符为中心,前后23个-
start = time.perf_counter()             #CPU级别精确计时,时间比time()精确

for i in range(count + 1):
    a='#'*i
    b='.'*(count-i)
    c=(i/count)*100
    res=time.perf_counter()-start       #运行时间
    # print(f"[{a}->{b}]{c}% ")         #C存在二进制无法显示十进制,无线趋近的情况
    print(f"\r[{a}->{b}]{c:.2f}% {res:.2f}s",end="")  #\r覆盖内容;.2f化为小数点后两位会自动四舍五入;把print方法end属性设为空,不换行
    time.sleep(0.1)                     #延时0.1秒

print('\n'+"执行结束".center(50,'-'))

 

数字类型及操作:

1.类型转换

h = '150.5'
h = float(h)    #转化为浮点型
print(type(h))  #打印h变量的类型

result:
150.5
<class 'float'>
h = '150.5'
h_float = float(h)      
h_int = int(h_float)    #必须要先转换为浮点型,才能转化为整形
print(h_int)

result:
150

2.进制间的转换

a = 28
print(bin(a))   #转为二进制
print(oct(a))   #转为八进制
print(hex(a))   #转为十六进制

result
0b11100
0o34
0x1c

 

字符串操作:

字符串切片索引顺序:

 

 

年龄判读示例:

# 让用户输入年龄,判断是否是成年人还是未成年人
age = input("请输入你的年龄(请输入数字):").strip()      #.strip()删除前后空格字符

if age.isdigit():   #判断字符串是否为数字
    age = int(age)  #把字符转化为整形
    if age < 18:
        print('未成年人')
    elif age >= 18:
        print("成年人")
else:               #非数字类型字符,报错
    print('输入字符无效')

 

posted @ 2019-10-23 19:37  战斗小人  阅读(196)  评论(0编辑  收藏  举报