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)
☆☆☆☆☆☆☆☆

"""
单循环练习 示例代码

posted on 2020-01-02 15:48  tengq  阅读(242)  评论(0编辑  收藏  举报

导航