python基础——3(流程控制)

时间:2021-01-21 15:07:04

一、if判断

1、语法一:

if 条件:
    子代码块

示例代码:
sex = 'female'
age = 18
is_beautiful = True
if sex == 'female' and age >16 and age < 20 and is_beautiful:
    print("开始表白。。")

2、语法二:

if 条件:
    #条件成立时执行的子代码块
    子代码块
else:
    #条件不成立时执行的子代码块
    子代码块

示例代码:
sex = 'female'
age = 28
is_beautiful = True
if sex == 'female' and age > 16 and age < 20 and is_beautiful:
    print("开始表白。。")
else:
    print("阿姨好。。")

3、语法三:

if 条件1:
    子代码块
    if 条件2:
        子代码块

示例代码:
sex = 'female'
age = 18
is_beautiful = True
is_successful = True
if sex == 'female' and age > 16 and age < 20 and is_beautiful:
    print("开始表白。。")
    if is_successful:
        print("在一起")
    else:
        print("爱是折磨人的东西。。")
else:
    print("阿姨好。。")

4、完整的if语句

if 条件1:
    子代码块1
elif 条件2:
    子代码块2
elif 条件3:
    子代码块3
else:
    子代码块4

示例代码:
score = int(input("please input your score:"))
if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 70:
    print("普通")
else:
    print("很差")

二、while循环

1、语法:

while 条件:
    循环体

2、结束循环方法一:

条件改为False,不会立即结束循环,而是在下一次循环判断条件时才生效。

示例:
tag = True
while tag:
    name = input("please input your name:")
    pwd = input("please input your password:")
    if name == 'shj' and pwd == '123':
        print("login successful")
        tag = False # 后面的代码依然会执行
    else:
        print("Invalid username and password.")
    print("end".center(20,'*'))

3、结束循环方法二:

break,一定要放在循环体内,一旦循环执行到break就会立即结束本层循环。

示例:
while True:
    name = input("please input your name:")
    pwd = input("please input your password:")
    if name == 'shj' and pwd == '123':
        print("login successful")
        break  # 后面的代码不会执行
    else:
        print("Invalid username or password.")
        continue   # 此处加continue无用
    print("end".center(20,'*'))

4、结束循环方法三:

continue,结束本次循环,直接进入下一次循环

示例:打印1,2,3,5
count = 1
while count < 6
    if count == 4:
        count += 1
        continue
    print(count)
    count += 1

5、while+else

在循环结束后,并且只有循环没有被break打断过的情况下,才会执行else的代码。

while True:
    print(1)
    break
else:   # else的代码不会执行
    print("else的代码")

tag=True
while tag:
    print(1)
    print(2)
    print(3)
    tag=False
else:  # else的代码会被执行
    print('else的代码')

6、while的嵌套循环

语法:
while 条件1:
    while 条件2:
        代码1
        代码2
        代码3

示例一:

while True:
    name=input('please input your name: ')
    pwd=input('please input your password: ')
    if name == 'shj' and pwd == '123':
        print("login successful..")
        while True:
            print("""
            0 退出
            1 取款
            2 转账
            3 查询
            """)
            choice = input("请输入您要执行的操作:")
            if choice == '1':
                print("取款")
            elif choice == '2':
                print("转账")
            elif choice == '3':
                print("查询")
            elif choice == '0':
                break
            else:
                print("您的输入有误,请重新输入。")
        break
    else:
        print('username or password error.')

示例二:
tag = True
while tag:
    name=input('please input your name: ')
    pwd=input('please input your password: ')
    if name == 'shj' and pwd == '123':
        print("login successful")
        while tag:
            print("""
            0 退出
            1 取款
            2 转账
            3 查询
            """)
            choice = input("请输入您要执行的操作:")
            if choice == '0':
                tag = False
            elif choice == '1':
                print("取款")
            elif choice == '2':
                print("转账")
            elif choice == '3':
                print("查询")
            else:
                print("您的输入有误,请重新输入")
    else:
        print("username or password error.")

三、for循环

for循环的强大之处在于循环取值

循环遍历列表
l = ['a','b','c','d','e']

#用while循环完成,比较复杂
i = 0
while i < len(l):
    print(l[i])
    i += 1

# for循环简单
for x in l:
    print(x)

# 以字典为例,while实现困难,for循环简单
dic={'name':'egon','age':18,'gender':'male'}
for a in dic:
    print(a,dic[a])

# for+break
nums=[11,22,33,44,55]
for x in nums:
    if x == 44:
        break
    print(x)

# for + continue
nums=[11,22,33,44,55]
for x in nums:
    if x == 22 or x == 44:
        continue
    print(x)

# for + else
names=['egon','kevin1111_dsb','alex_dsb','mac_dsb']

for name in names:
    if name == 'kevin_dsb':
        break
    print(name)
else:
    print('======>')

# for+ range()
# range的用法
>>> range(1,5)
[1, 2, 3, 4]
>>> for i in range(1,5):
...     print(i)
...
1
2
3
4
>>> range(1,5,1)
[1, 2, 3, 4]
>>> range(1,5,2) # 1 3
[1, 3]

#for嵌套
for i in range(3):
    for j in range(4):
        print(i,j)

# 对上述代码的翻译及其运行过程
for i in [0,1,2]: # i=1
    for j in [0,1,2,3]: # j=1
        print(i,j)

执行结果如下(外层循环每执行一次,内层循环就遍历一遍):
'''
0 0
0 1
0 2
0 3

1 0
1 1
1 2
1 3

2 0
2 1
2 2
2 3

'''