1、模块初识
Python拥有标准库和第三方库
简单介绍一下标准库中的sys模块和os模块:默认找模块从当前目录下面找,然后去全局环境变量下找
(1)sys模块
import sys #导入sys模块,导入的模块名一定不能和文件名相同
打印环境变量 :
print(sys.path) # 打印出一条条路径 python的全局变量
print(sys.argv) #打印脚本的相对路径
print(sys. argv[2]) #取第二个参数
(2)os模块
import os #导入os模块
os.system("dir") #这个输出是输出到屏幕上的,打印完就没了,不会存下来
执行命令保存结果:
cmd_res = os.popen("dir").read() #结果存在某个地方,必须通过read读出
print("-->",cmd_res)
创建目录:
os.mkdir("new_dir") 创建目录
2、Python的数据类型
(1) 查看数据类型:
type()
(2)bytes数据类型
Python3最重要的新特性大概算是对文本和二进制数据作了更为清晰的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。
Python3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰。
不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然)。
3、三元运算
语法:
result = 值1 if 条件 else 值2
如果条件为真:result = 值1
如果条件为假:result = 值2
举例:
a,b,c = 1,3,5
d = a if a>b else c
4、列表
names = ["Zhangzi","Xixi","Xiangjiang","Tianming"]
print(names)
(1)取值
print(names[1:3]) #切片 取列表的值,包括起始不包括结束
print(names[-1]) #取最后一个值
print(names[-2:]) #取最后两个值
print(names[0:-1:2]) = print(names[::2]) #步长切片
(2)追加
names.append("Lily")
(3)插入
names.insert(1,"Daiwei") # 1表示插入的位置下标
(4)修改
names[2] = "Xiedi" # 2表示修改值得下标
(5)删除
names.remove("Tianming")
del names[1] #删除下标为1的值,与names.pop(1)效果相同
names.pop() #不写下标默认删除最后一个值
(6)扩展
names2 = [1,2,3,4]
names.extend(names2)
(7)统计
names.count("Tianming")
(8)排序
names.sort() #按ASCII码
(9)反转
names.reverse()
(10)拷贝
import copy
person = [‘name‘,[‘saving‘,100]]
浅copy的三种方式:只是对列表元素的引用,只copy第一层
p1 = copy.copy(person)
p2 = person[:]
p3 = list(person)
深copy
import copy
p4 = copy.deepcopy(person) #深copy,完全copy一份相同的列表
5、元组
特点:一旦创建,不能更改,又叫只读列表
names = (‘Leilu‘,‘Xiaoxiao‘)
6、字符串
name = "my name is leilu"
print(name.capitalize()) #首字母大写
print(name.count("m")) #统计m
print(name.center(50,"-")) #一共打印50个字符,不够用-补
print(name.endwith("lu")) #判断一个字符串以什么结尾
print(name.expandtabs(tabsize=30)) #把Tab键转成30个空格
print(name.find("name")) #查找字符串的开始位置
print(name[name.find("name"):9]) #字符串切片,取出name
name = "my \tname is {name} and i am {year} old"
print(name.format(name=‘leilu‘,year=24)) #格式化字符
print(name.format_map({‘name‘:‘leilu‘,‘year‘:24}))
print(‘abc123‘.isalnum()) #包含阿拉伯数字和英文字母,不包含特殊字符
print(‘abAB‘.isalpha()) #纯英文字符,包含大写
print(‘1A‘.isdecimal()) #十进制数
print(‘24‘.isdigit()) #整数
print(‘abc123‘.isidentifier()) #判断是不是一个合法的标识符
print(‘abc123‘.isnumeric()) #是不是只有数字
print(‘abc123‘.isspace()) #是不是空格
print(‘My Name is‘.istitle()) #是否是开头
print(‘My Name is‘.isprintable()) #是否能打印 tty file,drive file 一般不能打印
print(‘My Name is‘.isupper()) #是否大写
print(‘+‘.join([‘1‘,‘2‘,‘3‘])) #将列表变成字符串
print(name.ljust(50,‘*‘)) #一共打印50个字符,不够右边用*补
print(name.rjust(50,‘-*)) #一共打印50个字符,不够左边用*补
print(‘LeiLu‘.lower()) #大写变小写
print(‘LeiLu‘.upper()) #小写变大写
print(‘\nLeiLu\n‘.lstrip()) #去掉左边的空格和回车
print(‘ \nLeiLu\n‘.rstrip()) #去掉右边的空格和回车
print(‘ \nLeiLu\n‘.strip()) #去掉两边的空格和回车
实现随机密码:
p = str.maketrans("abueli",‘123456‘) #对应位数必须相等
print(‘leilu‘.translate(p))
print(‘leilu‘.replace(‘l‘,‘L‘)) #将l替换成L
print(‘leilu‘.replace(‘l‘,‘L‘),1) #只替换第一个
print(‘alex li‘.rfind(‘l‘)) #返回从左到右数第一个l的下标
print(‘alex li‘.split()) #将字符串按照空格分成列表
print(‘alex li‘.split(‘l‘)) #将字符串按照分割符l分成列表
print(‘1+2+3+4‘.split(‘+‘)) #将字符串按照分割符+分成列表
print(‘1+2\n3+4‘.split(‘\n‘)) #将字符串按照换行分成列表
print(‘1+2\n3+4‘.splitlines()) #将字符串按照换行分成列表
print(‘alex li‘.swapcase()) #大写变小写,小写变大写
print(‘alex li‘.title()) #变成标题
print(‘alex li‘.zfill(50)) #打印50个字符不够用0填充
原文:https://www.cnblogs.com/leilu/p/10480474.html