您的位置:首页 > 编程语言 > Python开发

Python基础:运算符与分支结构

2019-02-28 19:27 483 查看

运算符与分支结构

运算符

  • 赋值运算符

    用'='表示,'='左边只能是变量。

  • 算术运算符

      +、-、*:加、减、乘

    • /:除法运算,结果为浮点数

    • //:除法运算,结构为整数

    • %:求余

    • **:求幂,也可以使用函数

      pow

  • 复合运算符

      +=、-=、*=、/=、//=、%=、**=

    • 示例:

      a += 3
      等价于
      a = a + 3

  • 关系运算符

      >、>=、<、<=、==、!=

    • 关系表达式:由操作数和关系运算符构成的表达式

    • 关系表达式是有值的:符合数学逻辑为真(True),不符合数学逻辑为假(False)

  • 逻辑运算符

      与(and):两边的表达式同时为真,结果才为真

    • 或(or):两边的表达式一个为真,结果就为真

    • 非(not):用于取反表达式的,真变假,假变真

      使用not是为了简化书写

    • 经常伴随着隐式类型转换

  • 成员运算符

      in、not in:判断一个值是否是另一个对象的成员

    • 说明:通常用在字符串、列表、元组、集合、字典等的成员判断

    • 示例:

    [code]# 成员运算
    lt = [1, 2, 3]
    print(1 in lt)
    print(4 not in lt)
    d = {'name': 'dahua'}
    # 对于字典,判断的是键
    print('name' in d)

     

  • 位运算符

      &
      :按位与,对应的数据位同时为1,结果上对应的位才为1

    • |
      :按位或,对应的数据位一个为1,结果上对应的位就为1

    • ^
      :按位异或,对应的数据位不同结果为1,相同结果为0

    • ~
      :按位取反,数据的每一位,0变1,1变0

    • <<
      :按位左移,左移一位相当于乘以2

    • >>
      :按位右移,右移一位相当于除以2

  • 优先级与结合性

      语法中的运算符的优先级与结合性比较杂乱,即使记住了也非常容易忘记。

    • 建议:使用时不用刻意记录运算符的优先级与结合性,当需要明确指定时添加括号即可。

    流程控制

    • 说明:

      按照程序的执行流程,程序刻意分为三种结构:顺序结构、分支结构、循环结构

    • 顺序结构:代码按照从上到下依次执行,没有语法

    • 代码层次:python中不是通过大括号体现的,而是通过缩进体现的

  • 分支结构(if-else)

      格式1:适合于解决生活中的条件执行问题

    [code]if 表达式:
    语句块

    执行流程:当程序执行到if语句时,首先判断表达式的真假。若表达式的值为真,则执行缩进的语句块;若表达式的值为假,则跳过语句块执行后面的内容。

    • 格式2:适合于解决生活中的非此即彼的问题

    [code]if 表达式:
    语句块1
    else:
    语句块2

    执行流程:当程序执行到if-else语句时,首先判断表达式的真假。若表达式的值为真,则执行语句块1;若表达式的值为假,则执行语句块2。

    • 格式3:适合于解决生活中的多种选择的问题

    [code]if 表达式1:
    语句块1
    elif 表达式2:
    语句块2
    ...
    else:
    语句块
    1. elif的个数没有限制

    2. else可以省略

    3. 所有的语句块最多只能执行一个

    ASCII

    • 说明:美国信息交换标准代码,就是用一个数字表示一个字符

    • 示例:

      [code]# 根据字符获取ASCII
      print(ord('A'))
      ​
      # 将ASCII转换为字符
      print(chr(65))

    列表操作

    • 示例:

      [code]lt1 = [1, 2, 3]
      lt2 = [4, 5, 6]
      ​
      print(lt1 + lt2)
      print(lt1 * 2)
      print(lt1[1:-1])
      print(len(lt1))
      ​
      lt = [1, 2, 3, 4, 5]
      ​
      # 获取元素
      print(lt[0])
      ​
      # 修改元素
      lt[0] = 100
      ​
      # 追加:在列表的末尾添加,作为整体添加
      lt.append(200)
      lt.append([6, 7])
      # 扩充:将序列中的元素一个一个添加到列表
      lt.extend([300, 400])
      ​
      # 插入:在指定的位置添加元素
      lt.insert(2, 250)
      ​
      # 删除:根据下标删除
      del lt[0]
      # 根据元素进行删除
      lt.remove(250)
      # 弹出并删除,会返回元素,
      # 默认删除最后一个元素,可以指定下标
      ele = lt.pop(4)
      print(ele)
      ​
      # 根据元素查第一次出现的下标
      print(lt.index(4))
      ​
      # 统计元素出现的次数
      print(lt.count(2))
      ​
      # 逆序
      lt.reverse()
      ​
      lt = [1, 5, 7, 3, 2]
      ​
      # 排序:默认是升序,reverse=True会降序排序
      lt.sort(reverse=True)
      ​
      # 清空元素
      lt.clear()
      ​
      print(lt)

       

    元组操作

    • 提示:参考列表操作学习元组操作。

    集合操作

    • 示例:

      [code]s = {'炎生', '王鹏', '丙南', '昆鹏', '王鹏'}
      ​
      # 添加元素
      s.add('飞虎')
      ​
      # 删除元素
      s.remove('昆鹏')
      # 若集合中不存在此元素则会报KeyError错
      # s.remove('狗蛋')
      ​
      # 存在则删除,不存在也不报错
      s.discard('狗蛋')
      ​
      # 随机弹出一个元素
      print(s.pop())
      ​
      # 清空元素
      s.clear()
      ​
      print(s)
      ​
      s1 = {'小马', '小乔', '小敏'}
      s2 = {'小王', '小乔', '小敏'}
      ​
      # 并集
      print(s1.union(s2))
      ​
      # 交集
      print(s1.intersection(s2))
      # 求交集,并用交集更新原集合
      # s1.intersection_update(s2)
      # print(s1)
      ​
      # 差集
      print(s1.difference(s2))
      # s1.difference_update(s2)
      # print(s1)
      ​
      # 判断是否没有交集
      print(s1.isdisjoint(s2))
      # 判断是否是另一集合的子集
      print(s1.issubset(s2))
      # 判断是否是另一集合的超集/父集
      print(s1.issuperset(s2))
      [code]练习:
    • 从终端获取一个年份,判断是否是闰年,是就打印'xxx年是闰年',不是就打印'xxx年不是闰年'

    • 输入两个整数,打印较大值

    • 输入三个整数,按照从小到大的顺序打印

    • 输入一个三位数,顺序打印个位、十位、百位上的数

    • 输入一个整数,判断是否既能被3整除,又能被7整除

    • 输入一个字符,是大写转换为小写,是小写转换为大写,其它字符原样输出

  • 内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: