python3基础:1.1数值类型

291 阅读5分钟
原文链接: zhuanlan.zhihu.com

一、基本知识:

1、python3的数值类型有四种:int(整数型)、bool(布尔型)、float(浮点型)、complex(复数型)。

2、python3的部分内置函数:print()、input()、type()、isinstance()

3、数值的基本运算:+(加)、-(减)、*(乘以)、/(除以)、**(乘方)、%(取余)、//(取整)

4、变量与赋值:Python 中的变量不需要声明,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

二、知识讲解 :

1、python3的数值类型有四种:int(整数型)、bool(布尔型)、float(浮点型)、complex(复数型)。在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。像大多数语言一样,数值类型的赋值和计算都是很直观的。在 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。浮点型、复数型分别与数学中的小数、复数类似。

2、python3的部分内置函数:print()、input()、type()、isinstance()。内置的print()函数是输出函数。内置的input()函数从标准输入读入一行文本,默认的标准输入是键盘。内置的type()函数可以用来查询变量所指的对象类型。内置的isinstance()函数可以用来判断变量所指的对象类型。

3、数值的基本运算:+(加)、-(减)、*(乘以)、/(除以)、**(乘方)、%(取余)、//(取整)

4、变量与赋值:

(1)Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。等号(=)用来给变量赋值,运算符左边是一个变量名,运算符右边是存储在变量中的值。

(2)变量的命名规则:变量名只能是字母、数字或下划线的任意组合;变量名的第一个字符不能是数字;变量名不能是关键字。

(3)Python允许你同时为多个变量赋值。例如:a = b = c = 1,以上实例,创建一个整型对象,值为 1,三个变量都指向同一个内存位置。您也可以为多个对象指定多个变量。例如:a, b, c = 1, 2, "runoob",以上实例,两个整型对象 1 和 2 的分配给变量 a 和 b,字符串对象 "runoob" 分配给变量 c。

三、操作实践:

1、python3 中的四种数值类型,列举如下:

(1)python3的代码:

#python3中的四种数值类型
int1 = 123      #int1为变量名,123为整数型
bool1 = True    #bool1为变量名,True为布尔型(值为1),False值为0
float1 = 3.14   #float1为变量名,3.14为浮点型(小数)
complex1 = 3+4j #complex1为变量名,3+4j为复数型
#内置的type() 函数可以用来查询变量所指的对象类型
print("变量int1所赋的值为:",type(int1))
print("变量bool1所赋的值为:",type(bool1))
print("变量float1所赋的值为:",type(float1))
print("变量complex1所赋的值为:",type(complex1))
#内置的isinstance() 函数可以用来判断变量所指的对象类型
print("变量int1所赋的值是否为整数型:",isinstance(int1,int))
print("变量bool1所赋的值是否为布尔型:",isinstance(bool1,bool))
print("变量float1所赋的值是否为浮点型:",isinstance(float1,float))
print("变量complex1所赋的值是否为复数型:",isinstance(complex1,complex))

(2)代码运行结果:

2、python3中的数值运算:

(1)python3代码:

# python3中的数值运算
# 1、两个整数型(int)相除,结果为浮点型(float)
print("1、两个整数型(int)相除,结果为浮点型(float)")
int1 = 8
int2 = 2
float1 = int1/int2
print("{}除以{}的结果为:{}".format(int1,int2,float1))
print("结果{},是浮点型:{}".format(float1,type(float1)))
# 2、%(取余),//(取整)
print("2、%(取余),//(取整)")
int3 = 8
int4 = 5
int5 = int3 % int4
int6 = int3 // int4
print("{}除以{}的余数是:{}".format(int3,int4,int5))
print("{}除以{}取整的结果是:{}".format(int3,int4,int6))
# 3、布尔型(bool)也可以参与运算,True=1,False=0
print("3、布尔型(bool)也可以参与运算,True=1,False=0")
int7 = 2
int8 = True
int9 = False
print("{}+{}={}".format(int7,int8,int7+int8))
print("{}-{}={}".format(int7,int9,int7-int9))
# 4、浮点型(float)计算的不精确性
print("4、浮点型(float)计算的不精确性")
float1 = 1.2
float2 = 1.1
float3 = 2.7
float4 = 0.3
print("{}-{}={}".format(float1,float2,float1-float2))
print("{}/{}={}".format(float3,float4,float3/float4))
# 5、导入模块math,向上取整与向下取整
print("5、导入模块math,向上取整与向下取整")
import math
a = 5
b = 3
c = a/b
print("{}/{}向上取整为:{}".format(a,b,math.ceil(c)))
print("{}/{}向下取整为:{}".format(a,b,math.floor(c)))
print("{}/{}四舍五入取整为:{}".format(a,b,round(c)))
print("{}/{}用int函数取整为:{}".format(a,b,int(c)))

(2)代码运行结果:

四、拓展应用:

1、python3中浮点数计算的不精确性:

(1)python3代码:

# 1、浮点型(float)计算的不精确性
print("1、浮点型(float)计算的不精确性,举例如下")
float1 = 4.2
float2 = 2.1
float3 = 1.2
float4 = 1.1
float5 = 2.7
float6 = 0.3
float7 = 0.1
print("{}+{}={}".format(float1,float2,float1+float2))
print("{}-{}={}".format(float3,float4,float3-float4))
print("{}/{}={}".format(float5,float6,float5/float6))
print("{}*3-{}={}".format(float7,float6,float7*3-float6))
# 2、导入模块decimal,解决浮点型计算的不精确性
print("2、导入模块decimal,解决浮点型计算的不精确性")
import decimal
float1 = decimal.Decimal('4.2')
float2 = decimal.Decimal('2.1')
float3 = decimal.Decimal('1.2')
float4 = decimal.Decimal('1.1')
float5 = decimal.Decimal('2.7')
float6 = decimal.Decimal('0.3')
float7 = decimal.Decimal('0.1')
print("{}+{}={}".format(float1,float2,float1+float2))
print("{}-{}={}".format(float3,float4,float3-float4))
print("{}/{}={}".format(float5,float6,float5/float6))
print("{}*3-{}={}".format(float7,float6,float7*3-float6))

(2)代码运行结果:

2、计算7**7**7的结果有多大?

(1)python3代码:

import time
# 定义日志记录装饰函数
def logger(func):
    def wrapper(*args,**kwargs):
        #显示函数开始运行时间
        print("现在是{},准备运行{}函数".format(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),func.__name__ ))
        t1 = time.time()
        #运行函数
        func(*args,**kwargs)
        run_time = time.time() - t1
        #显示add函数执行结束
        print("啊哈,运行完毕!共运行{}秒".format(run_time))
    return wrapper
# 调用装饰函数
@logger
# 定义业务函数
def data(x=1,y=2,z=3):
    global data1
    print("正在计算{}**{}**{}".format(x,y,z))
    data1 = x**y**z
    print("结果为:{}".format(data1))
@logger
def file():
    print("正在将计算结果写入文件")
    f = open('test777.txt', 'w')
    f.write(str(data1))
    f.close()
@logger
def statistical1():
    print("正在进行第一种统计方法:")
    data2 = str(data1)
    for i in range(10):
        print("数字{}的个数为:".format(i),data2.count(str(i)),end='     ')
    print()
@logger
def statistical2():
    print("正在进行第二种统计方法:")
    lists = list(str(data1))
    count_dict = dict()
    for item in lists:
        if item in count_dict:
            count_dict[item] += 1
        else:
            count_dict[item] = 1
    print(sorted(zip(count_dict.keys(),count_dict.values())))
if __name__ == '__main__':
    x,y,z = [7,7,7]
    data(x,y,z)
    file()
    statistical1()
    statistical2()

(2)代码运行结果: