zoukankan      html  css  js  c++  java
  • Python基础学习03--变量 数据类型

    python-变量类型

    什么叫变量?变量就是可以重复使用的一个量,或者说是一个代号。

    变量的命名规则

    1、变量组成:字母+数字+下划线

    2、一般以字母(大写,小写均可)开头------>frist1,Second2

    3、数字不能开头------>4four,5five会报语法错误

    4、大小写敏感,要严格区分大小写------>First != first

    5、下划线可以开头,但是强烈不建议使用,一般以下划线开头的内容具有特殊含义

    6、不能与关键字相同------>关键字是Python语言里面的特殊字符串

    # 查看关键字
    import keyword
    print(keyword.kwlist)

    7、不能与内置函数相同------>print

    # 内置函数可以作为变量使用,但是该函数会失去原有的意义
    >>> print = 3
    >>> print
    3
    >>> print("hello world")
    Traceback (most recent call last):
      File "<pyshell#2>", line 1, in <module>
        print("hello world")
    TypeError: 'int' object is not callable

    8、推荐使用具有固定含义的英文单词或者缩写, srv=server skt=socket

    9、中文可作为变量使用,但是强烈不建议

    变量赋值

    等号(=)用来给变量赋值

    等号(=)左边为变量,等号(=)右边为存储在变量中的值

    movies = '我不是药神'
    print(movies)
    movies = '当幸福来敲门'
    print(movies)
    num1 = 3
    num2 = 9.2
    num3 = num1 + num2
    print(num3) name = 'test' room = '508' office = name + room print(office)

     输出结果如下:

    我不是药神
    当幸福来敲门
    12.2
    test508

    多变量赋值

    多变量赋值即同时为多个变量进行赋值

    # 查看对象的地址:id()
    # 多个变量指向同一个位置
    a = b = c = 13
    print(a,b,c,id(a),id(b),id(c))
    
    # 不同变量同时指向不同的对象
    a,b,c = 'mon','wed',7
    print(a,b,c,id(a),id(b),id(c))

    输出结果中可以看出,a = b = c = 13中3个变量都指向同一个内存地址

    13 13 13 1596646352 1596646352 1596646352
    mon wed 7 55821440 55821536 1596646256

    变量类型

    python3中有6个标准数据类型:

    • 数字(Number)
    • 字符串(String)
    • 列表(List)
    • 元组(Tuple)
    • 字典(Dict)
    • 集合(Set)

    获取类型的方法

    • type()
    • isinstance()

    type()

    print(type(520))
    
    print(type(5.20))
    
    list1 = []
    print(type(list1))
    
    tuple1 = ()
    print(type(tuple1))
    
    dic = {}
    print(type(dic))

    输出结果如下:

    <class 'int'>
    <class 'float'>
    <class 'list'>
    <class 'tuple'>
    <class 'dict'>

    isinstance()

    验证()类型是否正确,并返回bool值

    isinstance(object, classinfo)

    print(isinstance('a',bool))
    
    print(isinstance(520,int))
    
    print(isinstance(3.1415,float))
    
    print(isinstance(['list',1,.5],list))
    
    print(isinstance((2,[3,1.0],'2'),tuple))

    输出结果如下:

    False
    True
    True
    True
    True

      

    数字类型(Num)

    数字类型包含4种:

    • 整数(int)
    • 浮点数(float)
    • 布尔值(bool)
    • 复数(complex)

    整数类型

    一般称为整数或者整型,正整数或者负整数

    例如:3,-3

    浮点数

    浮点数就是俗称的小数,正或者负;浮点数也可以用科学记数法表示------>1.3e-3 = 1.3 x 10-3 = 0.0013

    浮点数的写法:0.3 == .3  ,  3.1415  ,  3.     

    布尔值

    布尔值即表示真假的值,即True,False

    布尔值可以跟数字直接操作------>True == 1;False == 0

    复数

    复数由实数部分和虚数部分组成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

    例如:5+3j  ==  complex(5,3)

    数值类型转换

    数据类型的转换,只需将数据类型作为函数名即可

    # 浮点型转换为整型
    a = 5.99
    b = int(a)
    print(b)
    
    # 字符串转换为浮点型
    # 字符串转换为整型或者浮点型,字符串内容必须为数字
    a = '520'
    b = float(a)
    print(b)
    
    # 浮点型转换为字符串
    a = 5.99
    b = str(a)
    print(b)
    
    # e记法转换为字符串
    a = 5e19
    b = str(a)
    print(b)

    输出结果如下:

    5
    520.0
    5.99
    5e+19

    运算符

    运算符包括以下几种:

    • 算术运算符
    • 比较或者关系运算符
    • 赋值运算符
    • 逻辑运算符
    • 位运算
    • 成员运算
    • 身份运算符

    算术运算符

    # +,-跟正常算术运算符一模一样
    a = 8 + 6 - 3
    print(a)
    
    # 乘号用星号(*)代替
    a = 6 * 7
    print(a)
    
    # 除号用斜杠(/)代替
    # 在Python2.x 和python3.x 中,除号(/)结果可能不一致,此处以3系列为准
    a = 7 / 4
    print(a)
    
    # % 取余运算
    # 两个数字相除应该有商数有余数
    # % 只会得到余数
    a = 7 % 4
    print(a)
    
    # // 表示取商运算,也叫地板除
    a = 8 // 3
    print(a)
    
    # ** 表示幂运算
    a = 3 ** 3
    print(a)

    输出结果如下:

    11
    42
    1.75
    3
    2
    27

    比较或者关系运算符

    1. 对两个变量或者值进行比较的运算符
    2. 比较的结果是布尔值,即True/False
    # == , 等于号
    a = 3 ** 4
    # 下面语句执行顺序是
    # 1、 计算 a == 80
    # 2、 把结果放入b中
    b = a == 80
    print(b)
    
    
    # != 不等于
    print( 9 != 8 )
    
    # > 大于
    # < 小于
    # >= 大于等于
    # <= 小于等于

    输出结果如下:

    False
    True

    赋值运算符

    # = , 赋值
    a = 0
    A = a = 4
    print('A = ',A)
    
    # +=, 是缩写
    a = 0
    a += 7      # a = a+ 7 的缩写
    print('a = ',a)
    
    # -=
    b = 0
    b -= 2      # b = b - 2
    print('b = ',b)
    
    # *=
    c = 2
    c *= 2      # c = c * 2
    print('c = ',c)
    
    # /=
    d = 2
    d /= 2      # d = d / 2
    print('d = ',d)
    
    # //=
    e = 9
    e //= 4     # e = e // 4
    print('e = ',e)
    
    # %=
    f = 5
    f %= 2      # f = f % 2
    print('f = ',f)
    
    # **=
    g = 3
    g **= 3     # g = g ** 3
    print('g = ',g)

    输出结果如下:

    A =  4
    a =  7
    b =  -2
    c =  4
    d =  1.0
    e =  2
    f =  1
    g =  27

    逻辑运算符

    对布尔值进行计算的符号

    • and 逻辑与
    • or 逻辑或
    • not  逻辑非

    运算规则:

    1. and看做乘法(*), or看做加法(+),
    2. True看做1, False看做0
    3. 则逻辑运算就能转换成整数数学运算
    4. 最后结果如果是0则为False, 否则为True
    # 逻辑运算符案例
    a = False
    b = False
    c = True
    
    # 以下式子等价于 d = 0 * 0 + 1
    d = a and b or c
    print(d)
    
    
    d = a or b and a
    print(d)

    输出结果如下:

    True
    False

    逻辑运算的短路问题:

    逻辑运算式,按照运算顺序计算,一旦能够确定整个式子未来的值,则不再进行计算,直接返回

    a = True
    b = False
    c = False
    
    print(a or a and b or c)
    # 当or的左侧a = True时,则or右侧的表达式不再执行
    # or在表达式中优先级最低
    
    print(b and (a or c and b))
    # 当and的左侧b = False时,则and右侧的表达式不再执行
    # and在表达式中优先级最低
    
    print(not c or a and b)
    # 优先级:not > and > or
    # or 左侧not c == True,故a and b不用执行

    输出结果如下:

    True
    False
    True

    成员运算符

    用来检测某一个变量是否是另一个变量的成员,返回值为布尔类型

    • in
    • not in
    list1 = [1,3,5,7,9]
    
    a = 7
    b = a in list1
    print(b)
    
    a = 4
    print(a in list1)
    
    print(a not in list1)

    输出结果如下:

    True
    False
    True

    身份运算符

    比较两个对象的存储单元,返回值为布尔类型

    • is
    • is not
    a = b =9
    print( a is b)
    if id(a) == id(b):
        print('内存地址一致')
    else:
        print('内存地址不同')
    
    a = "I love you"
    b = "i love you"
    print(a is b)
    
    print(a is not b)
    
    if id(a) == id(b):
        print('内存地址一致')
    else:
        print('内存地址不同')

    输出结果如下:

    True
    内存地址一致
    False
    True
    内存地址不同

    运算符的优先级问题

    运算符的优先级参照下图,从上到下,从左到右,优先级递减

    参考资料:

    1、图灵学院:http://www.tulingxueyuan.com/

    2、鱼C论坛:https://fishc.com.cn/forum-243-1.html

    3、菜鸟教程:http://www.runoob.com/python3/python3-tutorial.html

    4、《 Head First Python 》

  • 相关阅读:
    C#Thread学习
    C#winform拖动无边框窗体
    c#winform pictureBox使用url加载图片
    C#Async,await异步简单介绍
    C#字符串拼接的三种方式
    FreeMarker学习(宏<#macro>的使用)
    sublime text 2中Emmet8个常用的技巧
    线程通信之管道流
    程序员必懂:javaweb三大框架知识点总结
    mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离
  • 原文地址:https://www.cnblogs.com/wilson-5133/p/9842843.html
Copyright © 2011-2022 走看看