本章内容概要

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. Codeforces Round #742 (Div. 2) B. MEXor Mixup

    题目链接 Problem - B - Codeforces 题意: 给出MEX 和 XOR(分别表示1. 本串数不存在的最小非负数  2. 本串数所有数异或后的结果) 求出这串数最少有几个数, 1 ≤ ...

  2. JQuery学习基础

    ## 今日内容     1. JQuery 基础:         1. 概念         2. 快速入门         3. JQuery对象和JS对象区别与转换         4. 选择器 ...

  3. Java Windows下读取注册表的工具类

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  4. javascript中的Ajax基础(一)

    一.手写一个ajax 1 const xhr = new xmlHttpRequest() 2 3 xhr.open(请求方式:post get, 请求地址, 同步或者异步) 4 5 xhr.onre ...

  5. 《手把手教你》系列基础篇(九十一)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-下篇(详解教程)

    1.简介 为了方便查看和归档:(1)不同包的日志可能要放到不同的文件中,如service层和dao层的日志:(2)不同日志级别:调试.信息.警告和错误等也要分文件输出.所以宏哥今天主要介绍和分享的是: ...

  6. 3.3 常用Linux命令

    1.pwd命令 pwd命令用于显示用户当前所处的工作目录 2.cd命令 cd命令用于切换当前的工作路径,英文全称为"change directory",语法格式为"cd ...

  7. vscode 开发项目, Prettier ESLint的配置全攻略(基础篇)

    我们在做项目尤其是多人合作开发的时候经常会因为不同的开发规范和代码风格导致出现冲突, 为了能统一代码风格和规范我们需要使用到prettier和eslint,接下来就一vscode编辑器为例详细讲解下: ...

  8. 利用QEMU+GDB搭建Linux内核调试环境

    前言 对用户态进程,利用gdb调试代码是很方便的手段.而对于内核态的问题,可以利用crash等工具基于coredump文件进行调试. 其实我们也可以利用一些手段对Linux内核代码进行gdb调试,qe ...

  9. 【kubernetes 问题排查】使用 kubeadm 部署时遇到的问题

    引言 再使用kubeadm部署集群时会多少遇到一些问题,这里做下记录,方便后面查找问题时有方向,同时也为刚要入坑的你指明下方向,让你少走点弯路 问题汇总 The connection to the s ...

  10. Spring (IOC)配置

    就是这个东西,里面的不同标签,所代表的不同含义 beans  里面有很多的bean  ,每一个bean都是容器里面的一个对象 1.别名alias  (另外的一个名字) XML <alias na ...