博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python入门(八)分支与循环
阅读量:6815 次
发布时间:2019-06-26

本文共 2823 字,大约阅读时间需要 9 分钟。

分支

先例

写一个程序,按百分制评等级:

[90,100]等级为A,
[80,90)等级为B,
[60,80)等级为C,
[0,60)等级为D,
当用户输入分数时,自动转换为ABCD的形式输出。

  • rank1.py
>>> score = int ( input ('Please Input the Score:'))if score < 0 or score > 100:    print ('Input Error!')if 90 <= score <= 100:    print ('A')if 80 < score <90:    print ('B')if 60 < score <=80:    print ('C')if 0 <= score <=60:    print ('D')

F5运行后,输入分数:

1

  • rank2.py
>>> score = int ( input ('Please Input the Score:'))if score < 0 or score > 100:    print ('Input Error!')elif 90 <= score <= 100:    print ('A')elif 80 < score <90:    print ('B')elif 60 < score <=80:    print ('C')elif 0 <= score <=60:    print ('D')

F5运行后,输入分数:

2

  • rank3.py
>>> score = int ( input ('Please Input the Score:'))if score < 0 or score > 100:    print ('Input Error!')else:    if 90 <= score <= 100:        print ('A')    else:        if 80 < score <90:            print ('B')        else:            if 60 < score <=80:                print ('C')            else:                print ('D')

F5运行后,输入分数:

3

rank1 VS rank2 VS rank3

  • rank1的特点:不论程序执行到哪一步能满足条件,都会把整个程序都走一遍,再输出结果。
  • rank2的特点:只要程序执行到满足条件的那一步,就会终止程序输出结果,比rank1节省时间。
  • rank3的特点:与rank2的执行方式一样,只是运用了python中特有的elif语句,简洁明了!
    rank2体现了python中的缩进机制,完美的避开了,在其他语言中经常会掉的坑。

悬挂else

像C语言中有如下代码:

if (a > 0)    if (b > 0)        printf("^_^")else    printf("&-&");

请问else是和哪个if搭配的呢?对和第二个if搭配!

BUT,在大量代码面前,这种框架的关键字像沧海一粟,找起来很费劲。
所以,悬挂else的问题在python中完全不存在。


条件表达式(三元操作符)

  • 买家秀:
x,y = 1,2if x < y:    print('min =',x)else:    print('min =',y)

F5运行后得:

vs1

  • 卖家秀:
x,y =1,2print('min =', x if x < y else y)

F5运行后得:

vs1
即使得到相同的结果,过程仍可能有很大的差别!
由上述对比可知,条件表达式的语法为:

x if 条件 else y

当条件为真时,程序将返回x的值,反之,返回y的值。

断言(assert)

>>> assert 1 > 2Traceback (most recent call last):  File "
", line 1, in
assert 1 > 2AssertionError

由此异常可知,关键字 assert 后的条件为假时程序便会产生AssertionError,所以说,当我们需要确保程序中的某一个条件一定为真才能让程序正常工作的话时,用assert在程序中置入检查点。


循环

while 循环

while 条件:  循环体

只要条件为真,程序就会一直执行循环体。

while 1:    str1=str(input("你现在有什么想法:"))    print("原来你很",str1,"呀!")

4

for 循环

for 目标 in 表达式:  循环体

目标是指变量,表达式可为序列,可以是列表也可以是字符串。

>>> players = ['网易云音乐','酷狗音乐','QQ音乐']>>> for player in players:    print ('安装:',player,len(player))    安装: 网易云音乐 5安装: 酷狗音乐 4安装: QQ音乐 4

for 与很多BIF连用时会实现各种各样的功能,这里以range([star,]stop[,step=1])为例:

>>> for i in range(1,10,2):    print(i)    1357

break和continue

  • 关键字break的作用是终止当前循环,跳出循环体。
>>> for i in '123456789':    if i == '7':        break    print(i)    123456
  • 关键字continue的作用是终止当前循环,开始下次循环。
>>> for i in '123456789':    if i == '7':        continue    print(i)    12345689

需要注意,循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被break终止时不执行。

>>> for i in range(1,10):    for x in range(2,i):        if i % x == 0:            print(i,'能分解成',x,'*',i//x)            break    else:        print(i,'是质数!')        1 是质数!2 是质数!3 是质数!4 能分解成 2 * 25 是质数!6 能分解成 2 * 37 是质数!8 能分解成 2 * 49 能分解成 3 * 3

END!

转载地址:http://xhdzl.baihongyu.com/

你可能感兴趣的文章
[回炉计划]-实现一个图片预加载
查看>>
正则表达式
查看>>
360前端星计划学习-html
查看>>
专注dApp高效执行和高并发的下一代公有链
查看>>
ONE-sys 整合前后端脚手架 koa2 + pm2 + vue-cli3.0 + element
查看>>
携带更方便功能全 iPone与Apple Watch球形尿袋
查看>>
行为型模式:策略模式
查看>>
实现批量数据增强 | keras ImageDataGenerator使用
查看>>
太忙女友消息未及时回复,分手吗?python微信自动消息帮你谈恋爱
查看>>
Java 多线程NIO学习
查看>>
命名实体识别
查看>>
动态切换的动态代理
查看>>
电商项目(下)
查看>>
vue 数字滚动递增效果
查看>>
vue2.0中父子,兄弟组件的传值2
查看>>
Spring Boot注解常用!!!看了就可以开发大量项目了
查看>>
音频编码 Audio Converter
查看>>
SQL - case when then else end 的用法
查看>>
web优化是http缓存(上)
查看>>
19-01-14
查看>>