Python Day 5 基本数据类型
一、整数类型
1.与数学中整数的概念一致。没有取值范围
2.pow(x,y) 函数 计算x的y次幂
Pow(2,pow(2,15))
3.四种进制表示形式
(1)十进制
(2)二进制 0b开头
(3)八进制 0o开头
(4)十六进制 0X或0x开头
二、浮点类型
1.与数学中的实数概念一致
2.浮点数间运算存在不确定的尾数,不是bug
例如:0.1+0.2=0.3000000004
原因:二进制与十进制不是严格的对等关系,python用53位二进制表示小数,是无限接近而不是完全对等。
0.1+0.2==0.3
居然输出false
3.round(x,d):对x四舍五入,d是小数截取尾数
其实就是去取几位小数的意思。
用round函数辅助浮点数的比较
4.科学计数法表示
(1)使用e或E作为幂的符号,底为10
(2)4.3e-3 == 0.0043 4.3e+3==4300 ==4.3e3 正指数幂 +号可以省去也可以保留
(3)取值范围和精度基本可以算作是无限制
三、复数类型
1.只有python语言提供了复数类型
2.Z == 1.23e-4+5.6e+89j 字母j表示虚数单位
3.Z.real 获取实部 z代表某一数据
Z.imag 获取虚部
四、数字运算操作符
1. // 计算整除商,10//3 ==3
2. % 计算余数 10%3 ==1
3. ** 幂运算 4**0.5==2
4. 二元增强运算操作符
将变量运算后的结果再赋值给变量
五、混合运算
1. 产生数据类型最宽的类型
复数>浮点数>整数
六、数值运算函数
1.abx() 去绝对值
2.Divmod(x,y) 同时输出商和余数
Divmod(10,3) ==(3,1)
3.Pow(x,y[,z]) z 是对z取余数的操作
4.Round(x[,d]) d 如果不选,则d==0,即取整函数
5.Max( )
6.Min( )
7.Int( x ) 不进行四舍五入 也可以将字符串类型转化为整数类型
8.Float( x )
9.Complex( x ) 将x 变成复数类型
七、字符串类型
1.单引号,双引号,都只能表示一行字符串
2.三单引号,形成的是多行字符串,但也可以当多行注释来使用。
3.正向递增序号、反向递减序号
4.索引和切片[ : ]
5.切片的高级用法
(1)[m,n,k] k == step
(2)[::-1] 将字符串逆序 [:]==[::]==从头至尾取出字符
6.转义符 转义符:表达字符的本意,即取消字符的功能
特殊组合: 换行
是当前的光标向前回退一个位置
回车
7.字符串的操作符
(1) + * in
(2)实例:星期的简单判断
8.字符串处理函数
(1)Len(x):返回字符串的长度,无论是是标点符号还是数字字母等都是一个字符
(2)Str(x): 相当于eval(x)的逆向操作
(3)Hex(x) 与oct(x) 将十进制整数,转化为十六进制或八进制
(4)Chr(x) 与 ord(x) 将Unicode 与 单个字符相互转换 小程序:输出12星座对应的字符
9.字符串处理”方法”
(1)方法:面向对象编程的一个术语。也可以当做一个函数。用.来实施
(2)str.lower() 与 str.upper() 全小写或全大写
(3)Str.split(sep=None) 返回一个列表类型,遇到sep就切分
(4)Str.count(sub) 返回x在str中出现的次数
(5)Str.replace(old,new) 替换
(6)Str.center(width[,fillchar]) 居中、空余位置填充
(7)Str.strip(chars) strip脱去一层的意思,即去除左右两边出现的字符
(8)Str.join(iter) ‘字符串’.join(‘str’),在每一个变量后加一个字符
10.字符串类型格式化
(1)样式:<参数序号:格式控制标记>.format(<参数 >)
(2)槽:{ }
(3)两组格式控制标记:
①输出宽度,加字符对齐方式(箭头指哪边,字符就在哪边),加空余位置的填充
②, 数字的千位分隔符 . 浮点数的精度 数据类型 (b,c,d,o,x,X)(e,E,f,%)
③两组操作可以同时使用,按顺序写
'{1:2f}'.format(a,b)
'145496.108147'
就删去了2f前的.
电脑里发生了什么?
八、实例 :天天向上的力量
Pow(1.02,365)==
工作日的力量:工作日升1%,休息日降1%,365天后
#工作日的力量
start=1
for i in range (365):
if i%7 in [6,0]:
start *=0.99
else:
start*=1.01
print('{:.2f}'.format(start))
工作日该多努力?
#工作日怎么努力
def workday(a):
start=1
for i in range(365):
if i%7 in [0,6]:
start*=(1+a)
else:
start*=0.99
return start
a=0
while workday(a)<pow(1.01,365):
a+=0.0001
print('工作日要每天进步{:.2%}'.format(a))
九、自定义函数
def sdjfk():
return
详情见《自学是一门手艺》的函数部分
九、数学思维:用数学公式解决问题
计算思维:抽象,将问题抽象成程序,让计算机完成计算部分。
计算”笨方法”试错:循环语句