第三周的学习内容主要是数字类型、字符串类型及其操作。
一、数字类型及操作
1.整数类型(可正可负,无取值范围限制)
a.最常用函数pow(x,y):计算x的y次方
b.4中进制的表示形式:十进制(99,-21),二进制(以0b或0B开头:0b010,-0B101),八进制(以0o或0O开头),十六进制(以0x或0X开头)
2.浮点数(带小数点及小数的数字,范围从-10的308次方到10的308次方,精度为10的-16次方)
a.浮点数间运算存在不确定尾数,不是bug,如下:

不确定尾数问题不仅Python中存在,还有很多语言也存在,涉及到计算机对数字运算的内部原理,0.1在二进制中是一个无限循环的小数,和十进制小数不完全相同,导致现象产生。
round(x,d)函数可以对计算结果四舍五入,取小数位数
b.浮点数的科学计数法表示:<a>e<b>,表示a*10的b次方
3.复数类型(只有python语言有复数类型)
a+bj被称为复数,其中a是实部,b是虚部
eg. z=1.23e-4+5.6e+89j z.real获得实部,z.imag获得虚部

4.数值运算操作符
主要掌握以下几种运算符:



需要注意的是:类型间的混合运算结果为“最宽”类型,遵循 整数->浮点数->复数。如整数+浮点数=浮点数
5.数值运算函数



注:python中函数的参数使用[]表示时,说明该参数可省略。
二、“天天向上的力量”实例
持续的价值:一年365天,每天进步1%,累计进步多少?一年365天,每天退步1%,累计剩下多少?
数学思维:1.01的365次方,0.99的365次方
代码思维:
问题1:千分之一的力量

问题2:千分之五和1%的力量

问题3:工作日的力量
一年365天,一周5个工作日,每天进步1%;一年365天,一周2个休息日,每天退步1%。

问题4:工作日的努力
工作日模式要努力到什么水平才能与每天努力1%一样?
分析:A君每天努力1%,B君周末休息退步1%,那他工作日要努力多少才能跟A君的进步一样?

运用笨函数试错法,使用while保留字,当函数运行达到和1%一样的效果时输出对应的努力参数。
如果每天努力1.9%,365天后的进步是1.019的365次方=962.89,相当于进步1000倍!!!
GRIT(Perseverance and passion for long-term goals),坚毅,对长期目标的持续激情及持久耐力,是获得成功最重要的因素之一,牢记天天向上的力量。
三、字符串类型及操作
1.字符串的表示:
1)单引号、双引号(表示单行字符串),三单引号、三双引号(表示多行字符串)
注:三单引号表注释,实际在python中字符串未定义就当作注释来用
2)字符串的序号:正向递增,反向递减
3)字符串的使用:索引,切片
4)切片的高级用法:
<字符串>[M:N],M缺失表至开头,N缺失表至结尾。如“0123456”[:3]结果是“012”
<字符串>[M:N:K],根据步长K对字符串进行切片。如“0123456”[1:5:2]结果是“13”
使字符串逆序的方法:“0123456”[::-1]结构是“6543210”
5)字符串的特殊字符:转义符 \ (表达特定字符的本意);转义符形成的组合表达一些不可打印的含义,如“\b”回退,“\n”换行,“\r”回车
2.字符串的操作符
1)x+y:连接两个字符串x和y;n*x或x*n :复制n次字符串x;x in s:如果x是s的子串,返回True,否则返回False.
举例:获取星期字符串,输入1-7的整数,表示星期几

3.字符串的处理函数
len(x):返回字符串的长度;
str(x):任意类型x所对应的字符串形式。与eval()函数作用相对;
hex(x)或oct(x):整数x的十六进制或者八进制小写形式字符串;
chr(u):u为Unicode编码,返回其对应的字符;
ord(x):x为字符,返回其对应的Unicode编码;
注:Unicode编码是python字符串的编码方式,使python程序不限于中文、英文、韩文、日文、俄文等不同国家的语言可以通用处理;

4.字符串处理方法(八种)
str.lower()或者str.upper():返回字符串的副本,全部字符小写或大写;
str.split(sep=None):返回一个列表。eg:"A,B,C".split(",")结果为['A','B','C'];
str.count(sub):返回字串sub在str中出现的次数。eg.“an apple a day”.count("a")结果为4;
str.reaplac(old,new):返回字符串str副本,所有lod子串被替换为new。eg."python".replace("n",“n123.io”)结果为“python123.io”;
str.center(width[,fillchar]):字符串str根据宽度width居中,fillchar可选。eg."python".center(20,"=")结果为‘=======python=======’
str.strip(chars):从str中去掉在其左侧和右侧chars中列出的字符。eg."= python= ".strip(" =np")结果为(“ytho”)
str.join(iter):在iter变量除最后元素外每个元素后增加一个str。eg.",".join("12345")结果为"1,2,3,4,5"
5.字符串的格式化(使用.format()方法)




四、time库的使用
1.time库基本介绍
使用import time调用time库,使用time.<函数>调用time方法 。time库包括三类函数:
1)时间获取:time() ctime() gmtime()
2)时间格式化:strftime() strptime()
3)程序计时:sleep() perf_counter()
2.时间获取
time():time.time()
time():time.ctime()
gmtime():time.gmtime()

3.时间格式化

%Y:年份;%m:月份;%B:月份名称;%b:月份名称缩写;%d:日期;%A:星期;%a:星期缩写;%H:小时(24h制);%I:小时(12h制);%p:上/下午;%M:分钟;%S:秒

4.程序计时应用
perf_counter():返回一个CPU级别的精确时间计数值,单位为秒;

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

五、文本进度条
实例:采用字符串打印方式动态变化的文本进度条,进度条需要能在一行中逐渐变化
1.文本单条打印:

2.在一行打印,使用\r回到行首,end=''使print结尾不换行。

注:window系统需要在dos窗口,使用”python 文件名”的方式运行。
3.完整代码

六、练习与作业


网友评论