python 流程控制

Posted chendaodeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 流程控制相关的知识,希望对你有一定的参考价值。

## if 判断

语法

if 条件:

代码1

代码2

代码3

...

# 代码块(同一缩进级别的代码,例如代码1、代码2和代码3是相同缩进的代码,这三个代码组合在一起就是一个代码块,相同缩进的代码会自上而下的运行)

if
cls = human
gender = female
age = 24

if cls == human and gender == female and age > 28 and age < 28:
    print(开始表白)

print(end...)

## if ...else

语法

if 条件:

代码1

代码2

代码3

...

else:

代码1

代码2

代码3

...

f...else表示if成立代码成立会干什么,else不成立会干什么。

if...else
cls = human
gender = female
age = 38

if cls == human and gender == female and age > 16 and age < 22:
    print(开始表白)
else:
    print(阿姨好)

## if…elif…else

语法:

 

 

if 条件1:

 

代码1

 

代码2

 

代码3

 

...

 

elif 条件2:

 

代码1

 

代码2

 

代码3

 

...

 

elif 条件3:

 

代码1

 

代码2

 

代码3

 

...

 

...

 

else:

 

代码1

 

代码2

 

代码3

 

...

if...elif...else表示if条件1成立干什么,elif条件2成立干什么,elif条件3成立干什么,elif...否则干什么。

 if...elif...else
cls = human
gender = female
age = 28

if cls == human and gender == female and age > 16 and age < 22:
    print(开始表白)
elif cls == human and gender == female and age > 22 and age < 30:
    print(考虑下)
else:
    print(阿姨好)

练习1:成绩评判

# # -*-coding:utf-8-*-
# 如果 成绩>=90,打印"优秀"
# * 如果 成绩>=80 并且 成绩<90,打印"良好"
# * 如果 成绩>=70 并且 成绩<80,打印"普通"
# # * 其他情况:打印"差"

score = input("请输入你的成绩:")
score = int(score)

if score >= 90:
    print ("优秀")
elif score >= 80:
    print ("良好")
elif score >= 70:
    print  ("普通")
else:
    print ("")

 练习2:模拟登录注册

ser_from_db = jason
pwd_from_db = 123

user_from_inp = input(username: )
pwd_from_inp = input(password: )


if user_from_inp == user_from_db and pwd_from_inp == pwd_from_db:
    print (登陆成功)
else:
    print (用户名或密码错误)

## if 

嵌套

先给我完成一个需求说循环打印出1,2,3,4,5,6,7,8,9

 

```python

n = 1

while n < 4:

    print(n)

    n += 1  # 这一行不加又会是死循环

```

 

然后需求变一下循环打印1,2,3,4,5,7,8,9,数字6不打印

 

```python

n = 1

while n < 10:

    if n == 6:

        n += 1  # 如果注释这一行,则会进入死循环

        continue

    print(n)

    n += 1

```

 

ps:continue不能加在最后一步执行的代码,因为代码加上去毫无意义

 

```python

while True:

if 条件1:

code1

code2

code3

...

    continue  # 无意义

  elif 条件1:

code1

code2

code3

...

    continue  # 无意义

else:

code1

code2

code3

...

    continue  # 无意义

 

# while循环嵌套

 

ATM密码输入成功还需要进行一系列的命令操作,比如取款,比如转账。并且在执行功能结束后会退出命令操作的功能,即在功能出执行输入q会退出输出功能的while循环并且退出ATM程序。

退出内层循环的while循环嵌套
user_db = jason
pwd_db = 123
while True:
    inp_user = input(username: )
    inp_pwd = input(password: )
    if inp_user == user_db and pwd_db == inp_pwd:
        print(login successful)
        while True:
            cmd = input(请输入你需要的命令:)
            if cmd == q:
                break
            print(%s功能执行%cmd)
    else:
        print(username or password error)
print(退出了while循环)
退出内层循环的while循环嵌套
user_db = jason
pwd_db = 123
while True:
    inp_user = input(username: )
    inp_pwd = input(password: )
    if inp_user == user_db and pwd_db == inp_pwd:
        print(login successful)
        while True:
            cmd = input(请输入你需要的命令:)
            if cmd == q:
                break
            print(%s功能执行%cmd)
    else:
        print(username or password error)
print(退出了while循环)

上述方法有点low,有多个while循环就要写多个break,有没有一种方法能够帮我解决,只要我退出一层循环其余的各层全都跟着结束>>>:定义标志位

# 退出双层循环的while循环嵌套
user_db = jason
pwd_db = 123
flag = True
while flag:
    inp_user = input(username: )
    inp_pwd = input(password: )
    if inp_user == user_db and pwd_db == inp_pwd:
        print(login successful)
        while flag:
            cmd = input(请输入你需要的命令:)
            if cmd == q:
                flag = False
                break
            print(%s功能执行%cmd)
    else:
        print(username or password error)
print(退出了while循环)

### while+else(了解)

 

while+else:else会在while没有被break时才会执行else中的代码。

 

# while+else
n = 1
while n < 3:
      if n == 2:break  # 不会走else
    print(n)
    n += 1
else:
    print(else会在while没有被break时才会执行else中的代码)
```

## for循环

or name in name_list:
  print(name)  # 对比与while更加简便

# 再来看for循环字典会得到什么
info = name: jason, age: 19
for item in info:
    print(item)  # 拿到字典所有的key
    print(info[item])
    
# for可以不依赖于索引取指,是一种通用的循环取指方式
# for的循环次数是由被循环对象包含值的个数决定的,而while的循环次数是由条件决定的

for循环也可以按照索引取值

for i in range(1, 10):  # range顾头不顾尾
    print(i)

# python2与python3中range的区别(cmd窗口演示即可)

# for循环按照索引取值
name_list =  [jason, nick, tank, sean]
# for i in range(0,5):  # 5是数的
for i in range(len(name_list)):
    print(i, name_list[i])

## for+break

 

# for+break
name_list = [nick, jason, tank, sean]
for name in name_list:
    if name == jason:
        break
    print(name)

## for+continue

# for+continue
name_list = [nick, jason, tank, sean]
for name in name_list:
    if name == jason:
        continue
    print(name)

## for循环练习题

# 1.打印99乘法口诀表
‘‘‘
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
...
9*1=9.................9*9=81
‘‘‘
for i in range(1,10): #i=3
     for j in range(1,i+1):
         print(%s*%s=%s  %(i,j,i*j),end=‘‘) #i=2 j=2
     print()

 

 

以上是关于python 流程控制的主要内容,如果未能解决你的问题,请参考以下文章

Python流程控制

Python流程控制

Python流程控制

Python流程控制-1 顺序执行

Python3 流程控制语句

python流程控制