Python入门(八)分支与循环

简介: 了解了基本语句,知道话可以怎么讲了,在以后的练习中,会比较容易看懂整个程序的框架,并且能对所练习的实例,举一反三,这样学习会事半功倍。

分支

先例

写一个程序,按百分制评等级:
[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,2
if x < y:
    print('min =',x)
else:
    print('min =',y)

F5运行后得:
vs1

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

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

x if 条件 else y

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

断言(assert)

>>> assert 1 > 2
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    assert 1 > 2
AssertionError

由此异常可知,关键字 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)

    
1
3
5
7

break和continue

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

    
1
2
3
4
5
6
  • 关键字continue的作用是终止当前循环,开始下次循环。
>>> for i in '123456789':
    if i == '7':
        continue
    print(i)

    
1
2
3
4
5
6
8
9

需要注意,循环语句可以有 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 * 2
5 是质数!
6 能分解成 2 * 3
7 是质数!
8 能分解成 2 * 4
9 能分解成 3 * 3

END!

目录
相关文章
|
23小时前
|
Python
10个python入门小游戏,零基础打通关,就能掌握编程基础_python编写的入门简单小游戏
10个python入门小游戏,零基础打通关,就能掌握编程基础_python编写的入门简单小游戏
|
3天前
|
Python 索引 C语言
Python3从零基础到入门(2)—— 运算符-3
Python3从零基础到入门(2)—— 运算符
|
3天前
|
Python
Python3从零基础到入门(2)—— 运算符-2
Python3从零基础到入门(2)—— 运算符
Python3从零基础到入门(2)—— 运算符-2
|
3天前
|
Python C语言 存储
Python3从零基础到入门(2)—— 运算符-1
Python3从零基础到入门(2)—— 运算符
Python3从零基础到入门(2)—— 运算符-1
|
3天前
|
存储 C语言 Python
|
3天前
|
Python Windows
|
3天前
|
NoSQL 测试技术 API
Python 入门指南(七)(4)
Python 入门指南(七)
9 0
|
3天前
|
机器人 Java C++
python速成之循环分支结构学习
python速成之循环分支结构学习
40 1
|
Python
Python分支学习
Python分支学习
150 0
Python分支学习
|
2天前
|
网络协议 Unix Python
Python编程-----网络通信
Python编程-----网络通信
8 1