轻轻松松学会Python入门五:基本数据类型

目录

一,整数

1,基础概念

2,四种进制表达:

二,浮点数类型

三,复数类型

 四,数值运算操作符

五,数值运算函数

 六,实例3,天天向上的力量

七,字符串类型及操作

1,字符串类型的定义

2,字符串的表示方法

3,字符串的特殊字符

4,字符串操作符

5,字符串处理函数

6,字符串处理方法

 7,字符串类型的格式化

1)格式化是对字符串进行格式表达的方式

2)槽

八,Python字符串的编码方式

九,time库的使用

1,time库的作用

2,time库包括三类函数

1)时间获取:

2)时间格式化

3)程序计时:

十,实例4,文本进度条

 1,单行动态刷新

 2,代码实现:

Python语言提供整数,浮点数,复数三种数字类型。

一,整数

1,基础概念

1)与数学中整数类型一致

2)可正可负,没有取值范围限制。

2,四种进制表达:

十进制:

八进制:0o,0O

二进制:0b,0B

十六进制:0x,0X

整数类型理论上的取值范围是(负无穷,正无穷),实际上的取值范围受限于运行Python程序的计算机内存大小。除极大数的运算外,一般认为整数类型没有范围限制。

二,浮点数类型

1,浮点数类型与数学中实数的概念一致,表示带有小数的数值。Python语言要求所有浮点数必须带有小数部分,小数部分可以是0,这种设计可以区分浮点数和整数类型。

2,浮点数有两种表示方法:十进制表示和科学计数法。

3,浮点数取值范围和小数精度都存在限制,但常规计算可忽略。

取值范围数量级约为-10^308~10^308,精度数量级是10^-16

4,浮点数类型与整数类型由计算机的不同硬件单元执行,处理方法不同,需要注意的是,尽管浮点数0.0与整数0值相同,但他们在计算机内部表示不同。

5,二进制表示小数,可以无限接近,但不完全相同。

6,浮点数间运算存在不确定尾数(不是bug),最多只能存在53位表示小数部分约为10^-16

 

round函数:

round(x,d)对x四舍五入,d是小数截取位数

三,复数类型

1,与数学中复数的概念一致

2,a+bj被称为复数,其中,a是实部,b是虚部

3,复数类型中实数部分和虚数部分的数值都是浮点类型。对于复数z,可以用z.real和z.imag分别获得它的实数部分和虚数部分。

 四,数值运算操作符

操作符是完成运算的一种符号体系

 

 

五,数值运算函数

一些以函数形式提供的数值运算功能

 

 六,实例3,天天向上的力量

#千分之一的力量
dayup = pow(1.001,365)
daydown = pow(0.999,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))

dayfactor = 0.005       #使用变量的好处:只需修改一处即可
dayup = pow(1+dayfactor,365)
daydown = pow(1-dayfactor,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))

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))

 

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))

计算思维是抽象和自动化相结合的结果。

抽象:抽象问题的形式化逻辑

自动化:将抽象的结果通过程序来自动完成 

七,字符串类型及操作

1,字符串类型的定义

由0个或多个字符组成的有序字符序列

2,字符串的表示方法

字符串有2类共4种表示方法。

 

 

3,字符串的特殊字符

转义符  \ 

转义符表达特定字符的本意


例如:"这里有个双引号(\")"结果为这里有个双引号(")


转义符形成一些组合,表达-些不可打印的含义

例如:

"\b"回退"\n" 换行(光标移动到下行首)
"\r"回车(光标移动到本行首)
 

4,字符串操作符

由0个或多个字符组成的有序字符序列

5,字符串处理函数

一些以函数形式提供的字符串处理功能

 

6,字符串处理方法

 

 

 7,字符串类型的格式化

1)格式化是对字符串进行格式表达的方式
 

字符串格式化使用.format()方法,用法如下:
<模板字符串> .format( <逗号分隔的参数>)
 

2)槽

槽内部对格式化的配置方式

槽内部对格式化的配置方式


{ <参数序号> : <格式控制标记>}
 

 

默认左对齐。 

八,Python字符串的编码方式

Unicode编码

1,统一字符编码,即覆盖几乎所有字符的编码方式
2,从0到1114111 (0x10FFF)空间,每个编码对应一个字符
3,Python字符串中每个字符都是Unicode编码字符
 

九,time库的使用

time库是Python中处理时间的标准库


1,time库的作用


1)计算机时间的表达
2)提供获取系统时间并格式化输出功能
3)提供系统级精确计时功能,用于程序性能分析
 

2,time库包括三类函数

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

1)时间获取:

 

2)时间格式化

将时间以合理的方式展示出来

1)格式化:类似字符串格式化,需要有展示模板
2)展示模板由特定的格式化控制符组成
3)strftime()方法

 

 

3)程序计时:

程序计时指测量起止动作所经历时间的过程
测量时间: perf_ counter()
产生时间: sleep()
 

 

十,实例4,文本进度条

采用字符串方式打印可以动态变化的文本进度条
进度条需要能在一行中逐渐变化

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("------执行结束------")

 1,单行动态刷新

刷新的关键是\r


刷新的本质是:用之后打印的字符覆盖之前的字符
不能换行: print()需要被控制 。
要能回退:打印后光标退回到之前的位置\r

交互式就会成为这样

 2,代码实现:

#完整效果
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,"-"))

十一,math库

利用函数库编程是Python语言最重要的特点,也是Python编程生态环境的意义所在。

网上搜一下,比较多

浮点数,如0.1、0.2和0.3,在Python解释器内部表示时存在一个小数点后若干位的精度尾数,当浮点数进行运算时,这个精度尾数可能会影响输出结果。因此,在涉及浮点数运算及结果比较时,建议采用math库提供的函数,而不直接使用Python提供的运算符。

今天就讲到这里,最后送给大家一句话。

猜你喜欢

转载自blog.csdn.net/m0_63309778/article/details/124302270