博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
while 循环、格式化输出、运算符
阅读量:5211 次
发布时间:2019-06-14

本文共 2567 字,大约阅读时间需要 8 分钟。

while 循环

结构:while 条件:    循环语句

死循环

while True:    没有break语句情况下

终止循环

一、 改变条件 (标志位的概念):一般默认使用flag来作为标志位。

flag = Truenum = 0while flag:    print(num)    num = num + 1    if num < 10:        flag = False

二、 break 终止循环:跳出它所在的循环体。

num = 0while True:    print(num)    num = num + 1    if num < 10:        break

计算 1 + 2 + 3 ....100 的结果(三种方式)

1
result = 0count = 1while True:    result += count    count += 1    if count == 101:        breakprint(result)
2
result = 0count = 1while count < 101:    result += count    count += 1print(result)
3
result = 0count = 1flag = Truewhile flag:    result += count    count += 1    if count == 101:        flag = Falseprint(result)

continue: 结束本次循环,继续下一次循环。

while True:    print(111)    print(222)    continue    print(333)

结果是

111222111222...

while-else结构:如果while循环被break打断,则不执行else代码。

count = 1while count < 5:    print(count)    count = count + 1    if count == 3: breakelse:    print(666)print(222)

结果是

12222

应用场景:

  • 验证用户名密码,重新输入这个功能需要while循环。
  • 无限次的显示页面,无限次的输入......

格式化输出

  • 制作一个模板,某些位置的参数是动态的,像这样,就需要用格式化输出。
  • 字符串的动态替换
name = input('请输入姓名:')age = int(input('请输入年龄:'))sex = input('请输入性别:')

% 占位符 s 数据类型为字符串 d 数字

第一种方式:

msg = '你的名字是%s,你的年龄%d,你的性别%s' % (name,age,sex)print(msg)

第二种方式

msg = '你的名字是%(name1)s,你的年龄%(age1)d,你的性别%(sex1)s' % {'name1':name,'age1':age,'sex1':sex}print(msg)

bug 点 在格式化输出中,只想单纯的表示一个%时,应该用%% 表示

msg = '我叫%s,今年%d,我的学习进度1%%' % ('alex',28)print(msg)

运算符

==  比较的两边的值是否相等= 赋值运算!= 不等于+= 举例: count = count + 1  简写 count += 1-=*=     : count = count * 5   简写 count *= 5/=**=//=...

逻辑运算符:and or not

优先级:()> not > and > or

第一种情况,前后条件为比较运算

print(1 < 2 or 3 > 1)print(1 < 2 and 3 > 4)print(1 < 2 and 3 > 4 or 8 < 6 and 9 > 5 or 7 > 2)print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8)print(1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6)

第二种情况,前后两边的条件为数值

'''x or y if x is True,return x'''print(1 or 2)print(1 and 2)print(5 or 2)print(5 and 2)print(0 or 2)print(-1 or 2)

int与bool之间的转换

  • 0 对应的bool值为False,非0 都是True.
  • True 1 ,False 0
print(bool(100))print(bool(-1))print(bool(0))print(int(True))print(int(False))

变态面试题:思考

print(1 > 2 or 3 and 4 < 6)print(2 or 3 and 4 < 6)

答案为:

True2如果 x or y 语句中x为真,即为x,否则为y    真 or 真 --> x    真 or 假 --> x    假 or 真 --> y    假 or 假 --> y>>> 3 or 43>>> 3 or 03>>> 0 or 33>>> '' or 00如果 x and y 语句中x为假,即为x,否则为y    真 and 真 --> y    真 and 假 --> y    假 and 假 --> x    假 and 真 --> x
深层次理解:由于or的特性是只要一个为真就判定为真,即判断x为真后,不用再来判断y。若x为假后才会判定y,所以是结果为y。   这样的话程序就能以最小的步数来执行并得到结果。由于and的特性是只要一个为假就判定为假,即判断x为假后,不用再来判断y。若x为真后才会判定y,所以是结果为y。  这样的话程序就能以最小的步数来执行并得到结果。

and&or

转载于:https://www.cnblogs.com/lanhoo/p/9416389.html

你可能感兴趣的文章
ETL
查看>>
Tomcat源码分析(六)--日志记录器和国际化
查看>>
今天把csdn的博客搬家到博客园
查看>>
D3.js+Es6+webpack构建人物关系图(力导向图),动态更新数据,点击增加节点,拖拽增加连线......
查看>>
基于网络的 Red Hat 无人值守安装
查看>>
Mybatis第六篇【配置文件和映射文件再解读、占位符、主键生成与获取、Mapper代理】...
查看>>
MySQL学习笔记(二):MySQL数据类型汇总及选择参考
查看>>
jQ 移动端返回顶部代码整理
查看>>
博客园界面美化
查看>>
sql查询远程数据库的表的数据并填充到本地数据库的表
查看>>
YII缓存依赖的应用
查看>>
决策树在机器学习的理论学习与实践
查看>>
Biee 11g权限详解
查看>>
minggw 安装
查看>>
Jquery操作cookie,实现简单的记住用户名的操作
查看>>
[BZOJ1196][HNOI2006]公路修建问题 二分答案+最小生成树
查看>>
PHP基础入门(二)
查看>>
[Luogu P3119] [USACO15JAN]草鉴定Grass Cownoisseur (缩点+图上DP)
查看>>
【原创】大数据基础之Zookeeper(4)应用场景
查看>>
18款在线代码片段测试工具
查看>>