# (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 == "":
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)
☆☆☆☆☆☆☆☆ """

单循环练习 示例代码

最新文章

  1. docker——容器安装tomcat
  2. 1、利用蓝牙定位及姿态识别实现一个智能篮球场套件(一)——用重写CC2541透传模块做成智能手环
  3. 【转载】VS2012的打包方法
  4. 在 ASP.NET MVC 中使用 HTTPS (SSL/TLS) -- 学习
  5. ISO语言代码
  6. Greenplum 数据库安装部署(生产环境)
  7. Android-SQLite版本问题
  8. unity, 读写xls
  9. C#引用类型详细剖析(转)
  10. Sass 编译的几种方法
  11. BZOJ 1492: [NOI2007]货币兑换Cash [CDQ分治 斜率优化DP]
  12. iOS开发——下载器的功能基本实现
  13. 3.3.4 配置Tomcat的&lt;Context&gt;元素 (转)
  14. 在openjdk8下看Unsafe源码
  15. git push每次提交都要输入用户名的解决方案
  16. C Programming Style 总结
  17. 变量安全过滤,防止xss攻击
  18. BOM-JavaScript浏览器的对象模型
  19. [转]window下使用SetUnhandledExceptionFilter捕获让程序的崩溃
  20. iOS UI基础-2.0按钮操作与形变

热门文章

  1. 关于and 和or的执行优先级问题分析
  2. B: 最小代价
  3. Python爬取51job实例
  4. 学习笔记(14)- SQuAD的数据格式
  5. notepad++一次去掉所有空行,然后加上2个空行
  6. px(像素)、pt(点)、ppi、dpi、dp、sp之间的关系
  7. web前端面试第一次[javascript函数和方法的区别]
  8. Entity Framework Migrations 数据迁移
  9. 「APIO2012」派遣
  10. UniGUI之提示信息MessageDlg及获得信息Prompt(15)