• day04-Python运维开发基础(位运算、代码块、流程控制)


    # (7)位运算符:    & | ^ << >> ~
    var1 = 19
    var2 = 15
    
    
    # & 按位与
    res = var1 & var2
    """
    000 ... 10011
    000 ... 01111
    000 ... 00011
    => 3
    """
    print(res)
    
    # | 按位或
    res = var1 | var2
    print(res)
    """
    000 ... 10011
    000 ... 01111
    000 ... 11111
    31
    """
    
    # ^ 按位异或 (两个值不一样,返回真,否则返回假)
    res = var1 ^ var2
    print(res)
    """
    000 ... 10011
    000 ... 01111
    000 ... 11100
    """
    
    # << 左移
    res = 5 << 2 # 5 乘以 2的2次幂
    res = 5 << 4 # 5 乘以 2的4次幂
    print(res)
    """
    000 ... 101
    000 ..10100
    """
    
    # >> 右移
    res = 5 >> 1 # 5 除以 2的1次幂
    res = 5 >> 2 # 5 除以 2的2次幂
    print(res)
    """
    000 ... 101
    000 ... 010
    """
    
    # ~ 按位非 (每一位取反,包含符号位)  结果:-(n+1)
    var = ~19
    print(var)
    """
    原码:000 ... 10011
    反码:000 ... 10011
    补码:000 ... 10011
    
    # 对补码进行按位非操作 
    000 ... 10011
    111 ... 01100
    
    给补码求原码
    111 ... 01100
    
    
    补码:111 ... 01100
    反码:100 ... 10011
    原码:100 ... 10100
    -20
    """
    
    
    """
    总结:
        所有运算符中 ** 的优先级最高的
        所有运算符中 = 赋值运算符优先级最低
        
        整体 一元运算符 > 二元运算符优先级
        一元运算符: 同一时间,操作一个数字的 [-,~]
        二元运算符: 同一时间,操作二个数字的 [+,*,/]
        
        () > not > and > or
        乘除 > 加减
        ( << >> ) > & > ^ > |
        
        算数运算符 > 位运算符 >  比较运算符 > 身份运算符 > 成员运算符 > 逻辑运算符
        赋值运算符 是 把等号右边的表达式计算完毕之后,在赋值给等号左侧;用来收尾的
    """
    
    res = 5+5 << 6//3 is 40 and True
    """
    10 << 2 is 40 and True
    40 is 40 and True
    True and True => True
    """
    res = (5+5) << (6//3) is 40 and True
    print(res)
    位运算 示例代码
    # ### 代码块 : 以冒号作为开始,用缩进来划分相同的作用域,整体是一个代码块
    """作用域:作用的范围"""
    
    if 5 == 5:
        print(111)
        print(222)
    
    
    if 5 == 6:
        print(333)
        print(444)
    print(555)
    
    # 注意点: 具有相同的缩进 要么全是4个空格,要么全是一个缩进,要保持一致
    # IndentationError
    if 5 == 5:
        print(666)
        print(777)
        
        
    # (了解内容 php js java ... )
    if(5==5){
    print(112)
        print(344)
                                                                                print(545454)
    }
    代码块 示例代码
    # ### 流程控制
    """
    流程: 代码执行的过程
    流程控制:对代码执行过程的一种管控
    
    流程控制的三大结构:
        (1) 顺序结构 : 默认代码从上到下依次执行
        (2) 分支结构 : 四种
        (3) 循环结构 : for .. in  /  while 
    
    分支结构:
        (1) 单项分支
        (2) 双项分支
        (3) 多项分支
        (4) 巢状分支
    """
    
    # 单项分支
    """
    if 条件表达式:
        code1
        code2
        code3
        ...
    如果 条件表达式 成立,返回真 执行其中的代码块
    """
    
    lishiyun = "仙女"
    
    if lishiyun == "仙女":
        print("我会给它买好吃的")
        print("我会给它买好喝的")
        print("我会给它买好玩的")
    
    # 双项分支 (二选一)
    """
    if 条件表达式:
        code1
        code2
        code3
        ...
    else:
        code1
        code2
        code3
        ...
        
    如果条件表达式 成立 执行if代码块
    如果条件表达式 不成立 执行else代码块
    
    if代码块 => 真区间
    else代码块 => 假区间
    """
    
    zhongzanlin = "屌丝"
    zhongzanlin = "高富帅"
    if zhongzanlin == "高富帅":
        print("它将拥有跑车")
        print("它将拥有豪宅")
        print("它将拥有美女")
    else:
        print("吃窝窝头")
        print("喝凉水")
        print("睡墙角")
    
    # input提示用户输入字符串,结果是字符串 
    # res = input("请输入您的姓名:")
    # print(res)
    
    '''
        提示用户输入用户名和密码:
        如果用户名是admin , 并且密码是000 , 
        提示用户恭喜你,登陆成功
        否则提示用户名或密码错误
    '''
    username = input("请输入您的用户名:")
    password = input("请输入您的密码:")
    
    if username == "admin" and password == "000":
        print("恭喜你,登陆成功")
    else:
        print("用户名或密码错误")
    流程控制 示例代码
    # ### 多项分支 (多选一)
    """
    if 条件表达式1:
        code1
        code2
    elif 条件表达式2:
        code1
        code2
    elif 条件表达式3:
        code1
        code2
    ...
    else:
        code1
        code2
        
    如果条件表达式1成立 ,执行对应1号里面的代码块,否则向下执行
    如果条件表达式2成立 ,执行对应2号里面的代码块,否则向下执行
    如果条件表达式3成立 ,执行对应3号里面的代码块,否则向下执行
    ...
    如果都不成立
    最后执行else 里面的代码块
    
    elif : 0个 或者 多个
    else : 0个 或者 1个
    """
    
    
    youqian = True
    youfang = True
    youche = False
    youyanzhi = False
    youtili = False
    
    
    if youqian == True:
        print("我要嫁给你1")
    elif youfang == True:
        print("我要嫁给你2")
    elif youche == True:
        print("我要嫁给你3")
    elif youyanzhi == True:
        print("我要嫁给你4")
    elif youtili == True:
        print("我要嫁给你5")
    else:
        print("你是个好人")
    
    print("<=====>")
    # ### 巢状分支 (单项分支 双项分支 多项分支的互相嵌套)
    if youqian == True:
        if youfang == True:
            if youche == True:
                if youyanzhi == True:
                    if youtili == True:
                        print("我嫁给你了脑弟")
                    else:
                        print("你补点大腰子,六味地黄丸")
                else:
                    print("去韩国整整容")
    else:
        print("出门左拐是二路汽车,我给你车费.")
            
                
    #出题 height
    #女生找对象
        # 男生在1米~1.5米之间 小强 你在哪里?
        # 男生在1.5~1.7米之间 没有安全感~
        # 男生 1.7~ 1.8米之间 帅哥 留个电话
        # 男生 1.8~2米之间 帅哥 你建议多一个女朋友吗
    
    # python 特有写法
    """
    height = float( input("请输入您的身高:") )
    
    if 1 <= height < 1.5:
        print("小强 你在哪里?")
    elif 1.5 <= height < 1.7:
        print("没有安全感~")
    elif 1.7 <= height < 1.8:
        print("帅哥 留个电话")
    elif 1.8 <= height <= 2:
        print("你建议多一个女朋友吗")
    else:
        print("你的选项不存在")
    """
    # 通用写法
    height = float( input("请输入您的身高:") )
    
    if height >= 1 and height < 1.5:
        print("小强 你在哪里?")
    elif height>=1.5 and height < 1.7:
        print("没有安全感~")
    elif height    >= 1.7 and height < 1.8:
        print("帅哥 留个电话")
    elif height >=1.8 and height <=2 :
        print("你建议多一个女朋友吗")
    else:
        print("你的选项不存在")
    多项分支_巢状 示例代码
    # ### 循环结构 while
    """
    while 条件表达式:
        code1
        code2
        
    当条件表达式成立True,就执行while循环体中的代码内容
    """
    
    # 打印1~100所有的数据
    # (1)初始化变量i
    i = 1
    # (2)循环的条件
    while i<=100:
        
        # (4) 写上要执行的逻辑
        print(i)
    
        #(3) 自增自减的值 
        i += 1 # i = i+1
    
    
    """
    # 代码解析:
    # 第一次循环
    i = 1  i<=100 真的,条件成立, 执行循环里面的代码块 print(1) i+=1  i=>2
    # 第二次循环
    i = 2  i<=100 真的,条件成立, 执行循环里面的代码块 print(2) i+=1  i=>3
    # 第三次循环
    i = 3  i<=100 真的,条件成立, 执行循环里面的代码块 print(3) i+=1  i=>4
    
    ...
    ...
    
    i = 101  i<=100 假的,条件不成立,循环终止
    """
    # 注意:死循环
    """
    while True:
        print(1)
    """    
    
    # 计算1~100的累加和?
    """
    total += 1
    total += 2
    total += 3
    total += 4
    total += 5
    
    total = 1+2+3+4+5+ ...... 
    """
    
    # 方法一
    i = 1
    total = 0
    while i<=100:
        # 自定义的逻辑写在这
        # print(i)
        total += i
        i+=1
    print(total)
    
    """
    i = 1 1<=100 条件成立  total += i total += 1 => total = total + 1 => total = 0 + 1  i+=1 => i=2
    i = 2 2<=100 条件成立  total += i total += 2 => total = total + 2 => total = 0 + 1 + 2   i+=1 => i=3
    i = 3 3<=100 条件成立  total += i total += 3 => total = total + 3 => total = 0 + 1 + 2 + 3   i+=1 => i=4
    ....
    i = 100  100 <= 100 条件成立 total = 0 + 1 + 2 + 3 + 4 + 5 + ... + 100
    当i = 101 101 <= 100 条件不满足  循环终止
    
    到此为止 : 打印total = 5050
    """
    
    print("<===================>")
    # 方法二
    sign = True
    i = 1
    total = 0
    while sign:
        total+=i
        i+=1
        
        # 从100 加到 101 ,证明累加结束, 直接让sign = False 终止循环;
        if i == 101:
            sign = False
        
    print(total)
    循环结构 示例代码
    # ### 单循环练习
    
    # 1.打印 一行十个小星星
    """help 查看帮助文档"""
    """
    help(print)
    print("*",end="")
    print("*",end="")
    print("*",end="")
    print("*",end="")
    print("*",end="")
    print("*",end="")
    print("*",end="")
    print("*",end="")
    print("*",end="")
    print("*",end="")
    """
    i = 0
    while i<10:
        print("*",end="")
        i+=1
    
    print("<=============>")
    # 2.用一个变量打印出一行十个小星星
    """
    # 拼接字符串
    var1 = "我爱你"
    var2 = "亲爱的姑娘"
    res = var1 + var2
    print(res)
    
    var1 = "我爱你"
    var1 += "亲爱的祖国" # var1 = var1 + "亲爱的祖国"
    print(var1)
    
    """
    
    i = 0
    strvar = ""
    while i<10:
        # 编辑的代码写在这
        # print("*",end="")
        strvar += "*"
        i+=1
    print(strvar)
    
    
    # 3.打印一行十个小星星 奇数个打印★ 偶数个打印☆
    # 方法一
    i = 0
    while i<10:
        # 写上自定义的逻辑
        if i % 2 == 0:    
            print("",end="")        
        else:
            print("",end="")
        i+=1
    
    print("<====>")
    # 方法二
    i = 0
    strvar = ""
    while i<10:
        if i % 2 == 0:
            strvar += ""
        else:
            strvar += ""
        i+=1
    print(strvar)    
    """
    # strvar = "★☆★☆★☆★☆★☆"
    # 第一次 i = 0  i % 2 == 0 条件成立
    strvar += "★"  i+=1  => i = 1
    # 第二次 i = 1  i % 2 == 0 条件不成立
    strvar += "☆"  i+=1  => i = 2
    ...
    以此类推,循环十次,拼接十个小星星;
    """
    
    # 4.一个循环,打印十行十列小星星
    """
    **********
    **********
    **********
    **********
    **********
    **********
    **********
    **********
    **********
    **********
    """
    
    """
    0123456789
    **********
    10 11 12 13 14 15 16 17 18 19
    *  *  *  *  *  *  *  *  *  *
    20 21 22 23 24 25 26 27 28 29
    *  *  *  *  *  *  *  *  *  *
    39 49 59 69 79 89 99 ... 代表的是第十颗星星 ,应该打印换行
    **********************************************************************
    """
    i = 0
    while i<100:
        # 打印星星
        print("*",end="")
        
        # 当余数是9的时候,代表的是第十颗星星
        if i % 10 == 9:
            # 打印换行
            print()
        
        i+=1
    
    """
    0 % 2 0
    1 % 2 1
    2 % 2 0
    3 % 2 1
    
    0 % 3 0
    1 % 3 1
    2 % 3 2
    3 % 3 0
    4 % 3 1
    5 % 3 2
    6 % 3 0
    
    任意数和n进行取余 ,余数的范围是 0 ~ n-1
    
    """
    
    
    # 5.一个循环 打印十行十列隔列变色小星星
    """
    ★☆★☆★☆★☆★☆
    ★☆★☆★☆★☆★☆
    ★☆★☆★☆★☆★☆
    ★☆★☆★☆★☆★☆
    ★☆★☆★☆★☆★☆
    ★☆★☆★☆★☆★☆
    ★☆★☆★☆★☆★☆
    ★☆★☆★☆★☆★☆
    ★☆★☆★☆★☆★☆
    ★☆★☆★☆★☆★☆
    """
    
    i = 0
    while i<100:
        # 打印星星
        # print("*",end="")
        if i % 2 == 0:
            print("",end="")
        else:
            print("",end="")
            
        
        # 当余数是9的时候,代表的是第十颗星星
        if i % 10 == 9:
            # 打印换行
            print()
        
        i+=1
    
    
    
    # 6.一个循环 打印十行十列隔行变色小星星
    """
    ★★★★★★★★★★
    ☆☆☆☆☆☆☆☆☆☆
    ★★★★★★★★★★
    ☆☆☆☆☆☆☆☆☆☆
    ★★★★★★★★★★
    ☆☆☆☆☆☆☆☆☆☆
    ★★★★★★★★★★
    ☆☆☆☆☆☆☆☆☆☆
    ★★★★★★★★★★
    ☆☆☆☆☆☆☆☆☆☆
    """
    
    """
    任意数和n进行地板除,会出现n个相同的数字
    
    0 // 3   0
    1 // 3   0
    2 // 3   0
    3 // 3   1
    ...
    
    
    0 // 10  0
    1 // 10  0
    2 // 10  0
    ...
    9 // 10  0
    有10个相同数字 0
    
    10 // 10 1
    11 // 10 1
    12 // 10 1
    ...
    19 // 10 1
    有10个相同数字 1
    
    20 // 10 2
    21 // 10 2
    22 // 10 2
    ...
    29 // 10 2
    有10个相同数字 2
    
    30 // 10 3
    31 // 10 3
    32 // 10 3
    ...
    39 // 10 3
    有10个相同数字 3
    
    ...
    90 // 10 9
    91 // 10 9
    92 // 10 9
    ....
    99 // 10 9
    """
    
    print("<==========>")
    i = 0
    while i<100:
        # 打印星星 0 ~ 9 10 ~ 19
        if i // 10 % 2 == 0:
            print("",end="")
        else:
            print("",end="")    
    
        
        # 当余数是9的时候,代表的是第十颗星星
        if i % 10 == 9:
            # 打印换行
            print()
        
        i+=1
    
    """
    # 0~9
    ★★★★★★★★★★
    # 10 ~ 19
    ☆☆☆☆☆☆☆☆☆☆
    # 20 ~ 29
    ★★★★★★★★★★
    # 30 ~ 39
    ☆☆☆☆☆☆☆☆☆☆
    ....
    ☆☆☆☆☆☆☆☆☆☆
    
    
    0 ~ 9 // 10 => 0 (10个0) 
    ★★★★★★★★
    10 ~ 19 // 10 => 1 (10个1)
    ☆☆☆☆☆☆☆☆
    
    """
    单循环练习 示例代码
  • 相关阅读:
    mini linux制作
    samba
    文件链接
    bz1234513
    shell中if判断语句
    文件系统层次结构
    ssh免密码登陆
    shell基础
    参考__Web前端大全
    参考__综合类网站大全
  • 原文地址:https://www.cnblogs.com/reachos/p/12133378.html
Copyright © 2020-2023  润新知