第七课提纲

一、条件表达式

关系运算符

> <

逻辑运算符

与或非

二、选择结构

单分支

双分支结构

if与else的双分支结构

三元运算符的分支语句

多分支选择结构

选择嵌套结构

三、循环结构

for 与 while 循环

应用举例

break 与continue

四、案例分析

循环while的应用

计算平均分

分支if的应用

计算一年的第几天

快速筛选素数

一、条件表达式

1.关系运算符

>>> print(1<2>3)False>>> print(1<3>2)True>>> if a=3:   #条件表达式不允许使用赋值运算符SyntaxError: invalid syntax>>> 1>2>xxx  #上下文不存在xxxFalse>>>

2.逻辑运算符

与关系运算符类似,逻辑运算符and和or具有短路求值或惰性求值的特点,可能不会对所有的表达式进行求值,而是只计算必须计算的表达式的值。以and为例,对于表达式“表达式1 and表达式2”来说,如果表达式1的值为false,则不论表达式2是什么,都不会被计算。在设计包含多个条件的条件表达式时,如果能够大概预测不同条件失败的概率,并将多个条件根据and和or运算符的短路求值特性来组织顺序,可以提高程序运行效率。

>>> 3 and 55>>> 3 or 53>>> 0 and 50>>> not 3False>>> not 0True

下面的函数使用指定的分隔符把多个字符串连接成一个字符串,如果用户没有指定分隔符则使用逗号。

图1 逻辑运算符or的使用

输出结果为:

'1:2:3:4:5'

二、选择结构

1.单分支

单分支的表达式注意冒号和四个空格的缩进:

#if 表达式:#语句
>>> x=input('please input two numbers:')please input two numbers:2 6>>> a,b=map(int,x.split())>>> if a>b:a,b=b,a>>> print(a,b)2 6

在python中,代码的缩进非常重要,缩进是体现代码逻辑关系的重要方式,同一个代码块必须保证相同的缩进量。在实际的开发中,只要遵循一定的约定,python代码的排版是可以降低要求的。例如下面,虽然不建议这样写,但是也是可以执行的:

>>> if 3>2:print('ok')#语句较短,可以直接卸载分支语句的后面ok>>> if True:print(3);print(5)#在一行写多个语句,使用分号分隔35

2.双分支结构

①if与else的双分支结构

语法为:

#if 表达式:#语句1#else:#语句2

图2 鸡兔同笼问题

>>>请输入鸡兔总数和腿的总数:5 16鸡:2,兔:3>>> ================================ RESTART ================================>>>请输入鸡兔总数和腿的总数:4 16鸡:0,兔:4>>> ================================ RESTART ================================>>>请输入鸡兔总数和腿的总数:5 17数据不正确,无解>>>

【知识点8】 ②  三元运算符的分支语句

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

#Value1 if condition else value2当条件表达式condition为true时,则执行value1否则执行value2.>>> a=5>>> print(6) if a>3 else print(5)6>>> print(6 if a>3 else 5)6>>> b=6 if a>13 else 9>>> b9

图3 三元运算符的应用

3.多分支选择结构

语法表示为:

#if 表达式1:#语句1#elif表达式2:#语句2#elif表达式3:#语句3#…#Else:#语句n
def func(score):    if score >100 or score<0:        return 'wrong score.must between 0 and 100.'    elif score >=90:        return 'A'    elif score>=80:        return 'B'    elif score >=70:        return 'C'    elif score >=60:        return 'D'    else:        return 'E'

4.选择嵌套结构

语句如下

#if 表达式1:#语句1#if 表达式2:#语句2#else:#语句3#else:#if 表达式4:#语句4

还是前面的百分之转换等级abcde的代码,可以如下编写:

def func(score):    degree='DCBAAE'    if score>100 or score<0:        return 'wrong score.must between 0 and 100.'    else:        index=(score-60)//10        if index >=0:            return degree[index]        else:            return degree[-1]

三、循环结构

1.for 与 while 循环

这两个语句的含义和别的编译语言相同,在此只举案例。下面是用循环结构遍历并输出列表中的所有元素:

图4 循环for的应用

下面是用来输出1-100能被7整除但不能同时被5整除的所有整数:

图5 循环for的应用

下面是用嵌套的循环结构打印九九乘法表:

图6 双重循环的应用

下面使用带有else子句的循环结构来计算1+2+3+4……+100的结果:

图7 for与else一起使用

下面是while 语句实现了同样的功能

图8 while语句的使用

使用内置函数sum也可以实现相同的功能:

>>>sum(range(1,101))5050

2.break 与continue

break 一旦被执行,将使得break语句所属层次的循环提前结束
continue 提前结束本次循环,忽略continue之后的所有语句,提前进入下一次循环

四、案例分析

1.输入若干个成绩,求所有成绩的平均分。每输入一个成绩后询问是否继续输入下一个成绩,回答yes就继续输入下一个成绩,回答no就停止输入成绩。

numbers=[]while True:    x=input('请输入一个成绩:')    try:        numbers.append(float(x))    except:        print('不是合法的成绩')while True:    flag=input('继续输入吗(yes/no)').lower()    if flag not in ('yes','no'):        print('只能输入yes或no')    else:        break    if flag=='no':        break print(sum(numbers)/len(numbers))>>>请输入一个成绩:1继续输入吗(yes/no)yes请输入一个成绩:5继续输入吗(yes/no)yes请输入一个成绩:3继续输入吗(yes/no)no3.0>>>

2.编写程序,判断今天是今年的第几天

import timedate=time.localtime()year,month ,day=date[:3]day_month=[31,28,31,30,31,30,31,31,30,31,30,31]if year%400==0 or(year%4==0 and year%100!=0):    day_month[1]=29if month ==1:    print(day)else:    print(sum(day_month[:month-1])+day)

3.如何快速判断一个数字是否是素数?

n=input('input an integer:')n=int(n)if  n==2:    print('Yes')elif n%2==0:    print('No')#偶数必然不是素数else:#大于5的素数必然出现的6的倍数的两侧#因为6x+2,6x+3,6x+4肯定不是素数,假设x为大于1的自然数    m=n%6if m!=1 and m!=5:    print('No')else:    for i in range(3,int(n**0.5)+1,2):        if n%i==0:            print('No')            break    print('Yes')

matlabfor循环语句举例_笨办法学python(七)条件、选择和循环相关推荐

  1. 笨办法学python pdf 第三版_笨办法学python第三版

    笨办法学python第三版pdf电子书是一本Python学习参考书,是美国程序员Zed A.Shaw编著,通过简单通俗的方法,结合内部的集体,让程序员学懂python,适用于初级学习python编程的 ...

  2. 笨办法学python第五版_笨办法学python PDF下载|笨办法学python第五版 电子版附目录_最火软件站...

    笨办法学Python第五版PDF电子版是专门为初学Python的朋友准备的一款电子图书资料,可以帮助你更好的学习Python编程知识,该电子书每章节都附带了常见问题回答以及练习题目,能够帮助学习者快速 ...

  3. 笨办法学python在线阅读_笨办法学python全集.pdf

    TableofContents 笨办法学Python 1.1 序言 1.2 前言 1.3 简介 1.4 练习0.安装和准备 1.5 练习1.第一个程序 1.6 练习2.注释和井号"#&quo ...

  4. 笨办法学python3进阶篇下载_笨办法学Python 3 进阶篇

    书名:"笨办法"学Python 3:进阶篇 定价:59.0 ISBN:9787115505392 作者: 泽德·A. 肖 版次:第1版 出版时间:2020-06 内容提要: 本书是 ...

  5. python描述器 有限状态机_笨办法学 Python · 续 练习 30:有限状态机

    练习 30:有限状态机 每当你阅读一本关于解析的书,都有一个可怕的章节,关于有限状态机(FSM).他们对"边"和"节点"进行了详细的分析,每个可能的" ...

  6. python转义例题_笨办法学Python记录--习题37 异常,lambda,yield,转义序列

    为什么使用异常 错误处理.事件通知.特殊情况处理.退出时的行为.不正常的程序流程. 简单的示例 在没有任何定义x变量的时候: print x print 1 将会抛出NameError异常: Name ...

  7. python列表两两相减_笨办法学python(二)数值、变量以及运算

    第二课提纲 一.注释 单行注释 # 多行注释 ''' 二.变量 变量声明 内存管理 变量类型 type(x) isinstance(x,int) 三.数字运算 实数相加减 复数相运算 四.运算符与表达 ...

  8. python考试代码复制_笨办法学Python 习题 26: 恭喜你,现在可以考试了! 错误代码下载链接...

    你已经差不多完成这本书的前半部分了,不过后半部分才是更有趣的.你将学到逻辑,并通过条件判断实现有用的功能. 在你继续学习之前,你有一道试题要做.这道试题很难,因为它需要你修正别人写的代码.当你成为程序 ...

  9. 笨办法学python第五版_笨办法学Python(五)

    习题 5: 更多的变量和打印 我们现在要键入更多的变量并且把它们打印出来.这次我们将使用一个叫"格式化字符串(format string)"的东西. 每一次你使用 " 把 ...

最新文章

  1. 【学习笔记】操作系统之哲学原理
  2. 模块式开发 java_Java9系列第8篇-Module模块化编程
  3. WPF 4 动态覆盖图标(Dynamic Overlay Icon)
  4. JS正则表达式的分组匹配
  5. 科学函数计算机怎么关机,函数计算器的功能有哪些?关机是哪个键?
  6. JavaScript设计模式之享元模式
  7. PCB中产生电磁干扰的原因及消除干扰技巧
  8. 【NOIP2018模拟赛2018.8.28】video
  9. c# mailgun 发送邮件测试
  10. FME实现CAD文件复杂注记
  11. Delphi访问网络共享文件夹
  12. 支付宝集五福最全攻略,五分钟集齐五福!
  13. V2X-Hub,车路协同云控平台
  14. Arduino温度传感器全系列使用详解
  15. 如何在Windows系统搭建Node.js环境
  16. 程序员进阶!读完我这份《Android开发核心源码精编解析》面试至少多要3K!已拿到offer
  17. thingworx运营分析模型
  18. 管壁式换热器cad图纸_天津不锈钢螺旋板式换热器生产厂家-中邦冷却器
  19. 华为机考攻略(python)--入门题【5题】(第一题HJ5进制转换)
  20. 蓝桥杯 省赛 砝码称重

热门文章

  1. Selenium之多窗口句柄的切换
  2. Selenium之鼠标和键盘操作及扩展
  3. nginx子请求并发处理
  4. linux下eaccelerator,memcache,memcached安装
  5. 网易 for linux,NetEaseMusic
  6. HTML中如何写for循环全选,利用html:multibox 循环遍历checkbox 并且全选全解除
  7. c语言编程员工信息排序,员工工资管理系统(c语言编程)
  8. java400状态,java – HttpURLConnection:如何读取400响应的有效负载
  9. java兔子_JAVA经典兔子问题
  10. mangodb 高频数据_金融分析量化系统,高频交易程序数据库通常采用哪种方式存贮数据?...