一、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