基本流程控制

基本流程控制

​ 顺序结构

​ 代码自上而下依次运行

​ 分支结构

​ 代码运行到某个节点,会依据条件的不同,执行不同的代码

​ 循环结构

​ 代码运行到某个节点,重复执行某一段代码,直到循环的结束

分支结构

​ 在python中,会依据代码的缩进来表述代码的所属关系,一般情况下缩进四个空格。

'''
if 条件1:
    代码1
    代码2
    ...
 elif 条件2:
    代码1
    代码2
    ...
 else:
     代码1
     代码2
     ...
     
如果条件1满足执行if的子代码块,条件1不满足条件2满足执行elif的代码块,条件1,2都不满足,则执行else的代码块
if 判断语句只执行一个分支,一个分支执行,则其他分支都不执行
'''


列:
'''
基于if的嵌套判断,以及条件的逻辑运算

需求:
   相亲系统
   用户输入姓名,年龄,性别,身高,体重
   如果用户输入的年龄小于22岁并且身高大于170并且性别为女,体重小于110,则请求活动,是否同意,如果同意则打印选择
       活动列表,用户可以选择不同的活动,获得感情分,满100则加微信,不同意则打印出,’下一位‘
   如果用户输入的年龄大于22或者身高小于170,体重大于120,则打印出,用户已下线
'''
import time
func_dic = {
    '1': '逛街',
    '2': '看电影',
    '3': '吃饭',
    '4': '打游戏',
    'q': '退出'
}
user_name = input('请输入你的姓名>>>').strip()
user_age = input('请输入你的年龄>>>').strip()
user_gender = input('请输入你的性别>>>').strip()
user_height = input('请输入你的身高>>>').strip()
user_weight = input('请输入你的体重>>>').strip()

if int(user_age) < 22 and user_height > '170' and user_gender == '女' and user_weight < '110':
    print('你符合相亲标准,是否参与接下来的活动(y?n)')
    choice = input('请输入你的选择>>>').strip()
    if choice == 'y':
        while True:
            for k, v in func_dic.items():
                print('活动编号:%s    活动:  %s' % (k, v))
            check = input('请输入你的活动指令>>>').strip()
            if check == 'q':
                break
            if check.isdigit():
                check = int(check)
                if check in range(len(func_dic)):
                    if check == '1':
                        print('正在逛街')
                        time.sleep(3)
                    elif check == '2':
                        print('正在看电影')
                        time.sleep(3)
                    elif check == '3':
                        print('正在吃饭')
                        time.sleep(3)
                    else:
                        print('正在打游戏')
                        time.sleep(3)
                else:
                    print('请输入正确的指令')
            else:
                print('输入非法')
    else:
        print('你很好,我不配,不好意思下一位')
else:
    print('你走吧')

循环结构

while

'''
while 条件:
    循环体代码
    
    
 当条件成立时,执行循环体代码,返回判断条件是否成立,如果成立,则继续执行循环体代码,直到条件不成立则循环结束
'''
1.循环加普通的break

user = 'lyh'
user_password = '123'
while True:
    username = input('请输入你的用户名')
    password = input('请输入你的密码')
    if username == user and password == user_password:
        print('登录成功')
        break
    else:
        print('登录失败')
        
2.循环加else
count = 0
while count < 11:
    print(count)
    count += 1
else:
    print('当while循环没有被break结束掉,运行else的代码块')
'''
上述情况,当这个循环没有被人为的结束的时候,则会执行else的代码块
'''

3.break和continue
'''
break : 直接跳出循环
continue : 结束本次循环,但不是跳出循环
'''
4. **全局标志定位**
'''
全局标志定位,即定义一个全局变量,(如flag = True ),当循环体的某一个判断成立需要跳出循环的时候,在该条件判断语句的下面加一个(flag = False)这样结束循环
'''
user = 'lyh'
user_password = '123'
flag = True
while flag:
    username = input('请输入你的用户名')
    password = input('请输入你的密码')
    if username == user and password == user_password:
        print('登录成功')
        while flag:
            choice = input('请输入你的命令 (q退出)')
            if choice == 'q':
                flag = False
    else:
        print('登录失败')

        
        
例:
'''
基于循环的猜年龄游戏,登录之后才可以玩,只能猜三次
'''
name = 'lyh'
password = '123456'
age = 18
flag = True
while flag:
    user_name = input('请输入你的用户名:===>').strip()
    user_password = input('请输入你的密码:===>').strip()
    if user_name == name:
        if user_password == password:
            print('登录成功,请开始游戏')
            count = 0
            while True:
                if count < 3:
                    input_age = input('请输入年龄:====>').strip()
                    input_age = int(input_age)
                    if input_age == age:
                        print('successful')
                        flag = False
                        break
                    else:
                        print('game over')
                        count += 1
                else:
                    print('你个蠢比,三次都猜不对,充值请继续猜,是否充值(y/n)')
                    user_yes_or_no = input('是否充值===>').strip()
                    if user_yes_or_no == 'y':
                        print('充值成功,继续猜')
                        count = 0
                    elif user_yes_or_no == 'n':
                        flag = False
                        break
        else:
            print('用户名密码错误')
    else:
        print('用户名不存在')


for

'''
for 变量名 in 可迭代对象(字符串,列表,字典,元组):
    循环体代码
'''
1.与break和continue
'''
与之前的while循环一样
'''
2.与else
'''
与while+else一样,只要循环体没有被人为的结束,则运行else的代码块
'''
例:
'''
打印九九乘法表
'''
for i in range(1,10):
    for j in range(1, i+1):
        print('%s*%s = %s '%(j,i,i*j),end=' ')
    print()

range

'''
range(起始位置, 终止位置)
顾头不顾尾
'''
在python2和python3之间的区别
'''
python2: python2中直接回生成一个列表,比较耗费内存空间
         xrange和python3中的range等价
python3 : 在python3里面生成一个’老母鸡‘,你需要,它给你下一刻蛋,不需要就不下,节省内存空间
'''
posted @ 2021-06-01 16:10  剧终cur  阅读(49)  评论(0)    收藏  举报