本篇介绍python基本数据类型及操作,以及字符串类型以及基本操作;如下几个模块:

一、数字类型及基本操作;

在python中数字类型不用准确的定义,如何区分有效的几种数字类型呢?

首先分析一下我们常用的数字类型:

  1. 整数类型;
  2. 浮点数类型;
  3. 复数类型;

然后加上我们常用的几种操作符,以及平方函数,下面分开介绍;

整数:

1、在python中整数类型与数学中整数概念一致没有去取值范围限制,而且可正可负;

2、常用函数:计算平方函数使用pow(x,y)即可;

3、对于进制的数据类型使用如下方法表示:

十进制:正常表示即可;

二进制:以0B或者0b开头:0b010、-0B010

八进制:以0O或者0o开头:0O123、0o456

十六进制:以0X或者0x开头:0X9a、0X89

浮点数:

与数学中实数概念一致;带有小数点及小数的数字;

浮点数和小数取值都存在精度限制,常规计算可以忽略;

浮点数和小数取值范围数量级在-10的307次方和10的308次方;精度数量级10的-16次方;

注意:浮点数间计算存在不确定位数;




python numpy根据索引获取元素 python在列表中通过索引取值_python 根据索引取值


针对尾数问题python提供了round函数;

用法:round(x,d) 表示对x四舍五入,取d位小数;

浮点数间运算比较一般使用round函数辅助;

不确定位数一般发生在10的-16次方左右,round函数十分有效;

浮点数也可以采用科学计数法表示:

使用字母E或e作为幂的符号,以10为基数格式如下:

<a>e<b> 表示a*10的b次方

例如:4.3e-3值为:0.0043 9.6E5的值为:960000.0

——————————————————————————————————————

复数:

与数学中复数概念一致;


python numpy根据索引获取元素 python在列表中通过索引取值_python 根据索引取值_02


python numpy根据索引获取元素 python在列表中通过索引取值_字符串_03


数值运算操作符:


python numpy根据索引获取元素 python在列表中通过索引取值_python 根据索引取值_04


python numpy根据索引获取元素 python在列表中通过索引取值_python 根据索引取值_05


二元操作符对应的增强赋值操作;


python numpy根据索引获取元素 python在列表中通过索引取值_浮点数_06


数字类型的关系:

类型间可以进行混合运算,生成结果为最宽类型;

三种类型间存在一种渐渐”扩展“或”变宽“的关系;

整数-》浮点数-》复数

常用的函数形式提供的数值运算符:


python numpy根据索引获取元素 python在列表中通过索引取值_浮点数_07


python numpy根据索引获取元素 python在列表中通过索引取值_python 根据索引取值_08


python numpy根据索引获取元素 python在列表中通过索引取值_浮点数_09


二、实例:天天向上体验数字类型的魅力;

需求描述:如果A每天努力进步百分之一,B每周工作五天休息两天,休息日下降百分之一,问B工作日需要多努力才能达到和A同样的水平?

问题分析:


python numpy根据索引获取元素 python在列表中通过索引取值_python_10


代码实现:


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


三、字符串类型及基本操作;

字符串定义:由零个或多个字符组成的有序字符序列;

表示:字符串是由一对单引号或者双引号表示的字符串;

字符串是字符有序序列,可以对字符串进行索引;

字符串有两类四种表示方法;由一对单双引号表示,或者一对三单引号或三双者引号表示;

字符串可以使用正向递增或者反向递减进行索引和切片操作;

python中字符串的特殊转译符:,转译符表示特定字符的本意;

字符串常见操作:

x + y:表示拼接字符串;

n * x :表示复制n次字符串x;

x in y:表示判断x是否在字符串y中;

字符串处理函数:


python numpy根据索引获取元素 python在列表中通过索引取值_浮点数_11


python numpy根据索引获取元素 python在列表中通过索引取值_python 根据索引取值_12


字符串相关的方法:


python numpy根据索引获取元素 python在列表中通过索引取值_python_13


python numpy根据索引获取元素 python在列表中通过索引取值_python 根据索引取值_14


python numpy根据索引获取元素 python在列表中通过索引取值_python_15


字符串类型的格式化:format()方法的格式控制:


python numpy根据索引获取元素 python在列表中通过索引取值_python 根据索引取值_16


四、time库的基本使用;

time库包含三类函数:


python numpy根据索引获取元素 python在列表中通过索引取值_python 根据索引取值_17


具体如下:


python numpy根据索引获取元素 python在列表中通过索引取值_python_18


python numpy根据索引获取元素 python在列表中通过索引取值_python_19


时间格式化:


python numpy根据索引获取元素 python在列表中通过索引取值_python 根据索引取值_20


时间格式化控制符:


python numpy根据索引获取元素 python在列表中通过索引取值_浮点数_21


python numpy根据索引获取元素 python在列表中通过索引取值_浮点数_22


python numpy根据索引获取元素 python在列表中通过索引取值_字符串_23


程序计时函数:


python numpy根据索引获取元素 python在列表中通过索引取值_python 根据索引取值_24


五、绘制简单的文本进度条;

需求:根据时间函数绘制一个文本进度条;

实现如下:

简单实现


#textprobar1.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("_______执行结束_______")


根据时间进度动态实现如下:


#textprobar2.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("r"+"执行结束".center(scale//2,'-'))