PYTHON 基本数据类型

数字类型及操作

整数类型

  • 可正可负,没有取值范围限制
  • 例如常用函数pow(x,y),计算x的y次方
    pow(2,3)
    8
  • 四种进制表示形式
    十进制:1010,99,-217
    二进制,以0B或0b开头:0b010,-0B010
    八进制,以0o或0O开头:0o123,-0O456
    十六进制,以0X或0x开头:0x9a,-0X89

浮点数类型

  • 带有小数点及小数的数字
  • 浮点数取值范围和进度都有限制,通常可忽略
  • 浮点数存在不确定尾数
    python中用53位二进制表示小数部分,且二进制与十进制没有严格的对应关系,所以用十进制表示小数只是截取了小数的一部分。
    >>> 0.2 + 0.1 == 0.3
    False

    round(x,d):对x四舍五入,取d位小数
    >>> round(0.2 + 0.1 ,1) ==0.3
    True

复数类型

与数学中复数类型一致
例:

z = 1 + 2j
z.real
1.0
z.imag
2.0

数值运算操作符

操作符及使用 描述
x + y 加,x与y之和
x - y 减,x与y之差
x * y 乘,x与y之积
x / y 除,x与y之商
x // y 整数除,返回x除以y的整数部分
+ x x本身
- x x的负值
x % y 模运算,x对y取余
x ** y 幂运算,x的y次方,例如函数pow(2,3), 输出结果为8
x += y 二元操作符,等价于x = x + y(其他运算类似)

数字类型的关系

类型之间可以混合运算,生成‘最宽’的结果

  • 三种类型间逐渐变宽:
    整数->浮点数->复数
    例如:>>> 1+2.3
    3.3

数值运算函数

函数及使用 描述
abs(x) 绝对值,x的绝对值,abs(-1.0)输出结果为1.0
divmod(x,y) 商余,同时返回(x//y)与(x%y)的结果,divmod(10,3)结果为(3,1)
pow(x,y[,z]) 幂运算,[..]表示可省略,表示x的y次方,[,z]表示对x的y次方结果对z做模运算,例如pow(2,3,3)结果为2
round(x[,d]) 四舍五入,d是小数位,默认值为0,例round(1.23,1)输出结果为1.2
max(x1,x2,x3..,xn) 判断最大值,例max(1,3,5,7,9)结果为9
min(x1,x2,x3,..,xn) 判断最小值,例min(1,3,5,7,9)结果为1
int(x) 将数据类型转换为整数类型,例int(1.23)结果为1,int('2.34')结果为2
float(x) 将数据类型转换为浮点型,例float(1)结果为1.0,float('2')结果为2.0

实例练习:天天向上的力量

  • 一年365天,每天进步1%,累计进步多少?
    #DayDayUP_1.py
    dayup = 1.0
    dayfactor = 0.01
    for i in range(365):
    dayup = dayup * (1 +dayfactor)
    print('{:.2f}'.format(dayup))

    运行结果:
    37.78

  • 一年365天,每天退步1%,累计退步多少?
    #daydayUp_2.py
    dayup = 1.0
    dayfactor = 0.01
    for i in range(365):
    dayup = dayup * (1 - dayfactor)
    print('{:.2f}'.format(dayup))

    运行结果:
    0.03

  • 一年365天,一周5个工作日,每天进步1%;一周2个休息日,每天退步1%,这种工作日的力量如何?
    #daydayUp_03.py
    dayup = 1.0
    dayfactor = 0.01
    for i in range(365):
    if i % 7 in [0,6]:
    dayup = dayup * ( 1 - dayfactor)
    else:
    dayup =dayup * (1 + dayfactor)
    print('{:.2f}'.format(dayup))

运行结果:
4.63

  • 工作日模式要努力到什么水平才能与每天努力1%一样?
    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))

运行结果:
工作日需要努力的水平为:0.019

你可能感兴趣的:(PYTHON 基本数据类型)