【python与数据分析】CH4 选择结构与循环结构

目录

前言

一、条件表达式

1.概述

2.关系运算符

3.逻辑运算符

二、选择结构

1.概述

2.单分支选择结构

(1)格式

(2)【例4-1】编写程序,输入使用空格分隔的两个整数,然后按升序输出

 3.双分支选择结构

(1)格式

(2)【例4-2】(鸡兔同笼问题)已知鸡兔总数(jitu)和腿的总数(tui),求鸡、兔各多少

(3)

 4.多分支选择结构

(1)格式

(2)【例4-3】使用多分支选择结构将成绩从百分制变换到等级制

5.选择结构的嵌套

(1)格式(缩进必须要正确并且一致)

(2)【例4-4】使用嵌套选择结构将成绩从百分制变换到等级制

 三、循环结构

1.概述

2.for循环和while循环

(1)格式

(2)【例4-5】编写程序,输出1~100之间能被7整除但不能同时被5整除的所有整数。(循环与选择同时使用)

(3)【例4-6】编写程序,打印九九乘法表

3.break和continue语句

(1)介绍

(2)【例4-7】编写程序,计算小于100的最大素数

四、综合案例解析

1.【例4-8】

2.【例4-9】编写程序,判断今天是今年的第几天

3.【例4-10】编写代码,输出由星号*组成的菱形图案并且能控制图案的大小

4.【例4-11】快速判断一个数是否为素数

5.【例4-12】

6.【例4-13】编写程序,输入一个自然数n,然后计算并输出前n个自然数的阶乘之和1!+2!+3!+……+n!的值

7.【例4-14】编写代码,模拟决赛现场最终成绩的计算过程。有至少三个评委,打分规则为删除最高分和最低分之后计算剩余分数的平均分。

8.【例4-15】编写程序。实现人机对站的尼姆游戏


前言

  • 理解条件表达式与True/False的等价关系
  • 熟练运用常见选择结构
  • 熟练运用for循环和while循环
  • 理解带else子句的循环结构执行过程
  • 理解break和continue语句在循环中的作用

一、条件表达式

1.概述

  • 绝大多数合法的Python表达式都可以作为条件表达式
  • 选择和循环结构中,条件表达式的值只要不是False、0(或0.0、0j等)、空值None、空列表、空元组、空集合、空字典、空字符串、空range对象或其他空迭代对象,python解释器均认为与True等价
>>> if 666:    #使用整数作为条件表达式
...     print(9)
... 
...     
9
>>> a=[3,2,1]
>>> if a:    #使用列表作为条件表达式
...     print(a)
... 
...     
[3, 2, 1]
>>> a=[]
>>> if a:    #空列表等价于False
...     print(a)
... else:
...     print('empty')
... 
...     
empty
>>> i=s=0
>>> while i<=10:    #使用关系表达式作为条件表达式
...     s+=i
...     i+=1
... 
...     
>>> print(s)
55
>>> i=s=0
>>> while True:    #使用常量True作为条件表达式
...     s+=i
...     i+=1
...     if i>10:    #符合特定条件时使用break语句推出循环
...         break
... 
...     
>>> print(s)
55
>>> s=0
>>> for i in range(0,11,1):    #遍历序列元素
...     s+=i
... 
...     
>>> print(s)
55

2.关系运算符

  • python中关系运算符可以连续使用,这样不仅可以减少代码量,也比较符合人类的思维方式
>>> print(1<2<3)
True
>>> print(1<2>3)
False
>>> print(1<3>2)
True
  • 在python语法中,条件表达式中不允许使用赋值运算符“=”,避免了误将关系运算符“==”写作赋值运算符“=”带来的麻烦。在条件表达式中使用赋值运算符“=”将抛出异常,提示语法错误
>>> if a=3:
...     
SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?
>>> if (a=3) and (b=4):
...     
SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?

3.逻辑运算符

  • 逻辑运算符and、or、not分别表示逻辑与、逻辑或、逻辑非。对于and而言,必须两侧的表达式都等价于True,整个表达式才等价于True
  • 对于or而言,只要两侧的表达式中有一个等价于True,整个表达式就等价于True;对于not而言,如果后面的表达式等价于False,整个表达式就等价于False
  • 逻辑运算符and和or具有短路求值或惰性求值的特点,可能不会对所有表达式进行求值,而是只计算必须计算的表达式的值
>>> 3 and 5    #整个表达式的值是最后一个计算的子表达式的值
5
>>> 3 or 5
3
>>> 0 and 5
0
>>> 0 or 5
5
>>> not [1,2,3]    #非空列表等价于True
False
>>> not {}    #空字典等价于False
True

二、选择结构

1.概述

  • 常见的选择结构单分支选择结构、双分支选择结构、多分支选择结构以及嵌套的分支结构,也可以构造跳转表来实现类似的逻辑
  • 循环结构和异常处理结构中也可以带有“else”子句,可以看作是特殊形式的选择结构
  • 何时使用选择结构呢?完成一件事(目标)有多于一种的方法(途径)或多于一个结果(状况)等

2.单分支选择结构

(1)格式

if 表达式:

        语句块

 (2)【例4-1】编写程序,输入使用空格分隔的两个整数,然后按升序输出

>>> x=input('Input two numbers:')
Input two numbers:23 76
>>> a,b=map(int,x.split())    #序列解包赋值
>>> if a>b:
...     a,b=b,a    #序列解包,交换两个变量的值(升序)
... 
...     
>>> print(a,b)
23 76

 3.双分支选择结构

(1)格式

if 表达式:

        语句1

else:

        语句2

 (2)【例4-2】(鸡兔同笼问题)已知鸡兔总数(jitu)和腿的总数(tui),求鸡、兔各多少

>>> jitu,tui=map(int,input('请输入鸡兔总数和腿总数:').split())    #用空格分开输入的2个数(先转换成整数)
请输入鸡兔总数和腿总数:10 40
>>> tu=(tui-jitu*2)/2
>>> if int(tu)==tu:
...     print('鸡:{0},兔:{1}'.format(int(jitu-tu),int(tu)))
... else:
...     print('数据不正确,无解')
... 
...     
鸡:0,兔:10

(3)

  • python还提供了一个三元运算符,并且在三元运算符构成的表达式中还可以嵌套三元运算符,可以实现与选择结构相似的效果。语法为:

value1 if condition else value2        #当作一个表达式来用

  • 当条件表达式condition的值与True等价时,表达式的值为value1,否则表达式的值为value2
>>> b=6 if 5>13 else 9    #赋值运算符优先级非常低
>>> b
9

 4.多分支选择结构

(1)格式

if 表达式1:

        语句块1

elif 表达式2:

        语句块2

elif 表达式3:

        语句块3

else:

        语句块4

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值