DW Python基础组队学习 Task 01:变量、运算符、数据类型

Task 01:变量、运算符、数据类型

一、知识点

1变量

  • 变量可以是任意数据类型。

  • 在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,例如:

    a = 123 # a是整数
    print(a)
    a = 'ABC' # a变为字符串
    print(a)
    
  • 变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。和静态语言相比,动态语言更灵活。

    Python是动态语言,Java、C是静态语言。

    int a = 123; // a是整数类型变量
    a = "ABC"; // 错误:不能把字符串赋给整型变量
    
  • 变量赋值:

    对变量赋值x = y是把变量x指向真正的对象,该对象是变量y所指向的。随后对变量y的赋值不影响变量x的指向。例如:

    a = 'ABC'
    b = a
    a = 'XYZ'
    print(b)#打印出来ABC
    

    最后一行打印出变量b的内容到底是'ABC'呢还是'XYZ'?如果从数学意义上理解,就会错误地得出ba相同,也应该是'XYZ',但实际上b的值是'ABC',让我们一行一行地执行代码,就可以看到到底发生了什么事:

    执行a = 'ABC',解释器创建了字符串'ABC'和变量a,并把a指向'ABC'

    py-var-code-1

    执行b = a,解释器创建了变量b,并把b指向a指向的字符串'ABC'

    py-var-code-2

    执行a = 'XYZ',解释器创建了字符串’XYZ’,并把a的指向改为'XYZ',但b并没有更改:

    py-var-code-3

    所以,最后打印变量b的结果自然是'ABC'了。

    参考:https://www.liaoxuefeng.com/wiki/1016959663602400/1017063826246112

2数据类型

  • 在Python中,能够直接处理的数据类型有以下几种:整数、浮点数、字符串、布尔、空值。

  • Python的整数没有大小限制,而某些语言的整数根据其存储长度是有大小限制的,例如Java对32位整数的范围限制在-2147483648-2147483647。Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。

  • ''""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有abc这3个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I'm,空格,OK这6个字符。

  • 转义字符:

    转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\

    Python还允许用r''表示''内部的字符串默认不转义。

    如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容。

    >>> print('''line1
    ... line2
    ... line3''')
    line1
    line2
    line3
    
  • 空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

3函数积累

ord()函数获取字符的整数表示chr()函数把编码转换为对应的字符

>>> ord('A')
65
>>> ord('中')
20013
>>> chr(66)
'B'
>>> chr(25991)
'文'

二、练习题

  1. 怎样对python中的代码进行注释?

    可以用#,也可以用''' ''' 或者 """ """#用于单行注释,''' ''' 或者 """ """ 可用于单行注释,也可用于多行注释,示例如下:

    #单行注释
    
    '''单行注释'''
    
    """单行注释"""
    
    '''
    多行注释,三个单引号
    多行注释,三个单引号
    多行注释,三个单引号
    '''
    
    """
    多行注释,三个双引号
    多行注释,三个双引号
    多行注释,三个双引号
    """
    

  2. python有哪些运算符,这些运算符的优先级是怎样的?

    • 有算术运算符、比较运算符、逻辑运算符、位运算符、三元运算符等。

    • 在看一个式子的时候,先按照优先级来算,如果遇到优先级相同的,再看结合性。

      自己写的时候不要写过于复杂的表达式,也不要过度依赖运算符的优先级(尽量使用小括号来控制运算顺序,增加可读性)。

    运算符说明Python运算符优先级结合性优先级顺序
    小括号( )19
    索引运算符x[i] 或 x[i1: i2 [:i3]]18
    属性访问x.attribute17
    乘方**16
    按位取反~15
    符号运算符+(正号)、-(负号)14
    乘除*、/、//、%13
    加减+、-12
    位移>>、<<11
    按位与&10
    按位异或^9
    按位或|8
    比较运算符==、!=、>、>=、<、<=7
    is 运算符is、is not6
    in 运算符in、not in5
    逻辑非not4
    逻辑与and3
    逻辑或or2
    逗号运算符exp1, exp21

    参考:http://c.biancheng.net/view/2190.html

    • 结合性,就是当一个表达式中出现多个优先级相同的运算符时,先执行哪个运算符:先执行左边的叫左结合性,先执行右边的叫右结合性。

      例如对于表达式对于100 / 25 * 16/*的优先级相同,应该先执行哪一个呢?这个时候就不能只依赖运算符优先级决定了,还要参考运算符的结合性。/*都具有左结合性,因此先执行左边的除法,再执行右边的乘法,最终结果是 64。

      Python 中大部分运算符都具有左结合性,也就是从左到右执行;只有单目运算符(例如 not 逻辑非运算符)、赋值运算符和三目运算符例外,它们具有右结合性,也就是从右向左执行。表 1 中列出了所有 Python 运算符的结合性。

    • 易错示例:

      print(2 ** 3)  # 8
      print(3 / 4)  # 0.75,注意和C区别
      print(3 // 4)  # 0
      print(-3 ** 2)  # -9,这题格外要注意
      print(3 ** -2)  # 0.1111111111111111
      
  3. python 中 is, is not==, != 的区别是什么?

    is, is not==, !=
    比较两个变量的内存地址比较两个变量的值
    比较的两个变量,指向的地址是不可变的类型,两者等价比较的两个变量,指向的地址是可变的类型,两者有区别
    #比较的两个变量,指向的地址是不可变的类型,两者等价
    a = "hello"
    b = "hello"
    print(a is b, a == b)  # True True
    print(a is not b, a != b)  # False False
    
    #比较的两个变量,指向的地址是可变的类型,两者有区别
    a = ["hello"]
    b = ["hello"]
    print(a is b, a == b)  # False True
    print(a is not b, a != b)  # True False
    
  4. python 中包含哪些数据类型?这些数据类型之间如何转换?

    • Python 3中有六个标准数据类型:
      Number(数字)String(字符串)List(列表)Tuple(元组)Set(集合)Dictionary(字典)

    • Python 3 的六个标准数据类型中:
      不可变(3 个):Number(数字)、String(字符串)、Tuple(元组);
      可变(3 个):List(列表)、Dictionary(字典)、Set(集合)

    • 转换为整型 int(x)转换为字符串 str(object='') 转换为浮点型 float(x)

      print(int('520'))  # 520
      print(int(520.52))  # 520
      print(float('520.52'))  # 520.52
      print(float(520))  # 520.0
      print(str(10 + 10))  # 20
      print(str(10.1 + 5.2))  # 15.3
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值