Python学习笔记(三):基本数据类型

目录

1.数字类型及操作

2.实例

3.字符串类型及操作

3.1.字符串类型的表示

3.2 字符串操作符

3.3 字符串处理函数

3.4 字符串处理方法

3.5 字符串类型的格式化

 4. time库的使用

4.1 时间获取

4.2 时间格式化

4.3 程序计时应用

5.文本进度条


1.数字类型及操作

①整数类型: 

power(x,y) x的y次方

②浮点类型(带有小数)

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

round(0.1+0.2)==0.3 #浮点数间运算比较用round()辅助

round(x,d): 对x四舍五入,d是小数截取位数,默认为0(取整),d可以省去

浮点数可用科学计数法表示:使用e或E,以10为基数,例如 4.3e-3=0.0043

③复数类型

z=1.23e-4+5.6e+89j

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

④数值运算操作符 + - * /

x // y 整数除 10//3结果为3

x % y  取除之后的余数

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

二元操作符(op):

x op=y 表示 x=x op y

x+=y; x-=y; x*=y; x/=y; x//=y; x**=y

⑤数值运算函数

abs(x) 取绝对值

divmod(x,y) 输出商和余数: divmod(10,3)=(3,1)

pow(x,y[,z]) 幂余 (x**y)%z: pow(3,pow(3,99),10000)结果为4587 参数z可以省略

max(x1,x2,...,xn) 返回其中的最大值

min(x1,x2,...,xn) 返回其中的最小值

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

2.实例

2.1 一年365天,每天进步1%,或每天退步1%

#DayDayUpQ1
dayup=pow(1.001,365)
daydown=pow(0.999,365)
print("向上:{:.2f}, 向下:{:.2f}".format(dayup,daydown))#结果取小数点后两位

2.2 工作日模式:一年365天,一周五个工作日,每天进步1%;两个休息日,每天退步1%

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

2.3 工作日模式要努力到什么水平,才能和每天努力1%一样

#DayDayUpQ4
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.字符串类型的表示

由一对单引号或一对双引号表示

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

索引:返回字符串中的单个字符  eg. TempStr[-1]

切片:返回字符串中一段字符字串 eg.TempStr[0:-1]

<字符串>[M:N],M缺失表示至开头,N缺失表示至结尾

 转义符:\b回退 \n换行(光标移动到下行首)  \r回车(光标移动到本行首)

3.2 字符串操作符

x+y 连接两个字符串x,y

n*x x*n 复制n次字符串x

x in s 如果x是n的字串,返回True,否则返回False

eg.输入1-7的整数表示星期几,输出整数对应的星期字符串

#获取星期字符串
weekStr="星期一星期二星期三星期四星期五星期六星期日"
weekId=eval(input("请输入星期数字(1-7):")) #去掉输入字符串引号
pos=(weekId-1)*3 #计算起始索引位置
print(weekStr[pos:pos+3])

或者

#获取星期字符串
weekStr="一二三四五六日"
weekId=eval(input("请输入星期数字(1-7):"))
print("星期"+weekStr[weekId-1])

3.3 字符串处理函数

len(x) 返回字符串长度

str(x) 变成任意类型x多对应的字符串形式,就是给其加上引号

hex(x)oct(x) 整数x的十六进制或八进制小写形式字符串 hex(425)为'0x1a9"

chr(u) u为Unicode编码,返回其对应字符

ord(x) x为字符,返回其对应的Unicode编码(整数)

for i in range(12):
    print(chr(9800+i),end="") #end为空,输出之后不换行,所有结果一行输出

3.4 字符串处理方法

str.lower()或 str.upper() 将字符串全部字符大写或小写

str.split(sep=None) 返回一个列表,由str根据sep被分割的部分组成

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

str.count(sub) 返回字串sub在str中出现的次数

" an apple a day".count("a")的结果为4

str.replace(old,new) 所有old子串被替换为new

"python".replace("n","n123.io") 结果为 “python123.io"

str.center(width[,fillchar]) 字符串根据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" #可用于字符串分隔

3.5 字符串类型的格式化

{ }表示槽,字符串中槽的顺序与format中参数的顺序对应 

可以槽中填写顺序

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

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

 默认情况下填充的是空格,左对齐

类型中参数的具体含义: 

b 二进制; c 以字符形式;d十进制; o八进制; x十六进制; X大写的十六进制

e 科学计数法e; E科学计数法E; f 非科学计数法形式的浮点数; %百分数形式的浮点数

 4. time库的使用

4.1 时间获取

time() 获取当前时间,即计算机内部时间,浮点数;import time库,用time.time()调用
ctime() 获取当前时间并以易读方式表示,返回字符串;time.ctime() 
gmtime()获取当前时间,表示为计算机可处理的时间格式;time.gtime()

4.2 时间格式化

strftime(tpl,ts)

将时间以合理的方式展示出来(格式化)

tpl是格式化模板字符串,用来定义输出效果

ts是计算机内部时间类型变量

strptime(str,tpl)

转化为计算机内部可以操作的时间(反格式化)

str 是字符串形式的时间值

tpl 是格式化模板字符串,用来定义输入效果

4.3 程序计时应用

perf_counter()

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

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

sleep(s)

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

5.文本进度条

采用字符串方式打印可以动态变化的文本进度条

import time
scale=10
print("------执行开始------")
for i in range(scale+1):
      a='*'*i #复制i次
      b='·'*(scale-1)
      c=(i/scale)*100
      print("{:^3.0f}%[{}->{}])".format(c,a,b))
      time.sleep(0.1)
print("-------执行结束------")

单行动态刷新:用后打印的字符覆盖之前的字符(打印后光标退回到之前的位置\r)

import time
for i in range(101):
      print("\r{:3}%".format(i),end="") #end=""可以避免换行
      time.sleep(0.1)

(注:idle会屏蔽\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,'-'))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值