05 条件控制语句

条件判断语句(if语句)

单分支结构:

# Σ(っ °Д °;)っ if可以没有else
if <条件>:<语句块>

*<条件>是一个或多个条件,多个条件间采用not,and和or进行逻辑组合。多个条件之间可以通过小括号进行组合。

*Python语言中,任何非零的数值、非空的数据类型都等价于True;0或空类型等价于False。

执行流程:
  if-else语句在执行时,先对if后的条件表达式进行求值判断
  如果为True,则执行if后的代码块
  如果为False,则执行else后的代码块)

二分支结构

if <条件>:<语句块1>
else:<语句块2>
  • 二分支结构的简单表达(见:04 条件运算符/三元运算符)
<表达式1> if <条件> else <表达式2>

*二分支结构的常见错误: SyntaxError: cannot assign to conditional expression(意思是,表达式写成语句了。)

多分支结构:if-elif-else

if <条件1>:<语句块1>
elif<条件2>:<语句块2>
...
else:<语句块N>

特点:Python会按照多分支结构的代码顺序依次评估判断条件。(*if…elif…else是从上往下,依次判断,顺序不可以乱调!见:03课后作业最后一题。)

执行流程:
  if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
  如果表达式的结果为True,则执行当前代码块,然后语句结束
  如果表达式的结果为False,则继续向下判断,直到找到True为止
  如果所有的表达式都是False,则执行else后的代码块

总结: if…elif…else中只会有一个代码块会执行

代码块:

 代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行
 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
 代码块就是一种为代码分组的机制

input() 函数

• 作用:该函数用来获取用户的输入
• 特点:input()调用后,程序会立即暂停,等待用户输入【阻塞】
  用户输入完内容以后,点击回车程序才会继续向下执行
  用户输入完成以后,其所输入的的内容会以返回值的形式返回。input()函数返回的是字符串。

循环控制

遍历循环 for

  • for遍历循环的使用方式:
for <循环变量> in <遍历结构>:<语句块>
  • 对于字符串,可以遍历每一个字符:
for <循环变量> in <字符串变量>:<语句块>
  • 使用range()函数,指定语句块的循环次数:
for <循环变量> in range(<循环次数>):<语句块>
  • for循环+else:
for <循环变量> in <遍历结构>:<语句块1>
else:<语句块2>

当for循环正常执行之后,程序会继续执行else语句中的内容。∴可以在语句块2中放置评价循环执行情况的语句。

  • for循环嵌套
for i in range(1, 6):for j in range(1, i + 1):print("*", end='')print('\r')

输出结果:

*
**
***
****
*****

无限循环:while

  • while无限循环的使用方式:
while <条件>:<语句块>

循环的三大要素:①初始值,②对于初始值的判断,③初始值的自增长。
*注意i,j自增放的位置。

  • while循环+else:
while <条件>:<语句块1>
else:<语句块2>
  • 循环控制:break 和 continue

break:跳出最内层for或while循环,脱离该循环后程序继续执行循环后续代码。【跳出当次循环,且结束大循环,执行后面的代码】

continue:结束当前当次循环,即跳出循环体下面尚未执行的语句,但不跳出当前循环。【跳过当次循环,接着大循环】
*课堂练习:
i +=1(i的自增)放的位置,导致了当i=3时,进入死循环。

  • while循环嵌套

    举个栗子,花式打印⭐:
    打印5行⭐
i = 0
while i < 5:print('*')i += 1

打印1行,该行5个⭐

i = 0
while i < 5:print('*', end='')i += 1
print()

打印4行⭐,每行⭐数量依次加1

i = 0
while i < 5:  # i控制行数(外循环)j = 0while j < i + 1:  # j控制每行有几个*(内循环)print('*', end='')j += 1print()i += 1
# 打印结果: i         j
# *         0         1
# **        1         2
# ***       2         3
# ****      3         4
# *****     4         5

作业:
第一题:打印九九乘法表

# 第一种 while循环嵌套
i = 1
while i < 10:j = 1while j < i + 1:print('{}×{}={}'.format(j, i, i*j), end=' ')j += 1print()i += 1
# 第二种 for循环嵌套
for i in range(1, 10):for j in range(1, i + 1):print('{}×{}={}'.format(j, i, i * j), end=' ')print()

补充:九九乘法表的逆序。

for i in range(9,0,-1):for j in range(i,0,-1):print(str(i)+"*"+str(j)+"="+str(i*j)+" ",end="")print()

*这里range的第三项参数不能取0,否则会报错:ValueError: range() arg 3 must not be zero

第二题:求1000以内所有的水仙花数
(①水仙花数是指一个 3 位数;②水仙花数的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153))

# 根据水仙花数的定义:num = a*100 + b*10 + c = a**3 + b**3 + c**3
for a in range(0, 10):for b in range(0, 10):for c in range(0, 10):num = a * 100 + b * 10 + cif num == a ** 3 + b ** 3 + c ** 3 and 1 < num < 1000:print(num, end=' ')

第三题:获取用户输入的任意数,判断其是否是质数?
(质数大于等于2,不能被它本身和1以外的数整除。(规定1既不是质数也不是合数))
额,因为质数是无穷个,所以加上限定条件:获取用户输入的任意正整数(1000以内),判断其是否是质数?

import random
n = random.randint(1, 1000)
if n > 1:for i in range(2, n):if (n % i) == 0:print("{}不是质数".format(n))print("{}×{}={},{}和{}是{}的约数。".format(i, n//i, n, i, n//i, n))breakelse:print("{}是质数".format(n))
else:print("{}不是质数。".format(n))

第四题:猜拳游戏:
• 出拳 玩家:手动输入 电脑:随机输入
• 判断输赢: 玩家获胜 电脑获胜 平局

# 剪刀石头布,一局胜负。
# 三局两胜的话,加个while循环。
import random
game = ['剪刀', '石头', '布']
# 游戏背景的碎碎念
print("斯芬克斯这次又找到你,非要和你玩剪刀石头布。一局定胜负!")
print("你要是输了,它就要吃掉你!Σ(っ °Д °;)っ")
# 出拳
print("======猜拳游戏开始!第一阶段:准备出拳!o(* ̄▽ ̄*)ブ======")
player = input("你准备出:")
pc = random.choice(game)
# 游戏结果,可以用or连接各个胜利或者失败的条件。懒得改了……
print("======猜拳游戏开始!第二阶段:看看谁赢了?o(* ̄▽ ̄*)ブ======")
print("石头,剪子,布!你出了“{}”,斯芬克斯出了“{}”".format(player, pc))
if player == pc:print("你们平局,斯芬克斯看看太阳,说“我要回家了,下次接着玩。”")
elif player == '剪刀' and pc == '布':print("你赢了!斯芬克斯哭着说,“我还会回来的!”")
elif player == '剪刀' and pc == '石头':print("你输了。嗷呜!!Σ(っ °Д °;)っ斯芬克斯一口吞掉了你的冰淇淋,并且对你做了一个鬼脸。")
elif player == '石头' and pc == '剪刀':print("你赢了!斯芬克斯哭着说,“我还会回来的!”")
elif player == '石头' and pc == '布':print("你输了。嗷呜!!Σ(っ °Д °;)っ斯芬克斯一口吞掉了你的冰淇淋,并且对你做了一个鬼脸。")
elif player == '布' and pc == '石头':print("你赢了!斯芬克斯哭着说,“我还会回来的!”")
elif player == '布' and pc == '剪刀':print("你输了。嗷呜!!Σ(っ °Д °;)っ斯芬克斯一口吞掉了你的冰淇淋,并且对你做了一个鬼脸。")
# 我决定不给你再出拳的机费!
else:print("斯芬克斯不知道你出了个啥,觉得你很无趣,就跑走了。")

运行结果:



【20212121】Python基础 05条件控制语句相关推荐

  1. latex中if语句怎么用_如果 (If) | Python 中的条件控制语句详解

    点击上方"可乐python说"关注公众号,点击右上角 "..."选择"设为星标"第一时间获取最新分享! 前言 Hi,大家好,我是可乐,生活中 ...

  2. 在 if...elif...else 的多个语句块中只会执行一个语句块?_如果 (If) | Python 中的条件控制语句详解...

    点击上方"可乐python说"关注公众号,点击右上角 "..."选择"设为星标"第一时间获取最新分享! 前言 Hi,大家好,我是可乐,生活中 ...

  3. Python基础之条件判断

    Python基础之条件判断 一.环境介绍 二.条件判断介绍 三.if语句的使用 1.if的第一种使用方法 2.if的第二种使用方法 3.if的第三种使用方法 4.if的第四种使用方法 四.if判断的运 ...

  4. python基础05

    python基础05 昨日内容回顾及作业讲解 列表:增  append  insert  extend 删 remove pop clear del 改  li[索引] = '被修改的内容'  li ...

  5. 带你学python基础:条件控制if与循环语句while、for 以及range函数

    一.什么是条件控制 条件控制用生活中的一个例子来说就是:当你去买车时,会有好多品牌,这个时候我们就需要做出选择,到底需要买哪个品牌的车,而在编程中,条件控制就是为了帮你做选择的. 用专业点的话来说,条 ...

  6. python跳出if条件_带你学python基础:条件控制if与循环语句while、for 以及range函数...

    一.什么是条件控制 条件控制用生活中的一个例子来说就是:当你去买车时,会有好多品牌,这个时候我们就需要做出选择,到底需要买哪个品牌的车,而在编程中,条件控制就是为了帮你做选择的. 用专业点的话来说,条 ...

  7. python基础(条件及循环)

    条件及循环语句 条件判断:if语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. if 判断条件:执行语句--else:执行语句-- ** 开始有缩 ...

  8. python基础之条件循环语句

    前两篇说的是数据类型和数据运算,本篇来讲讲条件语句和循环语句. 0x00. 条件语句 条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语 ...

  9. 第四篇:python基础之条件和循环

    阅读目录 一.if语句 1.1 功能 1.2 语法 1.2.1:单分支,单重条件判断 1.2.2:单分支,多重条件判断 1.2.3:if+else 1.2.4:多分支if+elif+else 1.2. ...

最新文章

  1. Java多线程- 线程池的基本使用和执行流程分析 - ThreadPoolExecutor
  2. 深度学习中的图像分割:方法和应用、特点
  3. 自组织映射网络(SOM)如何解决TSP问题
  4. movsb movsw movsd 指令详解
  5. Spark编程指南(Python版)
  6. centos7添加运行终端快键键
  7. CNI:容器网络接口详解
  8. bootstrap在iframe框架中实现由子页面在顶级页面打开模态框(modal)
  9. myeclipse打包java文件_MyEclipse将Java项目打包成jar文件的三种方法
  10. NYOJ 1077 【博弈+大整数取模】
  11. 内燃机附件和部件行业调研报告 - 市场现状分析与发展前景预测
  12. python 3.6中使用open函数遇见的问题
  13. typescript之nodejs开发
  14. js代码错误监控代码
  15. C++学生信息管理系统2.0
  16. iOS开发-Xcode8兼容iOS7手记
  17. 计算机科学与技术 未来,浅析计算机科学与技术的未来发展趋势
  18. 暗黑管理系列:发红包的管理杠杆率和量级作用
  19. 论《计算机网络技术》与素质教育
  20. C#设置WebBrowser默认浏览器

热门文章

  1. PMP就是个垃圾证书,YES or NO
  2. 硅谷一万清华人,为何打不过印度人?
  3. django 实现统一登录(未完待续)
  4. ServU漏洞利用靶场-单兵作战
  5. SAS学习笔记(四)第8/9/10章
  6. 大时代势不可挡_使IT项目经理势不可挡的12种软技能
  7. ORACLE表有逻辑坏块时EXPDP导出报错排查
  8. 计算机键盘银音乐,从键盘到键盘 ——一名音乐生到计算机老师的华丽转型
  9. htc sensation软解锁、获取root权限、解网络锁
  10. 常用工具网址(去重,排序,转换)