h3

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()退出程序

posted @ 2017-05-15 14:42  码上平天下  阅读(827)  评论(0)    收藏  举报