python流程控制

python流程控制

image

1.成员运算

  • 作用:判断某个个体在不在某个群体内

  • 关键字:in(在)、not in(不在)

    # 表示方法
    name = "jenny"
    print("n" in name)  # 返回True
    list = ["jenny","jane","jason"]
    print("jason" not in list)  #返回False
    print("jane" in lit)  # 返回True
    # 字典的成员运算不同于列表,由于字典是key:value的形式,而value才是真正的值,所以不能直接判断value是否在,只能通过key值进行判断,字典默认暴露给外界的只有k值
    msg_list = {
        "name": "jane",
        "age": 20,
        "hobby": "study"
    }
    print("name" in msg_list)  # 返回True
    print("sex" in msg_list)  # 返回False
    

2.身份运算

  • 定义:用来判断两个数据的值是否相等、地址是否相同

  • 关键字:"=="(只判断值)、"is"(判断内存地址)

    # 表示方法
    s1 = ["jane", "jenny", "john", "jason"]
    s2 = ["jane", "jenny", "john", "jason"]
    print(s1 == s2)  # 返回True
    print(id(s1), id(s2))  # 返回s1,s2内存地址
    print(s1 is s2)  # 返回False
    '''
    值相等内存地址不一定相等
    内存地址相同值一定相等
    '''
    

3.流程控制

  • 定义:所谓流程控制就是控制事物的执行流程
  • 任何事物执行流程控制只有三种结构:顺序结构、分支结构、循环结构

必知必会

1.条件都会转成布尔值  从而决定子代码是否执行
2.在python中 使用缩进来表示代码的从属关系
3.并不是所有的代码都可以拥有子代码
4.同属于某个代码的多行子代码 必须要保持相同的缩进量
  在python中推荐使用四个空格来缩进

image

顺序结构

  • 所谓的顺序结构就是自上而下按顺序依次执行。

image

分支结构

  • 分支结构就是按照不同的条件判断事物的执行情况
  • 关键字:if
    image

单分支结构:if

# 语法结果
if 条件:
	条件成立后执行的子代码块
# 小练习
salary = int(input("your salary:"))
if salary < 5000:
    print("活不下去了")

image

双分支结构:if-else

# 语法结果
if:条件
    条件成立时执行的子代码块
else:
    条件不成立时执行的子代码块
# 小练习
salary = int(input("your salary:"))
if salary < 3000:
    print("活不下去了")
else:
    print("勉勉强强")

image

多分支结构:if-elif-else

# 语法结果
if:条件1
    条件1成立时执行的子代码块
elif:条件2
    条件1不成立条件2成立时执行的子代码块
elif:条件3
    条件1和2都不成立条件3成立时执行的子代码块
else:
    上述条件都不成立时执行的子代码块
 '''当有一个条件成立时其他条件不再判断'''
# 小练习
salary = int(input("your salary:"))
if salary < 3000:
    print("活不下去了")
elif  salary < 5000:
    print("勉勉强强")
elif  salary < 10000
	print("还过得去")
else:
    print("生活有了一点奔头")

image

if分支嵌套

# 语法结果
if:条件
	条件成立时执行的子代码块
    if:条件1
        条件1成立时执行的子代码块
    else:
        条件1不成立时执行的代码块
 else:
    条件不成立时执行的代码块
 '''嵌套循环只有当外层条件成立时才会判断内层的条件
    只有当内层条件判断执行完以后才会执行外层
 '''
# 小练习
age = int(input("your age:"))
weight = int(input("your weight:"))
height = int(input("your height:"))
is_beautiful = True
is_successful = True
if 20 < age < 22 and weight < 100 and height and is_beautiful:
    print("小姐姐能加个微信吗?")
    if is_successful:
        print("晚上一起吃个饭吧")
    else:
        print("不好意思,没兴趣")
else:
    print("算了,缘分不可强求")

image

循环结构

  • 循环结构就是重复执行某一项工作
  • 关键字:while
    image

while循环

# 语法结果
while:条件
    条件成立时执行的子代码块
'''while循环只有当条件为False时循环才会结束,
   条件一直成立,循环一直执行,while用于循环次数未知的情况
'''
# 小练习
while True:
    # 获取用户输入
    username = input("your name:")
    password = input("your password:")
    #根据用户的输入进行判断
    if username == "jenny" and password == "123":
        print("这位爷,里面请")
    else:
        print("穷逼给爷爬")
 '''
 当条件为真,子代码块会一直循环执行,形成死循环的情况
 '''

image

while +break

# while + break
break表示结束本层循环
# 小练习
while True:
    username = input("your name:")
    password = input("your password:")
    if username == "jenny" and password == "123":
        print("这位爷,里面请")
        # 结束本层循环
        break
    else:
        print("穷逼给爷爬")
  '''
  当加了break以后,条件判断成立,循环结束
  '''
image-20211104213025938

break和嵌套循环

# while嵌套循环
while True:
    # 获取用户输入
    username = input("your name:")
    password = input("your password:")
    # 判断用户输入的内容
    if username == "jenny" and password == "123":
        print("这位爷,里面请")
        # 内层循环
        while True:
            # 获取用户输入
            cmd = input("请输入您的指令:")
            # 判断用户输入
            if cmd == "sp":
                print("请跟我来~")
                # break结束内层循环
                break
        # break结束本层循环
        break
    else:
        print("穷逼给爷爬")
  '''
  break的意思是遇到break时结束当前循环,
  当遇到嵌套循环时,break在哪个循环里,就是结束哪个循环
  '''

image

全局标识位

# 标志位的使用
flag = True
while flag:
    username = input("your name:")
    password = input("your password:")
    if username == "jenny" and password == "123":
        print("这位爷,里面请")
        while flag:
            cmd = input("请输入您的指令:")
            if cmd == "sp":
                print("请跟我来~")
                flag = False
    else:
        print("穷逼给爷爬")
  '''
  全局标识位和break的区别:
  1.break是结束当前层循环,
  2.但存在全局标识位的时,不论标识位在哪一层循环,
  只要存在标识位==“False”,循环都会结束
  '''

image

while+continue

#while+continue
continue表示结束本次循环,开始下次循环
# 小练习:打印出从0-10以内的数,不打印4
# 1.定义一个初始变量
count = 0
# 2.根据条件进行while循环
while count < 11:
    # 5.判断count的值
    if count == 4:
        # 6.变量值自增1
        count += 1
        # 7.当count为4时结束本次循环,开始下一次循环
        continue
    # 3.打印count的值
    print(count)
    # 4.变量值自增1
    count += 1

image

while+else

# while+else
# 表现方式一
count = 0
while count < 5:
    print(count)
    count += 1
else:
    print("给爷爬!")  # else后面的内容会输出
count = 0
# 表现方式二
while count < 5:
    if count == 4:
        break
    print(count)
    count += 1
else:
    print("给爷爬!")  # else后面的内容会输出
# 当while和else连用时,只要不是人为的终止循环,else后面的内容会照常输出

今日作业:

# 要求:用户可以有三次猜错的机会 如果过程中猜对了直接退出
# 三次机会用完之后提示用户是否继续尝试 如果是则再给三次机会 如果否则直接结束
# 1.定义一个变量real_age,计数器count,
# 2.while循环,获取用户输入,根据用户输入进行判断
# 3.当用户输入正确,结束本层循环,反之计数器+1,循环继续执行,直到while后面条件不成立时
# 4.当用户输入错误时,根据count的值进行判断,当count为3时,提示用户是否继续尝试
# 5.当用户选择继续尝试,输入“是”,则用户重新获得三次机会,count从0开始计数,反之游戏继续
real_age = 25  # 定义一个变量real_age
count = 0  # 定义计数器count,给个初始值0
while count < 3:  # while循环,count = 3时结束
    guess_age = int(input(" please input your age:"))  # 获取用户输入的信息
    if guess_age == real_age:  # 根据获取到的用户输入进行判断
        print("恭喜你猜对了!")
        print("游戏结束.....")
        break  # 结束本层循环
    else:
        count += 1  # 计数器count依次递增
        print("很遗憾你猜错了")
        if count == 3:  # 根据计数器的值进行判断
            count = 0  # count重新开始计数
            print("很遗憾,你还有%s次机会,是否继续" % (3 - count))
            judgement = input("是否继续:")  # 获取用户输入
            if judgement == "是":  # 根据用户的输入进行判断
                print("恭喜你重新获得了三次机会!")
            else:
                print("游戏结束.....")
                break  # 结束本次循环
        else:
            print("你还有%s次机会" % (3 - count))
posted @ 2021-11-04 22:23  PyLy  阅读(93)  评论(0)    收藏  举报

念两句诗

入我相思门,知我相思苦,长相思兮长相忆,短相思兮无穷极。
【唐代】李白