php程序员学习python3学习第二天
1,python中的模块分为标准,第三方,标准的为自带的,不需要安装直接import使用
2,python文件名不要和模块名相同
3,sys模块
# -*- coding:utf-8 -*- import sys print(sys.path) #打印环境变量 print(sys.argv) #打印脚本信息和相关传递参数 print(sys.argv[2]) #打印传递来的第三个参数的值
4,os模块
import os #与系统交互使用较多 os.system("dir") #输出到屏幕上,然后值就销毁 cmd_msg = os.system("dir") #print(cmd_msg) #此处cmd_msg的值是用来检测此命令执行是否成功 成功为0,非0为不成功 #若想将结果保存的话可以使用popen cmd_mess = os.popen("dir").read() print(cmd_mess) #创建目录 os.mkdir("../day3")
5,python标准库在python_path下base文件夹下的Lib中,第三方库在site-packages
6,在命令行执行python文件时,先激活了python的解释器,告诉解释器要开始工作,在解释之前执行的第一件工作与java一样,进行编译。所以python也是一个先编译后解释的语言
7,python的PyCodeObject和pyc文件,PyCodeObject是Python编译器真正编译形成的结果,在python运行程序的时候编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,python解释器将PyCodeObject写回到pyc文件中,当python第二次运行程序的时候首先程序会在硬盘中寻找pyc文件,如果找到则直接载入,否则就重复上面的过程,所以说pyc文件应该是PyCodeObject的一种持久化保存方式
8,python 字符串常用功能 移除空白 分割 长度 索引 切片
9,encode() decode() 字符串转换为二进制,二进制解为字符串
# -*-coding:utf-8 -*- msg = "哈哈" print(msg.encode(encoding="utf-8")) by = msg.encode(encoding="utf-8") print(by.decode(encoding="utf-8"))
10,列表的增删改查,切片等常用操作及函数
# -*- coding: utf-8 -*- import copy names = ['a','b','c','a'] print(names) #打印列表 print(names[0],names[1]) #打印其中的值 print(names[1:3]) #选取区间进行打印从1取到3 值为['b','c'],值也为列表 此即为切片 print(names[-1]) #取最后一个值 print(names[-3:]) #从倒数第三个开始取 print(names[:3]) #从0开始取,此时0可以省略 names.append("e") #往末尾推一个值 print(names) names.insert(1,"o") #指定位置插入单元 print(names) names[1] = "a" #修改值 print(names) names.remove("a") #删除值,只能删除找到的第一个a print(names) del names[0] #也是删除值,只能删除找到的第一个a print(names) names.pop() #默认不输入下标的话删除最后一个值 print(names) names.pop(0) #指定位置进行删除 print(names) index = names.index("a") #根据值查找索引 print(index) names.append("a") print(names) num = names.count("a") #统计某个值有几个 print(num) names.sort() #按照ascii值进行排序 print(names) names.reverse() #反转列表 print(names) names2 = [1,2,3,4] names.extend(names2) #合并names2,同时保留names2 del names2 #删除变量 print(names) names.extend(names) #合并自身 print(names) print(names[::2]) #步长切片隔一个取一次 names3 = names.copy() names[0] = 1 print(names,names3) names = ['a','b',['c','d'],'e'] names3 = names.copy() #copy为浅copy 只copy第一层 ''' 浅copy的实现方式 names3 = names.copy() names3 = copy.copy(names) names3 = names[:] names3 = list(names) ''' names[2][0] = 1 print(names,names3) names = ['w','e',['q','a'],'s'] names4 = copy.deepcopy(names) names[2][0] = 1 print(names,names4) names.clear() #清空列表 print(names)
11,列表的浅copy与深copy 深copy谨慎使用 浅copy 只可以赋值列表的第一层,用在两个同样的copy,改变其中一个信息时另一个一起改变
#-*-coding:utf-8-*- import copy msg = ["name",['money',100]] p1 = msg.copy() p2 = msg.copy() #修改p1的值 p1[0] = "a" print(p1,msg) #['a', ['money', 100]] ['name', ['money', 100]] p2[0] = "b" print(p1,p2,msg) #['a', ['money', 100]] ['b', ['money', 100]] ['name', ['money', 100]] #有需求需要更改一个人钱的时候,另一个人的钱也需要同时发生变化,测试浅copy非常有用 p1[1][1] = 50 print(p1,p2,msg) #['a', ['money', 50]] ['b', ['money', 50]] ['name', ['money', 50]]
12,深copy import copy模块 deecopy()
13,元组合列表其实差不多,但是元组是只读列表,不可以增删改查,有两个方法index() count()
#-*-coding:utf-8 -*- names = ('a','b','c') print(names) #只有两个方法count() index() num = names.count('a') print(num) index = names.index('c') print(index)
14,元组一般存储不变的信息,例如数据库连接信息等
15,isdigit() 检测值是否为字符串型的数字
16,enumerate() 将列表的索引和值一起输出
17,len() 计算列表长度
18,"\033[31;1m%s\033[" % 打印出来值具有颜色
19,exit()退出程序

浙公网安备 33010602011771号