基本数据类型-4

    科技2022-07-21  115

    基本数据类型

    1. 数字类型及操作

    1.1 整数类型

    与数学中概念完全一致可正可负,没有取值范围限制 pow(x,y) #pow(x,y)函数,计算x的y次方 4种进制表示形式 十进制:1010,99,-217二进制,以0b或者0B开头:0b010,-0B101(C语言无)八进制,以0o或者0O开头:0o123,-0O456十六进制,以0x或者0X开头

    1.2 浮点类型

    与数学中实数的概念完全一致带有小数点及小数的数字浮点数取值范围和小数精度都存在限制,但常规计算可以忽略取值范围数量级约为-10的308次方到10的308次方,精度数量级10的-16次方浮点数间运算存在不确定尾数,不是bug

    解决不确定尾数,引进

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

    ​ 浮点数间运算及比较用round()函数辅助

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

    浮点数可以采用科学计数法表示 使用字母e或者E作为幂的符号,以10 为基数,格式如下 <a>e<b> #表示a*10的b次方

    1.3 复数类型

    z.real 获得实部z.imag 获得虚部

    1.4 数值运算操符

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

    / (除)产生的浮点数结果

    //(整除)产生整数

    数值类型的关系

    类型间可以进行混合运算,生成结果为“最宽”类型三种类型之间存在一种逐渐扩展或变宽的关系 整数->浮点数->复数

    数值运算函数

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

    函数及使用描述abs(x)绝对值,x的绝对值divmod(x,y)商余,同时输出商和余数(x//y,x%y)pow(x,y[,z])幂余,(x**y)%z,[…]表示参数z可以省略round(x[,d])四舍五入,d是保留最小数位数,默认值是0max(x1,x2,x3…xn)最大值,返回x1,x2,x3…xn中的最大值,n不限min(x1,x2,x3…xn)最小值,返回x1,x2,x3…xn中的最小值,n不限

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

    函数及使用描述int(x)将x变成整数,舍弃小数部分float(x)将x变成浮点数,增加小数部分complex(x)将x变成复数,增加虚数部分

    2. 实例:天天向上的力量

    一年365天,每天进步0.1%,累计进步多少呢一年365天,每天退步0.1%,累计剩下多少呢 #DayupQ1.py dayup =pow(1.001,365) daydown =pow(0.999,365) print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown)) 一年365天,每天进步0.5%或者1%,累计进步多少呢一年365天,每天退步0.5%或者1%,累计退步多少呢 #DayupQ2.py dayfactor = 0.005 dayup = pow(1+dayfactor,365) daydown = pow(1-dayfactor,365) print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown)) dayfactor = 0.01 dayup = pow(1+dayfactor,365) daydown = pow(1-dayfactor,365) print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown)) 一年365天,一周五个工作日,每天进步1%一年365天,一周两个休息日,每天退步1%这种工作日的力量,如何呢 #DayupQ3.py 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)) 工作模式要努力到什么水平,才能和每天努力1%一样A君:一年365天,每天进步1%,不停歇B君:一年365天,每周工作5天休息2天,休息日下降1%,要多努力呢 #DayupQ4 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))

    3. 字符串类型及其操作

    3.1 字符串

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

    字符串由一对单引号或者一对双引号表示字符串是字符的有序序列,可以对其中的字符进行索引(从0 开始编号)

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

    由一对单引号或者双引号表示,仅表示单行字符串由一对三单引号(作用可以作为多行注释)或者三双引号表示,可表示多行字符串

    如果希望在字符串中包含双引号和单引号

    ‘这里有个双引号(")’“这里有个单引号(‘)”’‘’这里既有双引号(“)也有单引号(’) ‘’‘

    3.2 字符串的编号

    正向递增序号和反向递减序号(最后一位是-1)

    使用[]获取字符串中一个或者多个字符

    索引:返回字符串中的单个字符 <字符串>[M] 切片:返回字符串中的一段字符子串 <字符串>[M:N]

    3.3 字符串切片高级用法

    使用[M:N:K]根据步长对字符串切片

    <字符串>[M:N] #M缺失表示至开头,N缺失表示至结尾 "0123456789"[:3]结果是"012" <字符串>[M:N:K] #根据步长K对字符串切片 "0123456789"[1:8:2]结果是"1357" #将字符串逆序输出 "0123456789"[::-1]J结果是"9876543210"

    3.4 字符串的特殊字符

    转义符\转义符表示特定字符的本意

    【eg.1】

    "这里有个双引号(\")" #结果为 这里有个双引号(")

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

    转义符表示内容\b回退\n换行\r回车

    3.5 字符串操作符

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

    操作符及使用描述x+y连接两个字符串x和yx in s如果x是s的子串,返回True,否则返回Flase

    【eg.2】获取星期字符串

    输入:1-7的整数,表示星期几输出:输入整数对应的星期字符串例如:输入3,输出星期三 #WeekNamePrintV1.py weekStr = "星期一星期二星期三星期四星期五星期六星期日" weekId = eval(input("请输入星期数字(1-7):")) pos = (weekId-1)*3 #复制三次字符串“weekId-1” print(weekStr[pos:pos+3]) #取weekStr字符串以pos开头pos+3结尾 #WeekNamePrintV2.py weekStr = "一二三四五六日" weekId = eval(input("请输入星期数字(1-7):")) print("星期" +weekStr[weekId-1])

    3.6 字符串处理函数

    一些以函数形式提供的字符串处理功能 函数及使用描述len(x)长度,返回字符串x的长度str(x)任意类型x所对应的字符串形式(与eval (x)作用相反)hex(x)或oct(x)整数x的十六进制或八进制小写形式字符串chr(u)u为Unicode编码,返回其对应的字符ord(x)x为字符,返回其对应的Unicode编码 Unicode编码 Python字符串的编码方式统一字符编码,即覆盖率几乎所有字符的编码方式

    【eg.3】星座转换

    for i in range(12): print(chr(9800 + i),end="")

    3.7 字符串处理方法

    方法在编程中是一个专有名词

    方法特指<a>.<b>()风格中的函数<b>() 方法本身也是函数,但与<a>有关,<a>.<b>()风格使用

    3.8 字符串类型的格式化

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

    字符串格式化使用.format()方法,用法如下

    <模板字符串>.format(<逗号分隔的参数>)

    槽{}利用格式化的控制标记参数

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

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

    4. 模块二:time库的使用

    4.1 time库基本介绍

    time库是python中处理时间的标准库 计算机时间的表示提供获取系统时间并格式化输出功能提供系统级精确计时功能,用于程序性能分析 import time time.<b>() time库表示三类函数 time() ctime() gmtime() #时间获取 strftime() strptime() #时间格式化 sleep() perf-counter() #程序计时

    4.2 时间获取

    函数描述time()获取当前时间戳,即计算机内部时间值,输出浮点数ctime()获取当前时间并以易读方式表示,返回字符串(人可读)gmtime()获取当前时间,表示为计算机可以处理的时间格式

    4.3 时间格式化

    将时间以合理的方式展示出来 格式化:类似字符串格式化,需要有展示模板展示模板由特定的格式化控制符组成strftime()方法 函数描述strftime(tql,ts)tql是格式化模板字符串,用来定义输出效果,ts是计算机内部时间类型变量strptime(str,tql)str是字符串形式的时间值,tql是格式化模板字符串,用来定义输入效果 格式化字符串日期/时间说明值范围和实例%Y年份0000~9999,例如:1900%m月份01~12,例如:10%B月份名称January~December,例如:April%b月份名称缩写Jan~Dec,例如:Apr%d日期01~31,例如:25%A星期Monday~Sunday,例如:Wednesday%a星期缩写Mon~Sun,例如:Wed%H小时(24h制)00~23,例如:12%h小时(12h制)01~12,例如:7%p上/下午AM,PM,例如:PM%M分钟00-59,例如:26%S秒00-59,例如:26

    4.4 程序计时应用

    程序计时应用广泛 程序计时指测量起止动作所经历时间的过程测量时间:perf-counter()产生时间:sleep() 函数描述perf_counter()返回一个CPU级别的精确时间计数值,单位为秒,由于这个计数值起点不确定,连续调用差值才有意义sleep()s拟休眠的时间,单位是秒,可以是浮点数 def wait(): time.sleep(3.3) #程序将等待3.3秒后再退出

    5. 实例:文本进度条

    Processed: 0.014, SQL: 8