一.数字类型及操作
数据类型
-
整数
与C/C++不同的是,python中的整数没有大小限制,想多大多大。(现在终于懂了用python水高精度是什么意思了。)
对于幂运算,可以用pow(x, d)
函数:表示x^d。 -
浮点数
python中的浮点数:取值范围数量级约-10308至10308,精度数量级10-16
有一个特点需要注意:不确定尾数。
不仅是python,其他的计算机语言也存在这个问题。计算机进行运算的过程是把一个数转化为2进制,经过运算,再转换为10进制的时候。在浮点数进行进制转换的时候,有可能只能无限接近原数,并不能精确表示,所以会产生误差。下面是一个实例:
python提供了round()函数来解决这个问题:
round(x, d)#对x进行四舍五入,并且精确到小数点后d位
#浮点数间运算及比较用round()函数辅助
复数
数值运算操作符
x/y#除,如10/3=3.333……
x//y#整除,如10/3=3
x**y#x^y
函数
abs(x)#x的绝对值
divmod(x, y)#同时输出(x//y,x%y)
pow(x, y[, z])#(x**y)%z
round(x[, d])
max(x_1,x_2,...,x_n)
min(x_1,x_2,...,x_n)
二.实例3:天天向上的力量
完整实例就不给出了。里面提到了定义函数的方法,下面给出函数定义部分。
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
可以看到层次的区分不需要大括号,缩进就可以搞定。
函数定义的格式:def <函数名>(<参数>):
三.字符串
表示方法
2类共4中表示方法:
- 由一对单引号或双引号表示,仅表示单行字符串。
- 由一对三单引号或三双引号表示,可表示多行字符串。
这里指出,如果三单引号表示的字符串没有赋给某个变量,也可以作为注释。
字符串切片高级用法
<字符串>[M:N:K],根据步长K对字符串切片,如:
"〇一二三四五六七八九十”[1:8:2]结果是“一三五七”
“〇一二三四五六七八九十”[::-1]结果是”十九八七六五四三二一〇“
字符串的操作符
x + y#连接x和y
n * x 或 x * n#复制n次字符串x
x in s#判断x是否为s的字串
字符串处理函数
len(s)#求长度
str(x)#将x变为字符串,与eval有相反的功能
字符串处理方法
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.center(width,[,fillchar])#字符串str根据宽度width居中,两侧填充fillchar
#如"python".center(20,'=')结果为'======python======'
str.strip(chars)#从str中去掉在其左侧和右侧chars中列出的字符
str.join(iter)#在iter变量除最后元素外每个元素后增加一个str
#如",".join("12345")结果为"1,2,3,4,5"
#主要用于字符串分隔等
字符串类型的格式化
用法:<模板字符串>.format(<逗号分隔的参数>)
槽
槽内部对格式化的配置方式:{<参数序号>:<格式控制标记>}
四.模块二:time库
time()#获取一个时间戳,即一个浮点数
ctime()#获取当前时间并以易读方式表示,返回字符串
gmtime()#获取当前时间,表示为计算机可处理的时间格式
strftime(tpl,ts)#>>>time.strftime("%Y-%m-%d %H:%M:%S",t)
#输出'2018-01-26 12:55:20'
strptime(str,tpl)#与strftime互补
perf_counter()#返回一个CPU级别的精确时间计数值,单位为秒,可用来计算时间差
sleep(s)#程序暂停s秒