zoukankan      html  css  js  c++  java
  • 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)
    ☆☆☆☆☆☆☆☆
    
    """
    单循环练习 示例代码
  • 相关阅读:
    hdu2328 Corporate Identity
    hdu1238 Substrings
    hdu4300 Clairewd’s message
    hdu3336 Count the string
    hdu2597 Simpsons’ Hidden Talents
    poj3080 Blue Jeans
    poj2752 Seek the Name, Seek the Fame
    poj2406 Power Strings
    hust1010 The Minimum Length
    hdu1358 Period
  • 原文地址:https://www.cnblogs.com/reachos/p/12133378.html
Copyright © 2011-2022 走看看