欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python(二):分支和循环

程序员文章站 2022-04-06 15:08:07
...

2 分支与循环

本节目的是熟悉Python语言的顺序、分支、循环三种流程控制语句。

2.1 语句块

不同于C/C++中使用{}来创建语句块,Python依靠“缩进和对齐”来表示语句块的范围,这一方面也是为了规范代码格式而设置的规则。同时为了很好的区别语句块,因适当的配合空行使用。

2.2 if…else…分支语句

需要注意的是区别于C/C++,python中的分支语句需要使用:

# 基本用法
score = int(input("请输入分数:"))
if score >100 or score < 0 :          # and or not 与或非运算符
    print("error score!")
if score < 100 and score >= 60 :
    print("pass!")
if 60 > score >0 :
    print("fail!")
请输入分数:60
pass!
# 配合else,注意else if需要缩写为elif
score = int(input("请输入分数:"))
if score >100 or score < 0 :
    print("error score!")
elif score < 100 and score >= 60 :
    print("pass!")
else :
    print("fail!")
请输入分数:10
fail!
# 使用嵌套语句
score = int(input("请输入分数:"))
if score >100 or score < 0 :
    print("error score!")
else :
        if score < 100 and score >= 60 :
            print("pass!")
        else :
            print("fail!")       
请输入分数:10
fail!

2.3 三元操作符

基本语法为a = x if 条件 else y,如果条件为真就执行a = x,否则就执行a = y

score = int(input("输入判断条件"))
x = 1 if score == 0 else 2
print(x)
输入判断条件1
2

2.4 while语句

除了:外,与C/C++基本无异,但是没有do...while...语句

i = 1
while i <= 3 :
    print(i)
    i += 1      # 不支持 i++ 这种写法
1
2
3

2.5 assert断言

assert后面的条件语句为真时,程序正常执行,否则程序会报错AssertionError

x = int(input("输入一个被除数:"))
assert x != 0
print(1/x)
输入一个被除数:0

---------------------------------------------------------------------------

AssertionError                            Traceback (most recent call last)

<ipython-input-21-357b0a2310a0> in <module>
      1 x = int(input("输入一个被除数:"))
----> 2 assert x != 0
      3 print(1/x)


AssertionError: 

2.6 range & for

for循环语句的可以对任何可迭代对象进行循环,例如

str = "time is money!"
for each in str :         # 对字符串循环
    print(each, end="")   # 指定末尾为无,而不是换行
print()
lt = [ "wuyao", 22, [1997, 6],"male"]
for each in lt:       # 对列表循环
    print(each)
time is money!
wuyao
22
[1997, 6]
male

为了实现类似C/C++那样循环指定次数,则可以配合使用range对象来使用,其原型为range([start=0,] stop [,step=1]),会返回一个可迭代的序列。

a=range(1,9,2)   # 创建一个range对象,
a
range(1, 9, 2)
type(a)        # 获取类型信息
range
dir(a)     # 查看内建方法
['__bool__',
 '__class__',
 '__contains__',
 '__delattr__',
 '__dir__',
 '__doc__',
 '__eq__',
 '__format__',
 '__ge__',
 '__getattribute__',
 '__getitem__',
 '__gt__',
 '__hash__',
 '__init__',
 '__init_subclass__',
 '__iter__',
 '__le__',
 '__len__',
 '__lt__',
 '__ne__',
 '__new__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__reversed__',
 '__setattr__',
 '__sizeof__',
 '__str__',
 '__subclasshook__',
 'count',
 'index',
 'start',
 'step',
 'stop']

配合for循环语句实现类似C/C++的操作,可参考如下

for i in range(5) :    # 配合默认值,则具体为(0:4)
    print(i,end=" ")
print()
for i in range(-1,6,2) : # 具体为(-1:2:6)
    print(i,end=" ")
0 1 2 3 4 
-1 1 3 5 

2.7 break

同样用来跳出当前循环。

for i in "wuyao":
    if i == "y":
        break
    print(i,end = " ")
w u 

2.8 continue语句

终止本轮循环。

for i in "wuyao":
    if i == "y":
        continue
    print(i,end = " ")
w u a o