【第3周】基本数据类型

1、整数类型
    可正可负,没有取值范围限制
    pow(x,y)函数:计算x^y,想算多大算多大
    四种进制表示形式
        十进制
        二进制,以0b或0B开头
        八进制,以0o或0O开头
        十六进制,以0x或0X开头
2、浮点数类型
    浮点数取值范围和小数精度都存在限制,但常规计算可忽略

    浮点数间运算存在不确定尾数,不是bug

>>> 0.1+0.3
0.4
>>> 0.1+0.2
0.30000000000000004
>>> 0.1+0.2==0.3
False
    round(x,d):对x四舍五入,d是小数截取位数
    浮点数间运算及比较用round( )函数辅助
    浮点数可以采用科学计数法表示,使用字母e或E作为幂的符号,以10为基数
        <a>e<b>        表示a*10^b
3、复数类型
    z=a+bj
    z.real获得实部a
    z.imag获得虚部b
4、数值运算操作符
    x/y    10/3=3.3333333333333335
    x//y    10//3=3
    x**y    幂运算,x的y次幂,x^y,如10**0.5
5、数字类型的关系
    类型间可进行混合运算,生成结果为“最宽”类型
    三种类型存在一种逐渐“扩展”或“变宽”的关系:
        整数→浮点数→复数
6、数值运算函数
    abs(x)    绝对值,x的绝对值
    divmod(x,y)    商余,同时输出商和余数
>>> divmod(10,3)
(3, 1)
    pow(x,y[,z])    幂余,(x**y)%z
    round(x[,d])    四舍五入,d是保留小数位数,默认值为0
    max(x1,x2,...)和min(x1,x2,...)
    int(x)    将x变成整数,舍弃小数部分
    float(x)    将x变成浮点数,增加小数部分
    complex(x)    将x变成复数,增加虚数部分
7、字符串
    字符串有2类共4种表示方法
    由一对单引号或双引号表示,仅表示单行字符串
    由一对三单引号或三双引号表示,可表示多行字符串
    字符串中包含双引号可用' '
    字符串中包含单引号可用" "
    字符串中既包含单引号又包含双引号可用''' '''
8、字符串切片高级用法
    使用[M:N:K]根据步长对字符串切片
    <字符串>[M:N],M缺失表示至开头,N缺失表示至结尾

    <字符串>[M:N:K],根据步长K对字符串切片

>>> "零一二三四五六七八九十"[1:8:2]
'一三五七'
>>> "零一二三四五六七八九十"[::-1]
'十九八七六五四三二一零'
9、字符串的特殊字符
    转义符\
    转义符表达特定字符的本意
    转义符形成一些组合,表达一些不可打印的含义
        "\b"回退
        "\n"换行(光标移动到下行首)
        "\r"回车(光标移动到本行首)
10、字符串操作符
    x+y    连接两个字符串x和y
    n*x 或 x*n    复制n次字符串x
    x in s    如果x是s的子串,返回True,否则返回False
11、字符串处理函数
    len(x)    长度,返回字符串x的长度
    str(x)    任意类型x所对应的字符串形式
    hex(x) 或 oct(x)    整数x的十六进制或八进制小写形式字符串
    chr(x)    x为Unicode编码,返回其对应的字符
    ord(x)    x为字符,返回其对应的Unicode编码
12、字符串处理方法
    “方法”特指<a>.<b>()风格中的函数<b>()
    方法本身也是函数,但与<a>有关,<a>.<b>()风格使用
    字符串及变量也是<a>,存在一些方法
    str.lower()或str.upper()    返回字符串的副本,全部字符小写/大写
    str.split(sep=None)    返回一个列表,由str根据sep被分隔的部分组成
    str.count(sub)    返回子串sub在str中出现的次数
    str.replace(old,new)    返回字符串str副本,所有old子串被替换为new
    str.center(width[,fillchar])    字符串str根据宽度width居中,fillchar可选
    str.strip(chars)    从str中去掉在其左侧和右侧chars中列出的字符

    str.join(iter)    在iter变量除最后元素外每个元素后增加一个str

>>> "python".center(20,"=")
'=======python======='
>>> "= python= ".strip(" =np")
'ytho'
>>> ",".join("12345")
'1,2,3,4,5'
13、字符串类型的格式化
    字符串格式化使用.format()方法,用法如下:
        <模板字符串>.format(<逗号分隔的参数>)
    槽内部对格式化的配置方式
    {<参数序号>:<填充><对齐><宽度>}
        参数序号可默认,填充默认空格,对齐默认左对齐,对齐方式有< > ^
    {<参数序号>:<,><.精度><类型>}
        逗号是数字的千位分隔符,精度是浮点数小数精度或字符串最大输出长度

        整数类型有b,c,d,o,x,X;浮点数类型有e,E,f,%

>>> "{0:=^20}".format("PYTHON")
'=======PYTHON======='
>>> "{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)
'110101001,Ʃ,425,651,1a9,1A9'
>>> "{0:e},{0:E},{0:f},{0:%}".format(3.14)
'3.140000e+00,3.140000E+00,3.140000,314.000000%'
14、time库的使用
    time库是Python中处理时间的标准库
    计算机时间的表达
    提供获取系统时间并格式化输出功能
    提供系统级精确计时功能,用于程序性能分析
15、时间获取
    time()    获取当前时间戳,即计算机内部时间值,浮点数
    ctime()    获取当前时间并以易读方式表示,返回字符串
    gmtime()    获取当前时间,表示为计算机可处理的时间格式
16、时间格式化
    strftime(tpl,ts)    tpl是格式化模板字符串,用来定义输出效果,ts是计算机内部时间类型变量

        %B 月份名称、%b 月份名称缩写、%A 星期、%a 星期缩写、%h 小时(12h制)、%p 上/下午

>>> t=time.gmtime()
>>> time.strftime("%Y-%m-%d %H:%M:%S",t)
'2018-06-23 16:38:34'

    strptime(Str,tpl)    str是字符串形式的时间值,tpl是格式化模板字符串,用来定义输入效果

>>> timeStr='2018-01-26 12:55:20'
>>> time.strptime(timeStr,"%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=26, tm_hour=12, tm_min=55, tm_sec=20, tm_wday=4, tm_yday=26, tm_isdst=-1)
17、程序计时应用
    perf_counter()    返回一个CPU级别的精确时间计数值,单位为秒
        由于这个计数值起点不确定,连续调用差值才有意义
        start=time.perf_counter()
        end=time.perf_counter()
        end-start
    sleep(s)    s拟休眠时间,单位是秒,可以是浮点数
        def wait():
            time.sleep(3.3)

        wait()

>>> start=time.perf_counter()
>>> end=time.perf_counter()
>>> end-start
9.723260522620736
>>> def wait():
	time.sleep(3.3)
>>> wait()
#天天向上的力量
dayfactor=0.01
dayup=pow(1+dayfactor,365)
daydown=pow(1-dayfactor,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))
#工作日的力量
dayup=1.0
for i in range(365):
    if i%7 in [6,0]:
        dayup=dayup*(1-dayfactor)
    else:
        dayup=dayup*(1+dayfactor)
print("向上:{:.2f}".format(dayup))
#文本进度条
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,"-"))
#需在控制台展示效果

猜你喜欢

转载自blog.csdn.net/qq_39216173/article/details/80788441