DAY1


     参考博客:http://www.cnblogs.com/wupeiqi/articles/5433893.html1. Python介绍
        - 程序员减少开发成本
    2. Python和其他语言对比
        - C: 机器码
        - 其他高级语言: 字节码 -> 机器码 
    3. Python种类
        - CPython :  代码 -> C字节码 -> 机器码 (一行一行)
        - pypy:      代码 -> C字节码 -> 机器码 全部转换完 -> 执行
        - 其他Python:代码 -> 其他字节码 -> 机器码
    4. Python基础
        Python规则
            1. 安装: python解释器
            2. 写程序
            
            C:\Python35\python.exe D:\1.txt
            # a. 打开文件,读取文件内容
            # b. 词法分析,语法分析
            # c. 字节
        - 解释器
            windows:
                C:\Python35\python.exe D:\1.txt
                
                C:\Python35\python.exe
        
            Linux:
                C:\Python35\python.exe D:\1.txt
                
                C:\Python35\python.exe
                
                头部#!/usr/bin/python
                chmod 755 1.py
                ./1.py
                
            - 潜规则
            .py 结尾
        - 编码
            最开始:英文256-> ascii    :a  00000010                     s 00000100   dfasd98123hksinqjkashdakls
                    万国码(至少16位) :a  00000000 00000010            中 10000000 00000000 00000010       文,日文。lljasdfasdfsfda
                    utf-8,对万国码压缩 :a  00000010
                    gbk,gb2312         :a,中 10000000 00000000 00000010       文,日文。lljasdfasdfsfda
        
            中文:龙
                utf-8,需要使用三个字节来表示 24   10000000 00000000 00000010
                gbk,  需要使用二个字节来表示 16   00100110 00000010
            
            
            Python编码相关:
                - 文件编码
                - Python解释器编码(py3 utf-8)   # -*- coding:utf-8 -*-
                PS: Python解释器编码(ascii)
            
        5. IDE
            pycharm
               - 使用
                    1. new project 
                    2. new 创建文件夹
                    3. new 创建py文件
                    4. 在py文件中右键, run xx.py
               - 文件编码
               - 文件模板
               - 改变大小
        6. 注释
            # 
            """ """
            
        7. .pyc文件,字节码
        
        
        8. 变量
        
            - 字母
            - 数字(不能开头)
            - 下划线
            - 不能使用python内置关键字
            
            PS: 下划线分割
            
        9. 输入,输出
        
            v = input(">>>")
            
            import getpass
            v = getpass.getpass('>>>')
            
            
            print(v)
        
        10. 条件语句
        
            if 条件:
                成功走这里
            else:
                失败走着
                
                
            应用:
                import getpass

                name = input("请输入姓名:")
                pwd = getpass.getpass('请输入密码:')
                if name == 'alex' and pwd == 'sb':
                    print('欢迎登陆')
                else:
                    print('滚蛋')
                    
             
             
             if 条件:
                ...
             elif 条件:
                ...
             else:
                ...
                
             应用:
                username = input('>>>')
                if username == 'alex':
                    print('普通管理')
                elif username == 'oldboy':
                    print('超级管理')
                elif username == '郭少龙':
                    print('')
                elif username == '刘一':
                    print('装逼犯')
                else:
                    print('再见...')

                print('end')
             
             
        11. 循环语句
        
            while 条件:
                continue    # 立即开始下次循环
                break       # 跳出所有循环
 
        
        12. 练习:
            1、使用while循环输入 1 2 3 4 5 6     8 9 10

            2、求1-100的所有数的和

            3、输出 1-100 内的所有奇数

            4、输出 1-100 内的所有偶数

            5、求1-2+3-4+5 ... 99的所有数的和

            6、用户登陆(三次机会重试)
            
        13. 上述内容总结
                a. input    getpass.getpass
                b. 
                    if 条件:
                        ...
                    elif 条件:
                        ...
                    else:
                        pass
                c. 
                    while 循环:
                        break  跳出所有循环
                        continue 结束本次循环
                d. 编码
                    - 文件编码
                    - 解释器编码 
                      # -*- coding:utf-8 -*-
                e. 字符串编码
                    - ascii
                    - unicode   至少2个字节 = 10位
                    - utf-8     压缩版,中文3个字节
                    - gbk gb2312中文2个字节
                f. pycharm
                     - project
                     - .py
                     - 编码 coding
                     - 模板 template
                     - 鼠标滚动 mouse
                g. 快捷键
                    - #
                    - """ """
                    - Ctrl + ?
                h. print("asdf")
                
                i. 变量
                    字母
                    数字(不能开头)
                    下划线
                    不能是关键字
                    
                    _
                    
                其他:
                    i = 0
                    i += 1 # i = i + 1
                    
                    3%2
                    
                    age = 18
                    name = 'alex'
                    name = "alex"
                    name = """alex"""
                    name = "'alex'"
                    name = """
                        asdfalex
                        asdfasdf
                        asdf
                         """
                    
        
    5. 运算符
    
    
        注意:
            a. 
                i += 1
            
            b. 
                if 1 == 1 or 1 > 2 and 1 == 4:
                    print('正确')
                else:
                    print('错误')
        
            c.
                content = "Alex 前几天去泰国玩姑娘,一不小心染上了病,他的内心活动是,真该多来几个"

                if "前几天去" in content:
                    print('包含敏感字符')
                else:
                    print(content)
    
    6. Python数据类型
        a. 整数 int
             - 创建
                a = 123
                a = int(123)
             - 转换
                age = "18"
                new_age = int(age)
        b. 布尔值 
             - 创建
                a = True
                b = False
             - 转换
                - 数字转换,只有0是False,其他True
                - 字符串,  只有""是False,其他True
                - 待续...
        
        c. 字符串
             - 创建
                a = "alex"
                a = str('alex')
             - 转换
                age = 19
                new_age = str(age)
             - 字符串的拼接
                    name = 'alex'
                    gender = ''
                    new_str = name + gender
                    print(new_str)
            
             - 字符串格式化    
                    # 占位符,
                    # name = '我叫李杰,性别:%s,我今年%s岁,我在说谎!'
                    # new_str = name %('男',19,)
                    # print(new_str)

                    name = '我叫李杰,性别:%s,我今年%s岁,我在说谎!' %('',19,)
                    print(name)
                    
             - 判断子序列是否在其中
        
                content = "Alex 前几天去泰国玩姑娘,一不小心染上了病,他的内心活动是,真该多来几个"

                if "前几天去" in content:
                    print('包含敏感字符')
                else:
                    print(content)
    
              - 移除空白
                    val = " alex "
                    print(val)
                    # new_val = val.strip() # 左右
                    # new_val = val.lstrip()# 左边
                    # new_val = val.rstrip() # 右边
                    # print(new_val)
              - 分割
                    user_info = "alex sb123 9"
                    # v = user_info.split('|')
                    # v = user_info.split('|',1)
                    # v = user_info.rsplit(' ',1)
                    # print(v)
              - 长度(字符)
                    val = "李杰sb"
                    v = len(val)
                    print(v)
              - 索引
                    val = "李杰sb"
                    v = val[0]
                    print(v)
                    
                    val = input('>>>')
                    i = 0
                    while i < len(val):
                        print(val[i])
                        i += 1
              - 切片
              
                    name = '我叫李杰,性别我今年岁,我在说谎!'
                    print(name[0])
                    print(name[0:2])
                    print(name[5:9])
                    print(name[5:])
                    print(name[5:-2])
                    print(name[-2:])
                            
            d. 列表
                 创建:
                    a = ['alex','','eric',123]
                    a = list(['alex','','eric',123])
                    
                 in判断:
                 
                    if 'al' in a:
                        pass
                        
                    if 'al' in a[0]:
                        pass
        
                 索引:
                    val = a[0]
                    
                 长度:
                    val = len(a)
                    
                 切片:
                    a = ['alex','','eric',123]
                    v = a[0::2]
                    print(v)
                 
                 追加:
                    a = ['alex','','eric',123]
                    a.append('xxoo')
                    print(a)
                 插入:
                    a = ['alex','','eric',123]
                    a.insert(0,'')
                    print(a)
                 删除:
                    a = ['alex','eric','','eric',123]
                    # a.remove('eric')
                    del a[0]
                    print(a)
                    
                更新:
                    a = ['alex','eric','','eric',123]
                    a[1] = '阿斯顿发送到'
                    print(a)
                            
                For循环:
                    a = ['alex','eric','','eric',123]
                    for item in a:
                        print(item)
                        # break
                        # continue
        
            e. 字典操作
                - 创建
                
                    v = {
                        'name': 'alex',
                        'password': '123123'
                    }
                    
                # 常用操作

                # 索引获取值
                # n = v['name']
                # print(n)
                
                # 增加,无,增加;有,修改
                # v['age'] = 19
                # print(v)
                
                # 删除
                # del v['name']
                # print(v)
                
                # 循环
                # for item in v.keys():
                #     print(item)
                # for item in v.values():
                #     print(item)
                # for key,val in v.items():
                #     print(key,val)
        
        
                print(len(user_dict))
                
                PS: 相互嵌套
                user_dict = {
                    'k1': 'v1',
                    'k2': {'kk1':'vv1','kk2':'vv2'},
                    'k3': 123,
                    'k4': ['alex','eric',['a','b','c'],'李杰',{'k11':'vv1'}],
                }
                user_dict['k4'][2].append('123')
                user_dict['k4'][4]['n'] = '过啥龙'
        
        
                应用:
                
                    user_list = [
                        {'name':'alex','pwd':'123123','times':1},
                        {'name':'eric','pwd':'123123','times':1},
                        {'name':'tony','pwd':'123123','times':1},
                    ]
                    user = input('用户名:')
                    pwd = input('密码:')
                    for item in user_list:
                        if user == item['name'] and pwd == item['pwd']:
                            print('登录成功')
                            break
                            
示例:
    db
        alex|123123|3
        eric|123123|3

    login.py
    
            #!/usr/bin/python
            # -*- coding:utf-8 -*-
            # 1. 打开并读取文件内容
            f1 = open('db','r')
            data = f1.read()
            f1.close()

            # 2. 格式化,列表中嵌套字典
            print(data)
            user_info_list = []
            user_str_list = data.split('\n')
            for item in user_str_list:
                temp = item.split('|')
                v = {
                    'name': temp[0],
                    'pwd': temp[1],
                    'times': temp[2]
                }
                user_info_list.append(v)
            user_info_list[1]['times'] = 3
            print(user_info_list)

            # 3. 列表中嵌套的字典


            #
            # 4. 重新写入文件
            target = """alex|123123|3\neric|123123|3"""

            f2 = open('db','w')
            f2.write(target)
            f2.close()
        
作业:
    1. 基于文件存储的用户登录程序(3次登录失败,锁定用户)
        先补充示例
        
    2. 练习题:
    
        a. 元素分类

            有如下值集合 v1 = [11,22,33,44,55,66,77,88,99,90],
            将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
            即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
            
            v2 = {'k1': [],'k2':[] }
            

        b. 功能要求:
            v = 2000
            要求用户输入总资产,例如:2000
            显示商品列表,让用户根据序号选择商品,加入购物车
            购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
            goods = [
                {"name": "电脑", "price": 1999},
                {"name": "鼠标", "price": 10},
                {"name": "游艇", "price": 20},
                {"name": "美女", "price": 998},
            ]
            
            num = input('>>>') # 1
            num = int(num)
            goods[num]['price']

        c. 用户交互,显示省市县三级联动的选择
        
            dic = {
                "河北": {
                    "石家庄": ["鹿泉", "藁城", "元氏"],
                    "邯郸": ["永年", "涉县", "磁县"],
                }
                "河南": {
                    ...
                }
                "山西": {
                    ...
                }
            }
            
            for v in dic.keys():
                print(v)
            inp = input('>>>')
            dic[inp]




        
        

 

posted on 2017-12-18 11:01  我是达菲君呀  阅读(92)  评论(0)    收藏  举报

导航