????????由于想要掌握一门编程语言需要不断地练习和重复,但目前的研究方向需要的编程范围过小,未避免遗忘,我从现在开始从python入门到中阶进行复盘
字符串以及基本预算
format函数:字符串格式化, end=' '?:取消print自动换行
print('a的值为{},b的值为{}'.format(a, b), end='')
round:四舍五入函数保留两位小数
print(round(1.2346, 2))
虚数的设置与查看
fu = 11 + 5j
print(fu.real, fu.imag)
取商和余数
divmod(x,y)
字符串步长[开始位置:结束位置:步长],步长为负则是倒着取值
print('步长运用'+'abcdefg'[::-2])
splitt函数:以什么符号分割字符串 最终以列表形式返回
list = str.split(',')
replace函数 replace(r'替换什么(可用正则)' , '替换成什么', regex=Ture)
str = str.replace(r'<.*>', ' ', regex = Ture)
按照输入格式保存字符串
sentence = ''' 这是一个段落
可以多行显示
'''
列表操作
列表可存放不同类型
otherList = [1, 's', 1.2233]
a.append(b)?
append会把b当作一个元素整体输出[1,2,[3,4]]
a.extend(b)
而extend不同 他会直接把b接到a后面[1,2,3,4]
insert(a,b)在a位置插入b元素
c = [1, 2, 3, 4]
c.insert(1, 'x')
print(c)
out#[1, 'x', 2, 3, 4]
删除元素--del 下标删除
del nameList[0]
pop出栈删除 删除最后一个元素
namelist.pop()
判断某元素是否在列表中in操作
findName = input('请输入你要查找学生的姓名')
if findName in nameList:
print('ture')
else:
print('none')
在某范围内查找某元素 如果存在则返回下标值
n = ['a', 'b', 'c', 'd', 'e', 'f']
print(n.index('c', 1, 4))
统计某元素在列表中出现的次数
n.count('c')
排序sort revers
m = [1, 5, 2, 3]
m.reverse() # 反转
m.sort() # 升序
m.sort(reverse=True) # 降序
元组
元组具有不可更改的性质 不可更改或删除元组内的某个元素, 元组可类似于字符串相加
tup1 = () #定义空元组
tup2 = (1,) #定义只含一个数的元组
print(type(tup2))
tup3 = (111, 222, 333,'a') #元组内可包含多种类型
print(tup3[-3:-1]) #可以和列表一样使用切片
tup4 = (1,2)
tup5 = (3,)
tup6 = tup5 + tup4
?字典
访问不存在的key不报错的方法get
info = {'name':'bob','age':18}
print(info.get('gender', 'm')) #自定义默认值m 如果找不到key则返回m
?函数
?局部变量与全局变量问题
#全局变量和局部变量 全局变量在任何函数内部都可使用
x = 100 #全局变量
def printt():
x = 200 #局部变量
print(x)
def printts():
print(x)#全局变量
#结论:变量名相同的时候,局部变量优先
#如果就想在函数内,在变量名相同的情况下优先全局变量,则需要前面加上global 先声明一下 然后再在下面使用
x = 100 #全局变量
def printt():
global x #声明全局变量
x = 200
print(x)
def printts():
print(x)#全局变量
匿名函数????????接收返回值?= lambda 传入参数1, 传入参数2..... : (表达式)
c = lambda x, y:x*x + y*y
print(c(4, 5))
zip函数 将多个列表或元组 按照最短长度 同索引的加入到同一列表或元组中
name = ('tang', 'li', 'hu', 'ri')
old = ('12', '13', '14', '15', 'a')
#zip函数
for each in zip(name, old):#合二为一
print(each)
out#('tang', '12')
('li', '13')
('hu', '14')
('ri', '15')
循环?
break和continue
i = 0
while i < 10:
i += 1
print(i,'-'*10)
if i == 5:
break
i = 0
while i < 10:
i += 1
if i == 5:
continue #跳过continue下面的本次循环内的所有语句
print(i, '-' * 10)
99乘法表--通过workbook创建woorksheet? excel表单
import xlwt
workbook = xlwt.Workbook(encoding='utf-8')
worksheet = workbook.add_sheet('jiujiuchengfabiao')
s = 1
while s < 10:
for i in range(s):
print('%d*%d=%d'%(i+1,s,(i+1)*s),end='\t')
worksheet.write(i+1, s, (i+1)*s)
print()
s += 1
列表推导式?
list = [x + x for x in range(1, 5) if x!=3]
列表+zip 字典推导式
list = {x:y for x, y in zip(range(1, 7), 'abcdef)}
条件判断if or and not 或且非
import random
x = random.randint(0, 2)
c = eval(input('请输入'))
anwser = c - x
if c == 0 or c == 1 or c == 2:
if 1 == anwser or -2 == anwser:
print('你赢了')
elif 0 == anwser:
print('平局')
else:
print('你输了')
else:
print('输入不合法')
文件
f = open('text.txt','w') #w是写入状态,文件不存在就新建 r是只读文件如果文件不存在,则不会创建
#rb ,wb状态 分别是以二进制形式都,以二进制形式写
f.write('hello') #写入
f.close() #关闭文件
#read方法 每用一次 读取位置就像后移相应的位置
f1 = open('text.txt','r',encoding='utf-8') #文件如果有中文则需要用encode =’utf-8‘
#print(f1.read(3)) #读取3个字符
#print(f1.read(1)) #再取3个字符 (空格也算一个)
?
#读取多行
content = f1.readlines()
print(content)
s = 1
for i in content:
print('%d %s'%(s,i))
s += 1
f1.close() #切记关闭文件
import os
os.rename('text.txt', 'test.txt')
os.remove()#删除文件
os.mkdir()#创建文件夹
os.getcwd()#获取当前目录
os.listdir#获取文件列表
os.chdir()#改变默认目录
os.rmdir()#删除文件夹
异常
try:
f = open('test.txt','r',encoding='UTF-8')
try:
while True:
content = f.readline()
print(content)
time.sleep(2)
if len(content) == 0:
break
except Exception as result:
print(result)
finally:
print('文件关闭')
f.close()
except Exception as result:
print(result)
#复制古诗的小例子
f1 = open('gushi.txt','r',encoding='UTF-8')
f2 = open('copy.txt','w',encoding='UTF-8')
gushiList = []
def copygushi(a):
try:
while True:
global gushiList
content = a.readline()
gushiList.append(content)
if len(content) == 0:
break
finally:
a.close()
def writgushi(b):
global gushiList
for i in gushiList:
b.write(i)
b.close()
copygushi(f1)
print(gushiList)
writgushi(f2)
|