第三章 数字类型及操作

目录

声明:本文只是个人的学习笔记,代码来源于中国大学mooc中的内容

3.1数字类型及其操作

一整数类型

二浮点数类型

三复数类型

四数值运算操作符

五数值运算函数

3.2 实例3:天天向上的力量

3.3 字符串类型及操作

一字符串类型的表示

二字符串的序号(正向递增序号和反向递减序号)

三字符串的使用:[]

四字符串的特殊字符(转义符\)

五字符串操作符

六字符串处理函数

七字符串处理方法("方法"在编程中是一个专有名词)

八字符串类型的格式化

3.4模块2:time库的使用

1.时间获取:time()  ctime()  gmtime()

2.时间格式化:strftime()  strptime()

3.程序计时:sleep(),perf-counter()

3.5 实例4:文本进度条


声明:本文只是个人的学习笔记,代码来源于中国大学mooc中的内容

3.1数字类型及其操作

一整数类型

1可正可负,没有取值范围限制

2.pow(x,y)函数:计算x^y,想算多大算多大

3.十进制;二进制(0b或0B开头):0b010,-0B101;八进制(0o或0O开头);十六进制(0x或0X开头)

二浮点数类型

1.浮点数取值范围和小数精度都存在限制,但常规计算可忽略;取值范围数量级约-10^307至10^308,精度数量级10^-16.

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

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

>>0.1+0.2==0.3

False

4.round(x,d):对x四舍五入,d是小数截取位数;浮点数间运算与比较用round()函数辅助

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

三复数类型

1.定义j=√-1,a+bj被称为复数,a是实部,b是虚部

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

四数值运算操作符

x//y  整数除,x与y之整数商,10//3结果是3

+x  x本身

-y  y的负值

x**y    幂运算,x的y次幂,x^y

           当y是小数时,开方运算10**0.5结果是√10

x op=y  即x=x op y,其中,op为二元操作符

(数字类型的关系:类型间可进行混合运算,生成结果为“最宽”类型:整数->浮点数->复数)

五数值运算函数

abs(x)x的绝对值
divmod(x,y)商余,(x//y,x%y)
pow(x,y[,z])幂余,(x**y)%z,[...]表示参数z可省略
round(x[,d])四舍五入,d是保留小数位数,默认值为0
max(x1,x2,...,xn)最大值,n不限
min(x1,x2,...,xn)最小值,n不限
int(x)

将x变成整数,舍弃小数部分

int(123.45)结果为123;int("123")结果为123

float(x)

将x变成浮点数,增加小数部分

float(12)  12.0;float("1.23")  1.23

complex(x)

将x变成复数,增加虚数部分

complex(4)结果为4+0j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.2 实例3:天天向上的力量

def dayUP(df):#def保留字用于定义函数
    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 字符串类型及操作

一字符串类型的表示

由一对单引号或双引号表示,仅代表单行字符串

由一对三单引号或三双引号表示,可代表多行字符串

二字符串的序号(正向递增序号和反向递减序号)

三字符串的使用:[]

字符串切片高级用法:<字符串>[M:N],M缺失表示至开头,N缺失表示至结尾

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

                                  "0一二三四五六七八九十“[1:8:2]结果是”一三五七“

                                  “0一二三四五六七八九十”[::-1]结果是“十九八七六五四三二一0”

四字符串的特殊字符(转义符\)

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

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

五字符串操作符

x+y连接两个字符串x和y
n*x或x*n复制n次字符串x
x in s如果x是s的字符串,返回True,否则返回False

 

 

 

 

六字符串处理函数

len(x)返回字符串x的长度
str(x)任意类型x所对应的字符串形式
hex(x)或oct(x)整数x的十六进制或八进制小写形式字符串
chr(u)x为Unicode编码,返回其对应的字符
ord(x)x为字符,返回其对应的Unicode编码

 

 

 

 

 

 

Unicode编码(Python字符串的编码方式)

-统一字符编码,即覆盖了几乎所有字符的编码方式

-从0到1114111(0x10FFFF)空间,每个编码对应一个字符

-Python字符串中每个字符都是Unicode编码字符

七字符串处理方法("方法"在编程中是一个专有名词)

-"方法"特指<a>.<b>()风格中的函数<b>()

-方法本身也是函数,但与<a>有关

-字符串或字符串变量是<a>

(一些以方法形式提供的字符串处理功能)

str.lower()或str.upper()返回字符串的副本,全部字符小写/大写
str.split(sep=None)

返回一个列表,由str根据sep被分隔的部分组成

“A,B,C".split(",")结果为['A','B','C']

 str.count(sub)返回字串sub在str中出现的次数 
str.replace(old,new)返回字符串str副本,所有old字串被替换为new 
 str.center(width[,fillchar])

字符串str根据宽度 width居中,fillchar可选

“python".center(20,"=")结果为

'=======python=======' 

 str.strip(chars)

从str中去掉在其左侧和右侧chars中列出的字符

 "=python=".strip(" =np")结果为
'ytho'

 str.join(iter)

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

",".join("12345")结果为

"1,2,3,4,5"#主要用于字符串分隔等 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

八字符串类型的格式化

1.使用.format()方法:<模块字符串>.format(<逗号分隔的参数>)

 "{1}:计算机{0}的cpu占用率为{2}%".format("2018-10-10","c",10)
'c:计算机2018-10-10的cpu占用率为10%'
"{}:计算机{}的cpu占用率为{}%".format("2018-10-10","c",10)
'2018-10-10:计算机c的cpu占用率为10%'

2.内部对格式化的配置方式{<参数序号>:<格式控制标记>}

<填充><对齐><宽度><,><.精度><类型>
引号符号

用于填充的

单个字符

<左对齐

>右对齐

^居中对齐

槽设定的输

出宽度

数字的

千位分隔符

浮点数小数精度

或字符串最大输

出长度

整数类型

b,c,d,o,x,X

浮点数类型

e,E,f,%

 

 

 

 

 

 

 "{0:=^20}".format("PYTHON")

'=======PYTHON======='
>>> "{0:*>20}".format("BIT")
'*****************BIT'
>>> "{:10}".format("BIT")
'BIT       '
>>> "{0:,.2f}".format(12345.6789)
'12,345.68'

>>> "{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%'
>>>

3.4模块2:time库的使用

一time库

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

                                                                time.<b>()

1.时间获取:time()  ctime()  gmtime()

time()

获取当前时间,及计算机内部时间值,浮点数

>>> time.time()
1594788619.9106114

 

ctime()

获取当前时间并以易读方式表示,返回字符串

>>> time.ctime()
'Wed Jul 15 12:52:26 2020'

gmtime()

获取当前时间,表示为计算机可处理的时间格式

>>> time.gmtime()
time.struct_time(tm_year=2020, tm_mon=7,

tm_mday=15, tm_hour=4, tm_min=53,

tm_sec=43, tm_wday=2, tm_yday=197, tm_isdst=0)

 

 

 

 

 

 

 

 

2.时间格式化:strftime()  strptime()

1.格式化:类似于字符串格式化,与要有展示模板

展示模板由特定的格式化控制符组成

2.strftime(tpl,ts)   tql是格式化模板字符串,用来输出结果;ts是计算机内部时间类型变量

>>> t=time.gmtime()
>>> time.strftime("%Y-%m-%d %H:%M:%S",t)
'2020-07-15 09:44:29'

格式化控制符
%Y年份0000~9999
%m月份01~12
%B月份名称January~December
%b月份名称缩写Jan~Dec
%d日期01~31
%A星期Monday~Sunday
%a星期缩写Mon~Sun
%H小时(24h制)00~23
%l小时(12h制)01~12
%p上/下午AM,PM
%M分钟00~59
%S00~59

3.strptime(str,tql)   str是字符串形式的时间值;tql是格式化模板字符串,用来定义输入结果

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

3.程序计时:sleep(),perf-counter()

 程序计时指测量起止动作所经历时间的过程

测量时间:perf_counter()

返回一个CPU级别的精确时间计数值,单位为秒

由于这个计数值起点不确定,连续调用差值才有意义

>>> start=time.perf_counter()
>>> end=time.perf_counter()
>>> end-start
24.802861599997414

产生时间:sleep(s)

s拟休眠的时间,单位是秒,可以是浮点数

 

3.5 实例4:文本进度条

1.“文本进度条”简单的开始

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

2.“文本进度条”单行动态刷新

-刷新的本质:用之后打印的字符覆盖之前的字符

-不能换行:print()需要被控制

-要能回退:打印后光标退回到之前的位置\r

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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值