本章内容概要

1.逻辑运算符补充

2.循环结构

本章内容详解

1.逻辑运算符补充

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

2.循环结构

什么是循环结构?

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

2.1 循环结构这while循环

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

流程图

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

例1:

while True:
username = input("username>>:")
password = input("password>>:")
if username == 'zhang' and password == '123':
print("成功")
else:
print("失败")
# 条件为True 无限循环

2.2 whlie+break

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

例2:

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

例3:

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

流程图

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

while True:
print('我是外层的循环')
while True:
print('我是内层的循环')
break
break

2.3 whlie+continue

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

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

流程图

2.4 whlie+else

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

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

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

2.5 死循环与全局标志位

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

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

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

while True:
print(123)
while True:
print(321)
while True:
print(222)
break
break
break
flag = True
while flag:
print(123)
while flag:
print(321)
while flag:
print(222)
flag = False
# 两种运行结果都相同

作业

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

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

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

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

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

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

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

# 1. 先写最多执行三次
# 2. 判断是否已经执行三次
count = 1
while count < 4:
age = input("请输入猜测年龄:")
if age == '18':
print("恭喜您答正确")
break
else:
print("回答错误,请再次尝试")
count += 1
if count > 3:
print("是否继续尝试")
again = input("填y继续答题,填q结束答题:")
if again == 'y':
count = 1
else:
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. Java语言学习day35--8月10日

    今日内容介绍1.集合2.Iterator迭代器3.增强for循环4.泛型 ###01集合使用的回顾 *A:集合使用的回顾 *a.ArrayList集合存储5个int类型元素 public static ...

  2. 【LeetCode】49. 字母异位词分组

    49. 字母异位词分组 知识点:字符串:哈希表 题目描述 给你一个字符串数组,请你将 字母异位词 组合在一起.可以按任意顺序返回结果列表. 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源 ...

  3. 2021.12.09 [HEOI2016/TJOI2016]排序(线段树+二分,把一个序列转换为01串)

    2021.12.09 [HEOI2016/TJOI2016]排序(线段树+二分,把一个序列转换为01串) https://www.luogu.com.cn/problem/P2824 题意: 在 20 ...

  4. 2021.07.19 P2294 狡猾的商人(差分约束)

    2021.07.19 P2294 狡猾的商人(差分约束) [P2294 HNOI2005]狡猾的商人 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.差分约束最长路与最短 ...

  5. Android C/C++层hook和java层hook原理以及比较

    作者:Denny Qiao(乔喜铭),云智慧/架构师. 云智慧集团成立于2009年,是全栈智能业务运维解决方案服务商.经过多年自主研发,公司形成了从IT运维.电力运维到IoT运维的产业布局,覆盖ITO ...

  6. PostgreSQL 数据库备份脚本

    PostgreSQL 数据库备份脚本 #!/bin/bash # PG家目录(/opt/postgresql/pg96/) PG_HOME=${PGHOME} # pg数据库连接信息 PG_HOST= ...

  7. Envoy熔断限流实践(一)基于Rainbond插件实现熔断

    Envoy 可以作为 Sevice Mesh 微服务框架中的代理实现方案,Rainbond 内置的微服务框架同样基于 Envoy 实现.本文所描述的熔断实践基于 Rainbond 特有的插件机制实现. ...

  8. VOC数据集可视化

    from gettext import find import os from xml.etree import ElementTree as ET import cv2 def drawBoxOnV ...

  9. CesiumJS 2022^ 原理[5] - 着色器相关的封装设计

    目录 1. 对 WebGL 接口的封装 1.1. 缓冲对象封装 1.2. 纹理与采样参数封装 1.3. 着色器封装 1.4. 上下文对象与渲染通道 1.5. 统一值(uniform)封装 1.6. 渲 ...

  10. 零基础学Java第五节(面向对象一)

    本篇文章是<零基础学Java>专栏的第五篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 本文章首发于公众号[编程攻略] 类与对象 在哲学体系中,可以分为主 ...