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 代码打印金字塔

max_level = 9

for current_level in range(1 ,max_level+1):
    #先布换行打印空空格
    for x in range(max_level-current_level):
        print(' ', end='')
    #再不换行打印*
    for y in range(2*current_level - 1):
        print('*', end='')
    print ("")

 

转载于:https://www.cnblogs.com/chendaodeng/p/11121942.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值