Python学习总结__Day1

发布时间:2019-06-08 21:21:44编辑:auto阅读(1882)

    一、Python是一门什么类型语言

    1、解释型:一边编译一边执行,劣势是运行速度慢,但通过运用PyPy交互解释器(JIT技术)会让python程序执行速度快很多。优势是可移植性强。

    2、强类型:即类型安全类型。除非通过强制转换,否则变量类型将不会发生变化。

    3、动态类型:变量类型取决于赋的值,不需要提前定义变量数据类型

    二、Python的优缺点

    忧:

    1、可移植性强,如果没有用到与操作系统联系很强的第三方库,可以在不同的操作系统上无缝衔接运行,不需要改任何代码

    2、有丰富的第三方库,功能及其丰富

    3、代码强制缩进导致结构清晰,可读性强

    缺:

    1、运行速度慢

    2、由于它是脚本语言,执行时不可加密源码。(PS:需要保密部分可用C或者C++写)

    3、线程不能用多个cpu,即多核无效

    三、Python2.x和Python3.x的区别

    1、Python3默认采用utf-8编码格式,可以识别汉字

    2、Python3的语法有一些优化:例1:input的变化

    四、Python基础语法

    1、变量:变量指向问题:name=name2,其中name并不是指向name2再指向内存而是直接指向name2所对应的内存,故当改变name2时,name不发生变化

    2、input、print

    3、字符串拼接:+号、占位符、format(命名参数加变量赋值、数字参数加顺序变量赋值)

    4、while循环-else

    5、for循环-else

    6、if-elif-else

    7、强类型转换(PS:input默认结果是字符串)

    8、linux中软链接问题,将原来的python rm掉,通过ln -ls 实现新的软连接。

    五、应用

    1、文件操作之简单的登录

    #Author:Barry
    while True:
        user = input("请输入用户名:")
        f_User = open(r'E:\PythonProject\s14\day1\User.txt')
        # for i in range(3):
        #     print(f.readline())
        #     print(type(f.readline()))
        lines = f_User.readlines()#返回值为一个列表
        count1 = 0
        for i in lines:
            element = i.strip('\n').split(',')
            if user == element[1]:
                count1 = 1
                break
        if count1 == 1:
            print("该用户存在")
            break
        else:
            print("该用户不存在,请重新输入。。")
        f_User.close()
    count3 = 0
    for i in range(4):
        pwd = input("请输入密码:")
        f_lockedUser = open(r'E:\PythonProject\s14\day1\lockedUser.txt','r+')
        lines_locked = f_lockedUser.readlines()
        count2 = 0
        for j in lines_locked:
            if user == j.strip('\n'):
                count2 = 1
                break
        if count2 == 1:
            print("该用户已锁定!")
            break
        elif pwd == element[2]:
            print("Welcome " + user)
            break
        else:
            print("密码错误,请重新输入密码。。")
            count3 += 1
            if count3 == 3:
                f_lockedUser.write(user + '\n')
        f_lockedUser.close()

    2、三级菜单

    data = {
        '北京':{
            "昌平":{
                "沙河":["oldboy","test"],
                "天通苑":["链家地产","我爱我家"]
            },
            "朝阳":{
                "望京":["奔驰","陌陌"],
                "国贸":{"CICC","HP"},
                "东直门":{"Advent","飞信"},
            },
            "海淀":{},
        },
        '山东':{
            "德州":{},
            "青岛":{},
            "济南":{}
        },
        '广东':{
            "东莞":{},
            "常熟":{},
            "佛山":{},
        },
    }
    exit_flag = False
    
    while not exit_flag:
        for i in data:
            print(i)
        choice = input("选择进入1>>:")
        if choice in data:
            while not exit_flag:
                for i2 in data[choice]:
                    print("\t",i2)
                choice2 = input("选择进入2>>:")
                if choice2 in data[choice]:
                    while not exit_flag:
                        for i3 in data[choice][choice2]:
                            print("\t\t", i3)
                        choice3 = input("选择进入3>>:")
                        if choice3 in data[choice][choice2]:
                            for i4 in data[choice][choice2][choice3]:
                                print("\t\t",i4)
                            choice4 = input("最后一层,按b返回>>:")
                            if choice4 == "b":
                                pass
                            elif choice4 == "q":
                                exit_flag = True
                        if choice3 == "b":
                            break
                        elif choice3 == "q":
                            exit_flag = True
                if choice2 == "b":
                    break
                elif choice2 == "q":
                    exit_flag = True

     

关键字