本章内容概要

1.逻辑运算符补充

2.循环结构

本章内容详解

1.逻辑运算符补充

  1. 两边都不为0的情况 or 直接取前面的值 and 直接取后面的值
    如果存在0的情况 and 直接取0 or 直接取非0
  1. print( 1 == 2 and 3) # False
  2. print(10 > 3 and 100) # 100
  3. print(1 == 1 and 2 == 2) # True
  4. print(1 == 1 and False) # False
  5. print(True and 1 == 1) # True
  6. print(1 and 10) # 10
  7. print(0 and 2) # 0
  8. print(0 and 2 and 1) # 0
  9. print(1 == 1 or 111) # True
  10. print(1 or 10 > 20) # 1
  11. print(10 or 100) # 10
  12. print(0 and 2 or 1) # 1
  13. print(0 and 2 or 1 or 4) # 1
  14. print(0 or False and 1) # False
  15. print(0 and 1 or 2 or 3 and 4) # 2
  16. print(0 and 1 or 2 and 3 or 4) # 3
  1. print(1 == 2) # False
  2. # 连接的条件 如果不是一个具体的值 则需要自动转换成布尔值
  3. print(10 > 3 and 100) # 100
    '''
    由于and前面的运算得出的布尔值是True 所以and连接的条件最终的结果取决于后面的
  4. 如果后面的值是明确的数据值 那么直接返回该数据值(数据值对应的布尔值必须是True)
  5. and和or连接的多个条件在返回具体结果的时候可能是布尔值也可能是数据值
  6. 我们在日常写代码的时候不需要纠结具体返回的是什么 直接当成布尔值处理
    '''

2.循环结构

什么是循环结构?

循环结构就是重复执行末段代码块。

2.1 循环结构这while循环

  1. while 判断条件:
  2. 执行的子代码
  3. 执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true
  4. 当判断条件假 false 时,循环结束。

流程图

1.先判断while后面的条件是否成立 如果成立则执行子代码
2.子代码运行完毕之后 再次回到while后面的条件判断处 判断条件是否成立
3.如果成立则继续运行子代码 完毕后再次判断while后面的条件是否成立
4.依次往复 直到条件不成立才会结束

例1:

  1. while True:
  2. username = input("username>>:")
  3. password = input("password>>:")
  4. if username == 'zhang' and password == '123':
  5. print("成功")
  6. else:
  7. print("失败")
    # 条件为True 无限循环

2.2 whlie+break

结束循环体的方式
1.自己写结束条件 利用while后面的条件判断
2.在循环体代码中添加关键字强制结束

例2:

  1. count = 1
  2. while count < 4:
  3. print(count)
  4. count += 1
    # 有循环条件 count < 4,所以输出的结果只有 1,2,3

例3:

  1. while True:
  2. username = input("username>>:")
  3. password = input("password>>:")
  4. if username == 'zhang' and password == '123':
  5. print("成功")
  6. break
  7. else:
  8. print("失败")
    # 输入正确用户和密码 break强制结束

流程图

验证一个break只能结束它所在那一层的循环体代码

  1. while True:
  2. print('我是外层的循环')
  3. while True:
  4. print('我是内层的循环')
  5. break
  6. break

2.3 whlie+continue

continue 代表着结束本次循环,直接进入下一次循环

例4;
  1. count = 1
  2. while count < 11:
  3. if count == 7:
  4. # 让count自增1
  5. count += 1
  6. # 跳过本次循环 直接开始下一次循环
  7. continue
  8. print(count)
  9. count += 1

流程图

2.4 whlie+else

在while循环的后面,我们可以跟else语句,当while 循环正常执行完并且中间没有被break 中止的话,就会执行else后面的语句

  1. count = 1
  2. while count < 5:
  3. print(count)
  4. count += 1
  5. else:
  6. print('循环体按照提前定义好的条件正常结束 则会执行')

  1. count = 1
  2. while count < 5:
  3. print(count)
  4. if count == 3:
  5. break
  6. count += 1
  7. else:
  8. print('循环体按照提前定义好的条件正常结束 则会执行')

2.5 死循环与全局标志位

死循环,计算死循环 不允许出现 有问题,有等待时间 允许出现 没有问题

  1. 1.死循环
  2. count = 10
  3. while True:
  4. count *= 10 # 计算死循环 不允许出现 有问题
  5.  
  6. while True:
  7. name = input('name>>>:') # 有等待时间 允许出现 没有问题

全局标志位,运用在循环嵌套中,把break省写

  1. while True:
  2. print(123)
  3. while True:
  4. print(321)
  5. while True:
  6. print(222)
  7. break
  8. break
  9. break
  1. flag = True
  2. while flag:
  3. print(123)
  4. while flag:
  5. print(321)
  6. while flag:
  7. print(222)
  8. flag = False
    # 两种运行结果都相同

作业

1.准确说出下列判断的结果(不要执行代码)

  1. v1 = 1 or 3 # 1
  2. v2 = 1 and 3 # 3
  3. v3 = 0 and 2 and 1 #0
  4. v4 = 0 and 2 or 1 # 1
  5. v5 = 0 and 2 or 1 or 4 # 1
  6. v6 = 0 or False and 1 # False

2.编写一个用户登录程序
用户如果登录失败 则只能尝试三次
用户如果登录成功 则直接结束程序

  1. # 定义初始次数 1 写循环语句 < 4 只能执行三次 输出写在循环里 if判断 用户密码正确结束 错误 count + 1 在循环
  2. count = 1
  3. while count < 4:
  4. username = input("username>>:")
  5. password = input("password>>:")
  6. if username == "zhang" and password == "123":
  7. print("登录成功")
  8. break
  9. else:
  10. print("用户名或密码错误")
  11. count += 1

3.编写一个用户登录程序
用户如果登录失败 可以无限制尝试
用户如果登录成功 则进入内层循环 获取用户输入的指令 并打印该指令
eg: 用户输入cmd指令 则程序打印'正在执行您的指令:cmd'
给用户提供一个退出命令 用户一旦输入则退出这个程序
eg: 用户输入q指令 则程序先打印该指令再结束

  1. # 1.写登录,成功结束,失败无限尝试
  2. # 2.进入内循环 q 结束
  3. count = True
  4. while count:
  5. username = input("username>>:")
  6. password = input("password>>:")
  7. if username == 'zhang' and password == '123':
  8. print("登录成功")
  9. while count:
  10. order = input("请输入指令:")
  11. info = "正在执行您的指令:%s"
  12. print(info % order)
  13. if order == 'q':
  14. break
  15. break
  16. else:
  17. print("用户名或密码错误")

4.编写猜年龄的游戏(拔高练习 尝试编写)
用户有三次猜测的机会 如果用完则提示用户是否继续尝试
用户输入y则继续给三次机会 如果用户输入q则直接结束程序

  1. # 1. 先写最多执行三次
  2. # 2. 判断是否已经执行三次
  3. count = 1
  4. while count < 4:
  5. age = input("请输入猜测年龄:")
  6. if age == '18':
  7. print("恭喜您答正确")
  8. break
  9. else:
  10. print("回答错误,请再次尝试")
  11. count += 1
  12. if count > 3:
  13. print("是否继续尝试")
  14. again = input("填y继续答题,填q结束答题:")
  15. if again == 'y':
  16. count = 1
  17. else:
  18. break

【python基础】第07回 运算符和流程控制 2的更多相关文章

  1. 【python基础】第06回 运算符和流程控制 1

    本章内容概要 1.运算符 2.流程控制 本章内容详解 1.运算符 什么是运算符? 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算.例如:2+3,其操作数是2和3,而运算符则是" ...

  2. 『Python基础』第6节:流程控制之while循环

    在生活中经常遇到循环的事情, 比如循环列表播放歌曲等. 在Python中, 也有循环, 就是其流程控制语句while. 1. 基本循环 while 条件: 循环体 # 如果条件为真, 那么就执行循环体 ...

  3. Python基础一(格式化输出、流程控制)

    (1)格式化输出(%% 第一个% 转译) # 格式化 输入 输出 name = input("Name:") age = input("Age:") job = ...

  4. python基础02—运算符与流程控制

    运算符与流程控制 运算符 赋值运算 用'='表示,'='的左边只能是变量 算术运算 +.-.*:加.减.乘 /:除法运算,运算结果为浮点数 //:除法运算,运算结果为整数(商) %:求余 **:求幂 ...

  5. Linux基础-shell脚本知识整理和脚本编写----------变量、运算符、流程控制、函数、计划任务(发送邮件)

    I:知识整理:变量.运算符.流程控制.函数.计划任务 变量 系统变量:set:显示所有变量                env:环境变量 常用系统变量: path pwd lang home his ...

  6. Python基础篇(格式化输出,运算符,编码):

    Python基础篇(格式化输出,运算符,编码): 格式化输出: 格式:print ( " 内容%s" %(变量)) 字符类型: %s  替换字符串      %d 替换整体数字  ...

  7. 第二十二节:Java语言基础-详细讲解位运算符与流程控制语句

    位运算符(二进制位运算) 运算符 运算 例子 << 左移 3 << 2 = 12 --> 3 * 2 * 2 =12 >> 右移 3 >> 1 = ...

  8. python 运算符与流程控制

    运算符与流程控制 运算符 赋值运算 用'='表示,'='的左边只能是变量 算术运算 +.-.*:加.减.乘 /:除法运算,运算结果为浮点数 //:除法运算,运算结果为整数(商) %:求余 **:求幂 ...

  9. 格式化输出的三种方式,运算符及流程控制之if判断

    ''' 格式化输出的三种方式,运算符及流程控制之if判断 ''' # 格式化输出的三种方式 # 一.占位符 程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式 比如要求用户输入用户名和年龄 ...

随机推荐

  1. [python][flask] Jinja 模板入门

    Flask 和 Django 附带了强大的 Jinja 模板语言. 对于之前没有接触过模板语言的人来说,这类语言基本上就是包含一些变量,当准备渲染呈现 HTML 时,它们会被实际的值替换. 这些变量放 ...

  2. 计算机编码规则之:Base64编码

    目录 简介 Base64和它的编码原理 Base64的变体 Base64的编码细节 总结 简介 我们知道计算机中的文件可以分为两种,一种是人肉眼可读的文本类文件,一种是肉眼不可读的二进制文件.一般来说 ...

  3. 图数据库|正反向边的最终一致性——TOSS 介绍

    本文首发于 Nebula Graph Community 公众号 Nebula Graph v2.6 当中比较重要的特性之一便是 TOSS.通过本文,我将带你全方位了解 TOSS 为何物. 从一条 G ...

  4. .Net中字符串不变性与相等判断的特殊场景

    今天写bug的时候帮同事解决了一个有趣的问题,可能很多人都会答错.分享给大家. 问题 请看以下例子,并回答问题. var s1 = "12"; var s2 = "12& ...

  5. 一文读懂原子操作、内存屏障、锁(偏向锁、轻量级锁、重量级锁、自旋锁)、Disruptor、Go Context之上半部分

    我不想卷,我是被逼的 在做了几年前端之后,发现互联网行情比想象的差,不如赶紧学点后端知识,被裁之后也可接个私活不至于饿死.学习两周Go,如盲人摸象般不知重点,那么重点谁知道呢?肯定是使用Go的后端工程 ...

  6. rabbitmq 安装延时队列插件rabbitmq-delayed-message-exchange

    1.下载rabbitmq-delayed-message-exchange(注意版本对应) 链接:https://github.com/rabbitmq/rabbitmq-delayed-messag ...

  7. ReadWriteLock 接口详解

    ReadWriteLock 接口详解 这是本人阅读ReadWriteLock接口源码的注释后,写出的一篇知识分享博客 读写锁的成分是什么? 读锁 Lock readLock(); 只要没有写锁,读锁可 ...

  8. PXE实现无人值守批量安装服务器

    今天我们使用PXE+Kickstart+TFTP+DHCP+FTP实现无人值守安装服务器. 一.无人值守所需服务介绍: 1)PXE PXE,远程引导技术 功能:使计算机通过网络启动 硬件要求:客户端的 ...

  9. Linux服务器安全加固10条建议

    以下是服务器安全加固的步骤,本文以腾讯云的CentOS7.7版本为例来介绍,如果你使用的是秘钥登录服务器1-5步骤可以跳过. 设置复杂密码 服务器设置大写.小写.特殊字符.数字组成的12-16位的复杂 ...

  10. asp.net swagger的使用

    最近要从其他系统获取一些数据,准备写个接口让别人把数据塞进来,顺便学习一下如何使用Swagger. 参考大神的教程:asp.net  https://mp.weixin.qq.com/s/SHNNQo ...