day 05

基本运算符

  • 成员运算符

    # in 在里面 
    # not in 取反
    print('ycc' in 'hello ycc')  # True
    print('ycc' in 'hellocc y')  # False
    print('y' in 'ycc') #True
    
    #字典参与成员运算,只有key参加,value不参加
    print('name' in {'name': 'ycc', 'age': 27})  # True
    print('ycc' in {'name': 'ycc', 'age': 27})  # False
    
  • 身份运算符

    # is 比较左右两个值 身份id 是都相等
    # == 比较左右两个值 他们的值 是否相等
    l1 = ['ycc', 1217]
    l2 = ['ycc', 1217]
    print(l1 == l2)
    print(id(l1), id(l2))  # 输出结果:1899904406016 1899904260032
    # 他们的值相等,但是他们的id不同
    # id相等,他们的值一定相等
    
    

流程控制

  • 顺序结构

    代码自上而下依次运行
    #例:
    print('ycc')
    print('aaa')
    print('xxx')
    
  • 分支结构

    '''
    必备知识:
    	代码缩进
    	在python中使用缩进来表示代码的从属关系
    	一般情况下我们采取4个空格来表示缩进(推荐)
    	ps : 同时在python中,按Tab键可直接缩进4个空格,shift+Tab可往前缩进4个空格
    	
    	并不是所有代码都拥有子代码
    	
    	同属于一个关键字的子代码必须保持相同的的缩进量
    	
    '''
    
    #如果女孩的年龄的小于30岁,我们则称之为小姐姐
    inp_age = input('age is :')
    inp_age = int(inp_age)
    if inp_age < 30:
        print('小姐姐')
    '''
    if 条件:
    	条件成立后才会运行此子代码
    '''
    
    #如果女孩的年龄小于30,我们叫小姐姐,否则叫老阿姨
    inp_age = input('age is :')
    inp_age = int(inp_age)
    if inp_age < 30:
        print('小姐姐')
    else:
        print('老阿姨')
        
    '''
    if 条件:
    	代码1
    	代码2
    	...
    else:
    	代码1
    	代码2
    	...
    	
    if条件成立后运行if的子代码
    如果if条件不成立则运行else的子代码
    
    '''
    
    # 如果女孩子的年龄小于30岁 打印小姐姐 小于40随打印阿姨我不想努力了 小于50岁老宝贝 否则躺平
    inp_age = input('age is :')
    inp_age = int(inp_age)
    if inp_age < 30:
        print('小姐姐')
    elif inp_age < 40:
        print('阿姨我不想努力了')
    elif inp_age < 50:
        print('老baby')
    else:
        print('躺平')
        
    """
    if 条件1:
        代码1
        代码2
        ...
    elif 条件2:
        代码1
        代码2
        ...
    else:
        代码1
        代码2
        ...
        条件1成立 执行if的子代码 elif和else都不执行
        条件2成立(说明条件1没有成立) 执行elif的子代码 if和else都不执行
        如果条件都不成立 则走最后的else子代码 if和elif都不执行
        elif可以写多个
    """
    
  • 分支结构补充

    # 条件可以是一个 也可以是多个连接
    # gender = 'female'
    # age = 18
    # height = 165
    # is_beautiful = True
    # if gender == 'female' and age < 22 and height > 155 and is_beautiful:
    #     print('吃饭看电影 天黑了')
    # else:
    #     print('我有事先走了')
    
    
    # if嵌套
    # gender = 'female'
    # age = 18
    # height = 165
    # is_beautiful = True
    # is_success = True
    # if gender == 'female' and age < 22 and height > 155 oand is_beautiful:
    #     print('能否加个微信认识一下?')
    #     if is_success:
    #         print('吃饭 散步 看电影 交流')
    #     else:
    #         print('你是个好人')
    # else:
    #     print('我有事先走了')
    
    
    # 成绩评判系统
    """
    分数大于90 打印优秀
    分数大于80 打印良好
    分数大于70 打印一般
    分数大于60 打印及格
    分数小于60 打印挂科
    """
    # score = input('score>>>:')
    # # 暂且先忽略
    # score = int(score)
    # if score > 90:
    #     print('优秀')
    # elif score > 80:
    #     print('良好')
    # elif score > 70:
    #     print('一般')
    # elif score > 60:
    #     print('及格')
    # else:
    #     print('挂科')
    
    
    
    # 2.用户登录功能
    # 1.获取用户的用户名和密码
    # username = input('username>>>:')
    # password = input('password>>>:')
    # # 2.判断用户名和密码是否正确
    # if username == 'jason' and password == '123':
    #     print('老板好 来宾三位!')
    # else:
    #     print('去你妹的')
    
    
    # 3.根据星期的不同做出不同的动作  周一到周五划水  周六周日躺平
    # today = input('周几>>>:')
    # if today in ('一','二','三','四','五'):
    #     print('划水')
    # elif today in ('六','七'):
    #     print('躺平')
    # else:
    #     print('见了鬼了')
    
  • 循环结构

    #循环结构之 while 循环
    '''
    while 条件:
    	循环体代码1	
    	循环体代码2
    	...
    
    当while条件成立的情况下会一次运行循环体代码
    子代码运行结束后再次返回至条件判断条件是否成立,如果成立则继续运行循环体代码
    如果不成立则停止循环
    '''
    #登录:输入账号和密码,如果账号和密码正确,则登录成功,否则登录失败
    #1.简单版
    username = 'ycc'
    userpassword = '1217'
    while True:
        inp_username = input('please input your username : ')
        inp_userpassword = input('please input your userpassword : ')
        if inp_username == username and inp_userpassword == userpassword:
            print('账号登录成功')
            break
        else:
            print('账号或密码输入错误')
        break
    #2.复杂版(全局标志位)
    username = 'ycc'
    userpassword = '1217'
    tag = True
    while True:
        inp_username = input('please input your username : ')
        inp_userpassword = input('please input your userpassword : ')
        if inp_username == username and inp_userpassword == userpassword:
            print('账号登录成功')
            tag = False
        else:
            print('账号或密码输入错误')
        break
    
        
    # continue 与 break 的区别
    # 1.循环打印1-10,除了7  continue
    count = 1
    while count < 11:
        if count == 7:
            count += 1
            continue
        print(count)
        count += 1
    
    # 2. break
    count = 1
    while count < 11:
        if count == 8:
            break
        print(count)
        count += 1
    else:
        print('当while没有被break主动结束的情况下自动结束了 则会走else')
    
    
  • 循环嵌套

    # 输入账号和密码,账号和密码输入正确则登录成功,输入错误3次则退出程序
    # 如果登录成功则输入指令:q,如果指令输错3次则退出程序
    username = 'ycc'
    userpwd = '1217'
    count = 0
    while count < 3:
        inp_username = input('请输入账号 : ')
        inp_userpwd = input('请输入密码 : ')
        if inp_username == username and inp_userpwd == userpwd:
            print('账号登录成功')
            count1 = 0
            while count1 <3:
                cmd = input('请输入指令: ')
                if cmd == 'q':
                    print('指令正确')
                    break
                else:
                    print('指令{x}不正确'.format(x=cmd))
                    count1 += 1
            break
        else:
            print('账号或密码错误')
            count += 1
    
  • for循环

    #########一:
    '''
    什么是for循环
        循环就是重复做某件事,for循环是python提供的第二种循环机制
    
    为什么要有for循环
        理论上for循环能做得,while循环也都能做
        之所以要有for循环,是因为for循环取值比while循环取值更简洁
    
    如何使用for循环
        for 变量名 in 可迭代对象:  # 可迭代对象可以是:列表、字典、元组、字符串、集合
    
    '''
    
    # 案例一:列表循环取值
    #  简单版
    l = ['qqq', 'aaa', 'vvv']
    for x in l:
        print(x)
    # 列表 复杂版
    l = ['qqq', 'aaa', 'vvv']
    i = 0
    while i < 3:
        print(l[i])
        i += 1
    
    # 案例二:字典循环取值
    # 简单版
    dic = {'k1': 'ycc', 'k2': 'xii', 'k3': 'Tracy'}
    for k in dic:
        # print(k)  # 输出结果:k1 k2 k3
        print(k, dic[k])
        '''
         输出结果:
        k1 ycc
        k2 xii
        k3 Tracy
        '''
    #复杂版:
    
    
    # 案例3:字符串循环
    #简单版:
    msg = 'you can you up no can no bb'
    for x in msg:
        print(x)
    #复杂版:
    
    
    '''
    总结for循环与while循环的异同
    1.相同之处:都是循环,for循环能做得,while循环都能做
    2.不同之处:
            while循环称之为条件循环,循环的次数取决于条件何时为假
            for循环称之为‘取值循环’,循环的次数取决于in后面包含的值的个数 例:[a, b, c]则循环3次
    '''
    for x in [1, 2, 3]:
        print("===>")
        print("ycc")
        '''
        运行结果:
        ===>
        ycc
        ===>
        ycc
        ===>
        ycc
        '''
    
    for x in 'a c':  # 空格也算一次,因此这里也是循环3次
        inp_name = input('请输入您的账号:')
        inp_pwd = input('请输入您的密码:')
        '''
        输出结果:
        请输入您的账号:aaa
        请输入您的密码:ccc
        请输入您的账号:aaa
        请输入您的密码:ccc
        请输入您的账号:a
        请输入您的密码:c
        '''
    #########二:
    # range 功能介绍
    for x in range(30):  # 0~29,循环30次
        print("ycc")
    
    for x in range(1, 10):  # 左闭右开,因此循环9次
        print('ycc')
    
    for x in range(1, 10, 2):  # 这里2代表步长为2, 意思即为取1, 3, 5, 7, 9   因此循环5次
        print('xixi')
    
    # #循环3次退出程序
    name = 'ycc'
    password = '121'
    for x in range(3):
        inp_username = input('please input your name: ')
        inp_password = input('please input your password: ')
        if inp_username == name and inp_password == password:
            print('账号登录成功')
            break
    else:
        print('账号或密码输入错误次数过多')
        
    #########三:
    # # range()知识点补充
    # #1.for搭配range,可以按照索引取值,但是麻烦不推荐
    l = ['aaa', 'bbb', 'vvv']
    for i in range(len(l)):  # 这里len(l)等于3,即指循环3次
        print(i, l[i])
    '''
    输出结果:
    0 aaa
    1 bbb
    2 vvv
    '''
    
    # 2.  range()在python2与在python3中的区别
    # 在python2中
        # range(10) 输出结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    # 在python3中
        #range(10)   输出结果:range(0,10)
    
    #for + continue
    for i in range(6):
        if i ==4:
            continue
        print(i)
    
    # #for 的嵌套循环:外层循环一次,内层循环需要完整的循环完毕
    for i in range(3):
        print('========>外层', i)
        for j in range(5):
            print('===>内层', j)
    '''
    输出结果:
    ========>外层 0
    ===>内层 0
    ===>内层 1
    ===>内层 2
    ===>内层 3
    ===>内层 4
    ========>外层 1
    ===>内层 0
    ===>内层 1
    ===>内层 2
    ===>内层 3
    ===>内层 4
    ========>外层 2
    ===>内层 0
    ===>内层 1
    ===>内层 2
    ===>内层 3
    ===>内层 4
    '''
    # 补充:终止for循环只有break一种方案
    
  • 作业

    '''
    猜年龄游戏
        1.错误的情况下只能猜三次
          正确的情况下直接退出游戏
        2.三次错误之后提示用户三次机会已用完
          问他是否继续 如果继续则再给三次机会
          如果不继续则直接退出
    '''
    #方法一:复杂嵌套
    age = '18'
    count = 0
    while count < 3:
        inp_age = input('age is :')
        if inp_age == age:
            print('年龄猜测正确')
            break
        else:
            print('年龄猜测错误')
            count += 1
            if count == 3:
                print('提示:是否需要继续')
                while True:
                    point = input('请输入指令: ')
                    if point == 'Y':
                        print('再给三次机会')
                        count1 = 0
                        while count1 < 3:
                            inp_age = input('age is :')
                            if inp_age == age:
                                print('年龄猜测正确')
                                break
                            else:
                                print('年龄猜测错误')
                                count1 += 1
                        break
                    elif point == 'N':
                        print('不需要退出程序')
                        break
     #方法二 简单:
    age = 18
    count = 0
    while count < 3:
        inp_age = input('age is : ')
        inp_age = int(inp_age)
        if inp_age == age:
            print('年龄猜中')
            break
        else:
            print('年龄猜测错误')
            count += 1
        if count == 3:
            print('提示三次机会已用完:输入指令:Y则表示再给三次机会,输入指令:N 则表示不需要直接退出')
            cmd = input('请输入指令 : ')
            if cmd == 'Y':
                count = 0
            elif cmd == 'N':
                print('不需要,直接退出程序')
    
    
posted @ 2021-06-01 21:38  ccFTD  阅读(35)  评论(0)    收藏  举报