python学习day3

假装没事ソ 提交于 2019-11-28 06:19:05

今日课程概述:

  运算符:

    位运算符

    转义符

  数据转化的方法

    int()

    float()

    bool()

    str() --- 将数据转化为字符串类型

    list() --- 将其他序列转化为列表类型

    tuple()--- 将其他序列转化为元组类型

    set ()  --- 将其他序列转化为集合类型

    dict(双层序列 或者 key=value)--- 将数据转化为字典类型

    

    获取某个字符对应的十进制数据

    将十进制数据转化为某个字符

    获取指定整数的二进制格式
    获取指定整数的八进制格式
    获取指定整数的十六进制格式

    range方法的使用
    生成一个连续的序列
    设置开始与结束 生成连续的数值序列
    随机模块的使用
    random
    获取一些随机的数据
    流程控制语句
    顺序语句
    分支语句
    循环语句

 

1.位运算符【以8位为例】

  针对二进制来进行运算

  数据计算是采用的二进制的补码的状态

  

  规则:将1视作True     0视作False

 

  按位与  &

    两个数据二进制(八位)数据  上下对应运算   一假则全假  上下位有一个为0   这一位结果就为0

      6 & 7

      0000 0110

      0000 0111

      -------------

      0000 0110  -------> 6

  按位或   |

    两个数据二进制(八位)数据  上下对应运算   一真则全真  上下位有一个为1   这一位结果就为1

      6 | 7

      0000 0110

      0000 0111

      -------------

      0000 0111  -------> 7

  按位异或  ^

    两个二进制数据 上下位对应进行运算 相同为假 不同为真,上下位一样结果为0 不一样为1

      6 ^ 7

      0000 0110

      0000 0111

      --------------

      00000001 ------->  7

      总结:

        一个数与相同的数异或两次  结果是其本身   ------->  可以用于简单加密

        还可以用于两个变量值的交换

      1 ^ 7

      0000 0001

      0000 0111

      -------------

      0000 0110  ---------> 6

          例:

          交换两个变量的值:

          x = 19
          y = 21
              -----> x = 21 y = 19
          Python中交换两个变量的值及其简单
            x , y = y, x [记住]
          借助异或交换两个变量的值
          x = x ^ y # x = 19 ^ 21
          y = x ^ y # 19 ^ 21 ^ 21 = 19
          x = x ^ y # 19^ 21 ^ 19 = 21
          其他语言中交换两个变量的值 借助第三方变量
          x = y #x = 21
          y = x # y = 21
          #声明一个变量 接受其中一个变量的数据 保存该数据
          z = x # z = 19
          x = y # x = 21
          y = z # y = 19

          参照与数学中的距离差 距离和
          x = 19
          y = 21

          x = x + y #x = 19 + 21
          y = x - y # 19 + 21 - 21 = 19
          x = x - y # 19 + 21 - 19 = 21

  按位取反  ~

    将二进制上的每一位   0变1  1变0

      ~7

      0000 0111

      ~

      --------------

      1111 1000(这里为补码)--->反码:1111 0111  ---->  原码:1000 1000  ----> -8

  按位左移

    <<

    将二进制数据 向左的方向移动对应的位数 右边空出补 0

    2 << 3

       0000 0010

       0 0010000 -----> 0001 0000  =  16

    1 << 3

      0000 0001

         0 0001000 ----> 0000 1000 =  8

    3 << 3

      0000 0011

         0 0011000 ----> 0001 1000 = 24

    数据 * 2 ** 移动的位数    (2 * 2 ** 3)= 16

  按位右移

    >>

    将二进制数据 向右的方向移动对应的位数 左边空出正数补0,负数补1

    48 >> 2

    0011 0000

     0000 1100--->  12

    -32  >> 2

    1010 0000 (原码)  

    1101 1111 (反码)

    1110 0000  (补码)

     1111 1000 ---->(反码)1111 0111 ---->  (原码) 1000 1000 = -8

      总结:  数据 // (2 ** 移动的位数)

  

2.转义符

  \  ---  将其后的某些指定的字母 转化成其他含义

  \n --- 换行     (若果想保持n的本意  \\n)

  \r --- 回车

  \t --- 制表符  (Tab键的作用)

  \f --- 换页符

  字符串中如果设置的是路径  windows路径的分割线 \

 

s = "C:\\Documents\\讲课内容\\BJ_Python1908\\day03\\note"print(s)'''用r来标记字符串  可以保持路径中\的本意 不再具有转义符的含义'''s = r"C:\Documents\讲课内容\BJ_Python1908\day03\note"print(s)

 

  

 

  运算符优先级的问题

    ** --- 优先等级最高

    - + ~ ----> 按位取反 正负号的优先等级次之 -10 +10
    * / // %
    + - ----> 加减法
    >> <<
    &
    | ^
    > < >= <=
    ==, !=
    =, += -= *= /= //= %= **=
    is is not
    in not in
    not and or

    注意:记不住的话 使用小括号提高优先等级

 

3.数据转化

  1.获取某个字符对应的十进制数据

    ord(字符)

  2.获取十进制数据对应的字符

    chr(十进制数据)

  3.将指定数据(整数)转化为二进制数据

    bin(数据) ---->  字符串格式的二进制

  4.将指定数据(整数)转化为八进制数据

    oct(数据) ---> 字符串格式的八进制

  5.将指定数据(整数)转化为十六进制

    hex(数据) ---> 字符串格式的十六进制

  6.将数据转化为字符串格式

    str(数据) --- > 将数据转化为字符串格式

      例: str([12,13,15])===> "[12,13,15]"

 

 

ch = input("请输入一个字符:")
v = ord(ch)#只能接受长度为1的字符串,否则报错,将指定字符串转化为十进制数据
print(v)

# 获取十进制数据对应字符
ch = chr(119)
print(ch)

#获取二进制数据
res = bin(10)
print(res,type(res))

#获取八进制数据
res = otc(0b101011011)
print(res,type(res))

#获取十六进制数据
res = hex(0b1011010101010111101)
print(res,type(res))

s = 10
s1 = "a"

res = s1 + str(s)
print(res)

 

 

 

 

 

4.range方法的使用  

   range是根据设置的数据起始值 与   结束值  生成一系列整数

  生成的是整数序列 --- 是一个range类型的数据 看不到序列中到底有什么数据

  所以一般情况下  想看序列中方的数据  需要对其进行转换 -- 一般情况下转换为列表

    1.range(stop)---

      从0开始 步长为1 到stop - 1结束

      用区间表示[0,stop]

    2.range(start,stop,step)

      step可以省略 表示的步长 默认为1

      从start的开始 按照补偿step依次递增 到 stop结束

 

nums = range(10)
print(nums)#range(0, 10)

v = list(nums)
print(v)#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

n = list(range(1,10))
print(n)#[1, 2, 3, 4, 5, 6, 7, 8, 9]

n1 = list(range(1,10,2))#[1, 3, 5, 7, 9]
print(n1)

n2 = list(range(10,1,-2))
print(n2)#[10, 8, 6, 4, 2]

 

 

 

5.随机模块

  random             (接下来的序列可以使用range)

    choice(序列) ---->  在序列中随机选择一个元素

    random() ---> 在 0 与 1 之间随机生成一个小数

    randint(start ,stop) 在[start ,stop]之间任意选取一个数据

    randrange(start ,stop,step)

      在以start开始  步长为step 到stop -1 依次递增 / 递减的序列中随机选择一个整数

    sample(序列 , 个数)在指定的序列中随机选择不重复的指定个数的元素,将获取元素存放于列表中

      

 

 

import random

v = random.choice("abcdefghijklmnopqrstuvwxyz")#在指定数据中随机选择一个元素
print(v)

v1 = random.choice(range(1,101))
print(v1)

v2 = random.random()#在0-10之间随机生成一个小数,包含0,不包含1

v3 = random.randint(100,500)#在100-500之间任意选取一个整数

#randrange(start, stop, step)
v4 = random.randrange(10,50)#在10-49之间随机选择一个整数

v5 = random.randrange(10,0,-2)#10 8 6 4 2

v6 = random.sample(range(1,101),5)#在指定的序列中选择不重复的指定个数的元素,将获取的元素放到列表中

 

 

 

    

 

    string字符串模块

      ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz'

      ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

      asscii_letters = ascii_lowercase + ascii_uppercase

      digits = '0123456789'

 

 

import string

print("所有英文字母:",string.ascii_letters)

print("所有的数字:",string.digits)

 

 

 

 

 

6.流程控制语句

  1.语句:独立的一个体系,自成语法

  编程语言中语句结束的标志是  ;--->分号

    例:

      

print(123);print(456);print(789)

 

 

 

      以上的代码以分号隔开,在Python中也可以执行,不会报错

      Python中语句结束时也可以使用分号分割, 默认不写

      如果一行中存在多条语句 必须使用分号将语句分割 --- 建议一条语句占一行

  2.顺序语句

    表示的代码执行的执行过程 :从上往下执行的

  3.分支语句

    --- 判断语句 if

    什么情况下使用分支语句

      出现多种情况分析时,就是用分支语句

    

    if语句有三种格式:
      1.if单语句
        一个情况的分析
        格式:
          if 条件判断表达式:
            [tab缩进]执行语句
        解读:
          当条件判断表达式成立时 执行对应的语句 if语句结束 继续向下执行与if平级的语句
        如果不成立 if语句直接结束 向下执行与if平级的语句
        案例:
          验证数据是否是偶数:
          偶数的特点: 能被2整除 ====> 这个数除以2余数为0
          num % 2 == 0
          2.if-else语句
          两种情况的分析
            格式:
              if 条件表达式:
            语句1
              else:
            语句2
              解读:
          当条件表达式成立的时候 执行的是if包含的语句 if-else语句结束 向下继续执行
        否则执行的是else包含的语句 if-else语句结束 向下继续执行
        案例:
          验证年是否是闰年:
          条件: 1. 能被4整除 但是不能被100整除
             2.能被400整除
            1和2之间是或者的关系

           获取字符对应的十进制数据 -- ord

          需求:
            键盘录入一个字符:
          如果该字符是小写英文字母 将其转化为大写英文字母输出
          否则输出字符本身

     三元运算符:
       结果变量 = 条件表达式 and 表达式1 or 表达式2
        有bug bug是0 --- 肯定就不能再用了

        求两个数的最大值 0 和 1
        用if-else组成的另外一种三元运算符的格式:
        结果变量 = 表达式1 if 条件表达式 else 表达式2
    3.if-elif-else
      多种情况的分析
        if 条件表达式1:
          语句1
          elif 条件表达式2:
          语句2
            ...
          elif 条件表达式n:
          语句n
          else:
          语句 n+1

          elif ---> else if --->否则如果

          当条件表达式有一个成立的时候 就不会再出现否则情况了 整个if语句结束

        案例:
          键盘录入一个成绩
            >=90 A
            90>x>=80 B
            80>x>=70 C
            70>x>=60 D
            其他 E
        语句的嵌套:
          在需求中 满足某种的要求下 还需要在进行其他的判定 可以使用语句嵌套
        案例:
          获取指定月的天数
            1 3 5 7 8 10 12 ---> 31
            4 6 9 11 ----> 30
            2
            闰年 29天
            平年 28天

   3.循环语句

    

    循环 --- 周而复始的重复做某件事

    周而复始没有停止 --- 死循环
    需要循环次数的限制
      确定次数 或者 满足某种需求 就结束了
    Python提供了两种循环机制:
      while循环 和 for循环

      for --- 用于遍历序列 --- 完成次数限制
      while -- 满足需求的限制

    

    while循环:
      两种格式:
        1.while循环
          格式:
        while 条件表达式:
                重复做的事情
          解读:
          当条件表达式成立 执行重复操作的事情 一直到条件表达式不成立 循环结束 继续向下执行与while平级的语句
            案例:
          向Python打10遍招呼
          2.while-else
            格式:
          while 条件表达式:
                  重复执行的行为
          else:
            当且仅当条件表达式不成立的时候
          break中断 是不会走else的
        3.break
          只作用于循环 结束当前所在的循环
        4.死循环
          while 1:
            语句
            或者
        while True:
            语句
 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!