加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

03python开发之流程控制

发布时间:2020-12-20 09:47:11 所属栏目:Python 来源:网络整理
导读:03 python开发之流程控制 目录 03 python开发之流程控制 3 流程控制 3.1 流程判断之if判断 3.1.1 代码块 3.1.2 if判断基础语法 3.1.3 案例 3.1.4 if判断嵌套 3.2 流程判断之while循环 3.2.1 循环基础知识 3.2.2 while循环基础语法 3.2.3 结束while循环的两种

03 python开发之流程控制

目录
  • 03 python开发之流程控制
  • 3 流程控制
    • 3.1 流程判断之if判断
      • 3.1.1 代码块
      • 3.1.2 if判断基础语法
      • 3.1.3 案例
      • 3.1.4 if判断嵌套
    • 3.2 流程判断之while循环
      • 3.2.1 循环基础知识
      • 3.2.2 while循环基础语法
      • 3.2.3 结束while循环的两种方式
      • 3.2.4 循环嵌套
      • 3.2.5 while+continue
      • 3.2.6 while+else
      • 3.2.7 死循环
      • 3.2.8 案例
    • 3.3 流程判断之for循环
      • 3.3.1 for循环基础
      • 3.3.2 for循环基本用法
      • 3.3.3 for+range()
      • 3.3.4 for+enumerate
      • 3.3.5 for+break
      • 3.3.6 for+continue
      • 3.3.7 for+else
      • 3.3.8 for循环嵌套

3 流程控制

3.1 流程判断之if判断

3.1.1 代码块

  • 代码块指同一级别的代码在python中使用相同缩进的空格数

  • 顶级代码块无任何缩进,其余代码都是在原有基础上缩进4个空格来标识同一级别的代码块

  • 同一级别的代码块会按照自上而下的顺序依次执行

3.1.2 if判断基础语法

# 基础语法
if 条件1:
    代码1
    代码2
    代码3
elif 条件2:
    ...
...
else:
    ...
    
# 单分支
if 条件:
    代码1
    代码2
    代码3

# 双分支
if 条件1:
    代码1
    代码2
    代码3
elif 条件2:
    ...
...
或
if 条件1:
    代码1
    代码2
    代码3
else:
    ...
    
# 多分支
if 条件1:
    代码1
    代码2
    代码3
elif 条件2:
    ...
...
else:
    ...

3.1.3 案例

age =22
height=170
weight=100
gendel="female"
print('我是顶级代码...')
if age > 16 and age < 26 and height >160 and gendel == "female":
    print("开始表白。。。。")

print('我是顶级代码....')
age_of_girl = input('请输入年龄:')
height = input('请输入身高:')
weight = input('请输入体重:')
is_pretty = input('请给自己颜值打分:')

if 18 <= int(age_of_girl) <= 22 and int(height) > 170 and int(weight) < 100 and int(is_pretty) >=80:
    print('Get到WeChat')
else:
    print('游泳健身了解一下?')
score = input('请输入你的成绩:')
score = int(score)
if score >= 90:
    print('优秀!')
elif score >= 80:
    print('良好!')
elif score >= 70:
    print('普通!')
else:
    print('很差!')

3.1.4 if判断嵌套

age =18
height=170
weight=100
gendel="female"
is_ok=True  
print('我是顶级代码...')
if 16 < age < 26 and height >160 and gendel =='female':
    print("开始表白。。。。")
    if is_ok:  # 如果is_ok为真则打印
        print("在一起。。。。")
    else: # 否则打印我们不合适
        print("我们不合适。。。")
else:
    print("阿姨好。。。。")
print('我是顶级代码....')

3.2 流程判断之while循环

3.2.1 循环基础知识

  • 循环就是重复做某件事

  • 循环是为了让计算机像人一样去重复做某件事

  • while循环也可称为条件循环

3.2.2 while循环基础语法

while 条件:
    代码1
    代码2
    代码3
    
# 基本使用
count = 0
while count < 6:
    print(count)
    count += 1

3.2.3 结束while循环的两种方式

  • 条件改为假(必须等到下一次循环判断条件时循环才会结束)
tag = True
while tag:
    username = input("username:")
    password = input("password:")
    
    if username == "ccc" and password == "123":
        print('login successfully')
        tag = False
    else:
        print('username or password error')
  • break干掉本层循环,不会进行下一次循环
while tag:
    username = input("username:")
    password = input("password:")
    
    if username == "ccc" and password == "123":
        print('login successfully')
        break
    else:
        print('username or password error')

3.2.4 循环嵌套

tag = True
while tag:
    while tag:
        while tag:
            tag = False
while 条件1:
    while 条件2:
        while 条件3:
            break
        break
    break

3.2.5 while+continue

  • 终止本次循环,直接进入下一次
count = 0
while count < 6:
    if count == 3:
        count += 1
        continue
    print(count)
    count += 1
    
# 0 1 2 4 5
continue下面的代码都不会执行,因此continue下面不要写代码!!!切记!!!

3.2.6 while+else

  • 情况一:while循环非正常结束,else不执行
count = 0
while count < 6:
    if count == 3:
        break
    print(count)
    count += 1
else:
    print('='*5)
    
# 0 1 2
  • 情况二:while正常结束,执行else
count = 0
while count < 6:
    if count == 3:
        continue
    print(count)
    count += 1
else:
    print('='*10)
    
# 0 1 2 4 5
# ==========

3.2.7 死循环

  • 表达式永远为真的循环称为死循环
count = 0
while count < 4:
    print(count)
    
while True:
    print('ok')
    
while 1:
    print('ok')

3.2.8 案例

username = "ccc"
password = "123"

print('顶级代码....')
while True:
    inp_name=input("请输入用户名:")
    inp_pwd=input("请输入密码:")

    if inp_name == username and inp_pwd == password:
        print('login successful')
        break
    else:
        print('username or password error')
    print("====end====")
username = "ccc"
password = "123"
tag = True
print('顶级代码....')
while True:
    inp_name = input("请输入用户名:")
    inp_pwd = input("请输入密码:")

    if inp_name == username and inp_pwd == password:
        print('login successful')
        tag = False
    else:
        print('username or password error')
    print("====end====")
username = "ccc"
password = "123"
count = 0
tag = True
while tag:
    inp_user = input("请输入用户名:").strip()
    inp_pwd = input("请输入密码:").strip()

    if inp_user == username and inp_pwd == password:
        print("登录成功")
        while tag:
            print("""
            0:退出
            1:转账
            2:取款
            3:查询余额
            """)
            inp_order = input("请输入命令:").strip()
            if inp_order == "0":
                print("退出")
                tag=False
            elif inp_order == "1":
                print("转账")
            elif inp_order == "2":
                print("取款")
            elif inp_order == "3":
                print("查询余额")
            else:
                print("输入命令有误")
        tag = False
    else:
        print("用户或密码错误")
        count += 1

    if count == 3:
        print("输入次数已超限制")
        tag = False

3.3 流程判断之for循环

3.3.1 for循环基础

  • 对于循环取值while并不擅长,python有专门循环取值的操作:for循环

  • for循环也称为迭代循环

  • for循环与while循环的相同之处在于都是循环,都可以用来做重复的事情

  • for循环与while循环的不同之处在于while循环常用来循环执行某段代码,for循环用来循环取值

  • while循环的次数取决于条件何时为假

  • for循环的次数取决于in后数据包含的值得个数

3.3.2 for循环基本用法

  • 遍历值
info = [["name","egon"],["age",18],["gender","male"]]
for x,y in info:
    print(x,y)
    
# name egon
# age 18
# gender male
names=["egon","Lxx_dsb","xc","zhoujielun"]
for i in names:   # 有几个值就循环几次,4次
    print(i)

# egon
# Lxx_dsb
# xc
# zhoujielun
d={"k1":111,"k2":222,"k3":333}
for i in d:
  	print(i)		# 从字典里取出的默认是key:k1 k2 k3
    print(i,d[i])   # 通过key取value:k1 111 k2 222 k3 333

3.3.3 for+range()

  • range产生一个数字序列,顾头不顾尾

    range(起始位置,结束位置,步长)起始位置默认0,步长默认1

  • 用途:for+range()可以按照索引编列列表

    ? 1、用来重复n次此段代码

    ? 2、range可以产生数字序列,数字对应的是列表的索引

range(10)         #等同于range(0,10)
range(10,1,-1)  # 从大到小必须指定步长

for i in range(5):
    print(i)
# 0 1 2 3 4
# 在python2中
>>> range(5),type(range(5))
([0,2,3,4],<type 'list'>)

# 在python3中
>>> range(5),type(range(5))
(range(0,5),<class 'range'>)
l = [111,222,333,444,555]
i = len(l) - 1
while i > -1:
    print(l[i])
    i -= 1
# 555 444 333 222 111
或
l = [111,555]
for i in range(len(l) - 1,-1,-1):
    print(l[i])
# 555 444 333 222 111

3.3.4 for+enumerate

  • 以key:value输出
l = [111,555]
for i in enumerate(l):
    print(i)
# (0,111)
# (1,222)
# (2,333)
# (3,444)
# (4,555)
l=[111,555]
for i,y in enumerate(l):
    print("index: %s value: %s" % (i,y))
# index: 0 value: 111
# index: 1 value: 222
# index: 2 value: 333
# index: 3 value: 444
# index: 4 value: 555

3.3.5 for+break

for i in range(3): 
    username=input('username>>: ')
    password=input('password>>: ')
    if username == 'egon' and password == '123':
        break
    else:
        print('用户名或密码错误')

3.3.6 for+continue

for i in range(5):	 # 0 1 2 3 4
    if i == 2:
      continue
    print(i)		# 0 1 3 4 

3.3.7 for+else

  • 循环正常结束才会执行,否则不执行
for i in range(5):
    if i == 3:
        break
    print(i)
else:
    print("---------")		# 不执行
for i in range(5):
    if i == 3:
        continue
    print(i)
else:
    print("--------")		# 执行

3.3.8 for循环嵌套

for i in range(3):
    print("--------loop1------> %s" % i)
    for j in range(5):
        print("loop2--------> %s" % j)
        
# --------loop1------> 0
# loop2--------> 0
# loop2--------> 1
# loop2--------> 2
# loop2--------> 3
# loop2--------> 4
# --------loop1------> 1
# loop2--------> 0
# loop2--------> 1
# loop2--------> 2
# loop2--------> 3
# loop2--------> 4
# --------loop1------> 2
# loop2--------> 0
# loop2--------> 1
# loop2--------> 2
# loop2--------> 3
# loop2--------> 4

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读