文章目录

  • python打包成exe
  • 字符串的编码问题
  • tkinter窗口的案例
    • 登录界面
    • 学生信息页面
    • 简单文本编辑器
    • 从剪切板的图片提取文字
    • canvas画图
    • canvas动画

python打包成exe

打包之后就可以直接运行了,不需要python环境,但是运行速度变慢

cmd中输入:
pip install pyinstaller
或者
pip install -i https://pypi.douban.com/simple/ pyinstaller然后
cd F:/Python
"C:\Program Files\Python\Python37\Scripts\pyinstaller.exe" -F test.py
等一会就可以在dist目录下有个text.exe

字符串的编码问题

python默认是utf-8编码

# str->byte
"你好".encode('utf-8')
"你好".encode('gbk')
str.encode('你好','utf-8')
str.encode('你好','gbk')# byte->str
yourBytes=b'\xe4\xbd\xa0\xe5\xa5\xbd'   # 前缀b表示二进制字符
yourBytes.decode('utf-8')  # 解码编码选错了就会出现乱码# 把utf-8编码的字符转为gbk编码乱码字符, 用于win7系统的wifi中文名称
newString = "你好".encode('utf-8').decode('gbk')

tkinter窗口的案例

登录界面

import tkinter as tk
import tkinter.messagebox# 窗口
window = tk.Tk()
window.title("欢迎登陆使用")
window.geometry('300x150')# 标签: 用户名和密码
lbName = tk.Label(window, text='用户名:', justify=tk.RIGHT, width=80)
lbName.place(x=10, y=5, width=80, height=20)
lbPswd = tk.Label(window, text='密码', justify=tk.RIGHT, width=80)
lbPswd.place(x=10,y=30,width=80,height=20)# 变量: 用户名和密码
varName = tk.StringVar()
varName.set('')
varPswd = tk.StringVar()
varPswd.set('')# 输入框: 用户名和密码
entryName = tk.Entry(window, width=200, textvariable=varName)
entryName.place(x=100, y=5, width=150, height=20)
entryPswd = tk.Entry(window, show='*', width=200,textvariable=varPswd)
entryPswd.place(x=100,y=30,width=150, height=20)# 函数:登陆和取消
def login():name = entryName.get()pswd = entryPswd.get()if (name=='admin' and pswd=='admin'):tk.messagebox.showinfo(title='登陆成功',message='登陆成功')  #必须要import tkinter.messageboxelse:tk.messagebox.showinfo(title='登陆失败', message='登陆失败')def cancel():varName.set('') #清空输入框varPswd.set('')# 按钮: 登陆和取消
buttonLogin = tk.Button(window,text='登陆',command=login)
buttonLogin.place(x=80,y=70,width=50,height=20)
buttonCancel = tk.Button(window,text='取消',command=cancel)
buttonCancel.place(x=150,y=70,width=50,height=20)# 显示窗口,循环刷新窗口
window.mainloop()

学生信息页面

效果图:

import tkinter as tk
import tkinter.messagebox
import tkinter.ttkapp = tk.Tk()
app.title('学生信息系统')
app['width']=320
app['height']=400# 姓名label和输入框entry
lbName = tk.Label(app,text='姓名',justify=tk.RIGHT,width=50).place(x=10,y=5,width=50,height=20)
varName = tk.StringVar()
varName.set('')
entryName = tk.Entry(app,width=120,textvariable=varName).place(x=70,y=5,width=120,height=20)# 性别label和单选按钮Radiobutton
lbSex = tk.Label(app,text='性别',justify=tk.RIGHT,width=50).place(x=10,y=40,width=50,height=20)
varSex=tk.IntVar()
varSex.set(-1)  # 默认不选中, 1表示男, 0女
radioMale=tk.Radiobutton(app,variable=varSex,value=1,text='男')  # value=1表示varSex值为1时就选中这个
radioMale.place(x=70,y=40,width=50,height=20)
radioFemale=tk.Radiobutton(app,variable=varSex,value=0,text='女')  # value=0表示该项选中时,varSex值为0
radioFemale.place(x=130,y=40,width=70,height=20)# 年级label和组合框combobox
lbGrade = tk.Label(app,text='年级:',justify=tk.RIGHT,width=50).place(x=10,y=70,width=50,height=20)
studentClasses = { 1:[1,2,3,4],2:[1,2],3:[1,2,3] }
comboGrade = tk.ttk.Combobox(app,width=50, values=tuple(studentClasses.keys()) )  # 值为studentClasses字典的键
comboGrade.place(x=70,y=70,width=50,height=20)# 当修改comboGrade时,也相应的修改comboClass的值
def comboChange(event):grade = comboGrade.get()  # 获取年级的值,是str类型的if grade:comboClass['values']= studentClasses.get(int(grade)) #由于上面的字典studentClasses键是int型,所以需要强制转换else:comboClass.set([])
comboGrade.bind('<<ComboboxSelected>>',comboChange)  #为comboGrade绑定选中事件,触发comboChange函数# 班级label和组合框combobox
lbClass = tk.Label(app,text='班级:',justify=tk.RIGHT,width=50).place(x=130,y=70,width=50,height=20)
comboClass = tk.ttk.Combobox(app,width=50)
comboClass.place(x=190,y=70,width=50,height=20)# 是否班长checkbutton
varMonitor = tk.IntVar()
varMonitor.set(0)
checkMonitor = tk.Checkbutton(app,text='是不是班长',variable=varMonitor,onvalue=1,offvalue=0)
checkMonitor.place(x=20,y=100,width=100,height=20)# 添加按钮点击事件
def addInformation():reslut = '姓名:'+varName.get()if varSex.get()==1:reslut += '; 性别:男'elif varSex.get()==0:reslut += '; 性别:女'reslut += '; 年级:'+comboGrade.get()reslut += '; 班级:'+comboClass.get()reslut += (';班长'if varMonitor.get() else ';' )listboxStudents.insert(0,reslut)  # 插入到listbox中print(reslut)# 删除所选的项目
def delSelection():selection = listboxStudents.curselection()if not selection:tk.messagebox.showerror(title='没有选中项目',message='请先选中项目,再点击删除按钮')else:listboxStudents.delete(selection)# 添加和删除按钮
buttonAdd = tk.Button(app,text='添加',width=40,command=addInformation).place(x=130,y=100,width=40,height=20)
buttonDelete = tk.Button(app,text='删除',width=40,command=delSelection).place(x=180,y=100,width=100,height=20)# 列表框
listboxStudents = tk.Listbox(app,width=300)
listboxStudents.place(x=10,y=130,width=300,height=200)app.mainloop()

简单文本编辑器

功能: 文本打开,保存,另存为, 复制,剪切,粘贴,查找
效果图:

import tkinter as tk
import tkinter.messagebox
import tkinter.colorchooser
import tkinter.filedialog
import tkinter.scrolledtext
import tkinter.simpledialogapp = tk.Tk()
app.title("文本编辑器")
app['width']=800
app['height']=600textChanged = tk.IntVar(value=0)
filename = ''# 打开文件的函数
def OpenFile():global  filenameif(textChanged.get()):yesNo = tk.messagebox.askyesnocancel(title='是否保存当前文件?', message='是否保存当前文件?')if(yesNo==tk.YES):global filenameif filename:SaveFile()else:SaveAs()elif yesNo==None:returnfilename = tk.filedialog.askopenfilename(title='打开文件',filetype=[('文本文件','*.txt'),('所有文件','*.*')])if(filename):txtContent.delete(0.0,tk.END) #清空内容 0.0是lineNumber.colNumber的表示方法fp = open(filename,'r',encoding='UTF-8')app.title(filename + "  编码是utf-8")txtContent.insert(tk.INSERT,''.join(fp.readlines()))  # readlines()返回的是列表,需要转为字符串fp.close()textChanged.set(0)print("打开文件成功!")# 保存文件函数
def SaveFile():global filename# 如果是第一次新建文件,调用另存为if not filename:saveAs()# 如果内容改变了才保存elif textChanged.get():fp=open(filename,'w',encoding='utf-8')fp.write(txtContent.get(0.0,tk.END))fp.close()textChanged.set(0)print("保存成功!")def SaveAs():global filenamefilename = tk.filedialog.asksaveasfile(title='另存为', initialdir=r'C:/', initialfile='new.txt')if(filename):fp=open(filename,'w')fp.write(txtContent.get(0.0,tk.END))fp.close()textChanged.set(0)print("另存为成功!")def Close():if(textChanged.get()):res = tk.messagebox.askyesnocancel(title='是否保存?',message='是否保存?')if res==tk.YES:print("保存...")global filenameif filename:SaveFile()else:SaveAs()elif res==None:print("取消")returnapp.quit()def Copy():try:txtContent.clipboard_clear()txtContent.clipboard_append(txtContent.selection_get())except Exception:print("没有选中内容")def Cut():try:txtContent.clipboard_clear()txtContent.clipboard_append(txtContent.selection_get())txtContent.delete(tkinter.SEL_FIRST,tkinter.SEL_LAST) #删除所选内容except Exception:print("没有选中内容")def Paste():try:# 如果选中内容,就先删除txtContent.delete(tk.SEL_FIRST,tk.SEL_LAST)except Exception as e:print("没有选中内容,删除出错了")# 然后再粘贴txtContent.insert(tk.INSERT, txtContent.clipboard_get())def Undo():# 启用undo标志txtContent['undo']=Truetry:txtContent.edit_undo()except Exception:passdef Redo():txtContent['undo']=Truetry:txtContent.edit_redo()except Exception:passdef Search():textSearch = tk.simpledialog.askstring(title='需要查找的字符是',prompt='需要查找的字符是:')start = txtContent.search(textSearch,0.0, tk.END)if start:tk.messagebox.showinfo(title='找到了',message='找到了')else:tk.messagebox.showinfo(title='没有找到',message='没有找到')def about():tk.messagebox.showinfo(title='关于我们',message='文本编辑器 v1.0 \n 作者:wang')# 创建菜单
menuBar = tk.Menu(app)
app.config(menu=menuBar) #将菜单关联到窗口上# 文件菜单
fileMenu = tk.Menu(menuBar,tearoff=0)
menuBar.add_cascade(label='文件',menu=fileMenu) #文件菜单关联到menuBar上# 文件菜单添加子项目
fileMenu.add_command(label='打开',command=OpenFile)
fileMenu.add_command(label='保存',command=SaveFile)
fileMenu.add_command(label='另存为',command=SaveAs)
fileMenu.add_separator()
fileMenu.add_command(label='退出',command=Close)# 编辑菜单
editMenu = tk.Menu(menuBar,tearoff=0)
menuBar.add_cascade(label='编辑',menu=editMenu)# 编辑菜单添加子项目
editMenu.add_command(label='复制',command=Copy)
editMenu.add_command(label='剪切',command=Cut)
editMenu.add_command(label='粘贴',command=Paste)
editMenu.add_separator()
editMenu.add_command(label='撤销',command=Undo)
editMenu.add_command(label='重做',command=Redo)
editMenu.add_separator()
editMenu.add_command(label='查找',command=Search)# 帮助菜单
helpMenu = tk.Menu(menuBar,tearoff=0)
menuBar.add_cascade(label='帮助',menu=helpMenu)# 帮助菜单添加子项目
helpMenu.add_command(label='关于',command=about)# 文本区域,并自适应窗口大小
txtContent = tk.scrolledtext.ScrolledText(app,wrap=tk.WORD)
txtContent.pack(fill=tk.BOTH,expand=tk.YES)
def keyPress(event):textChanged.set(1)
txtContent.bind('<KeyPress>',keyPress)app.mainloop()

从剪切板的图片提取文字

调用百度API完成的.

效果图:

提取文本的步骤:

  1. 先选择普通识图还是高精度识图, 默认是普通识图
  2. 然后
  • 方法1: 点击选择图片,然后选中图片就会自动识别图片并提取文字(gif格式的不可以提取文字)
  • 方法2: 手动粘贴路径到最上面的单行输入框,再点击开始识别
  • 方法3: 先用其他截图软件(比如QQ截图),截图之后会自动存到剪切板中, 然后点击从粘贴板中导入图片并自动识图
  1. 可以在右侧栏预览图片, 识别文字结果在下方文本框展示出来,点击全部复制自动存入到剪切板中,如果嫌弃结果不准确请切换到高精度识图再试一次
import os
import tkinter as tk
import tkinter.messagebox
import tkinter.filedialogfrom  PIL import Image,ImageTk
from aip import AipOcrfrom PIL import Image,ImageGrab# 选择图片函数
def chooseImg():fileName = tk.filedialog.askopenfilename(title='选择图片',filetype=[('图片文件','*.jpg'),('图片文件','*.png'),('图片文件','*.bmp'),('不支持的图片文件','*.gif'),('所有类型文件','*.*')])if fileName:varFileName.set(fileName)# 预览图片showImg(fileName)# 百度图片识别文字baiduOCR(fileName)# 预览图片函数
def showImg(fileName):# 动态给label设置图片,支持所有格式图片img_open = Image.open(fileName)imgTk = ImageTk.PhotoImage(img_open)labelImg.config(image=imgTk)labelImg.image = imgTk# 百度图片识别文字
def baiduOCR(picfile):# 初始化APP_ID = '16434848'  # 刚才获取的 ID,下同API_KEY = 'QGwg4nFU25HVgRW6hjAF3zNg'SECRECT_KEY = 'lFrvrLqxq7p0ZhEOFyMbZHgA0IGuGTo8'client = AipOcr(APP_ID, API_KEY, SECRECT_KEY)i = open(picfile, 'rb')img = i.read()print("正在识别图片:\t" + picfile)if varHighAccurate.get(): # True 高精度识图print("高精度识图中(每天500次免费)....")message = client.basicAccurate(img)   # 通用文字高精度识别,每天 500 次免费else: # False 普通识图print("普通识图中(每天5万次免费)...")message = client.basicGeneral(img)  # 通用文字识别,每天 50 000 次免费print("识别成功! 文字是:")print(message)i.close();if message.get('error_code'):  # 出错了tk.messagebox.showerror(title='图片提取文字出错了',message='暂不支持gif格式图片,可能网络中断,每天只能普通识别5000次,精准识别500次')else:showMsg(message) # 识别出来了,就显示结果信息# 显示结果信息
def showMsg(message):string=''for txt in message.get('words_result'):string += txt.get('words')+'\n'print(string)txtResult.delete(0.0,tk.END) #清空内容 0.0是lineNumber.colNumber的表示方法txtResult.insert(tk.INSERT,string) #添加文字# 一键复制结果信息
def Copy():txtResult.clipboard_clear()string = txtResult.get(0.0,tk.END)txtResult.clipboard_append(string)print("复制的字符是:"+string)# 粘贴路径之后再识别
def start():path = entryFileName.get()path = path.strip(' ').strip('"') # 去掉字符串开头结尾的空格和双引号if len(path)<=0:returnprint(path)showImg(path)baiduOCR(path)# 从粘贴板获取图片,并且识图
def clipboard():# 从粘贴板获取img_open = ImageGrab.grabclipboard()if isinstance(img_open,Image.Image): #如果是图片print("剪切板中有图片")imgTk = ImageTk.PhotoImage(img_open)  # 需要导入PIL中的ImageTk# 预览图片labelImg.config(image=imgTk)labelImg.image = imgTk# 保存图片tempFileName = 'D:/删除.jpg'img_open.save(tempFileName)# 百度识图baiduOCR(tempFileName)# 再删除缓存的图片if (os.path.exists(tempFileName)):os.remove(tempFileName)else:tk.messagebox.showinfo('粘贴板中没有图像信息','请先用QQ截图后,再来使用')# 窗口
app = tk.Tk()
app.title("图片提取文字,不支持gif格式图片")
app.geometry('1000x500')# 图片路径
varFileName = tk.StringVar()
varFileName.set('')
# 结果信息
varTxtMsg = tk.StringVar()
varTxtMsg.set('')
# 百度高精度识图,默认false
varHighAccurate = tk.BooleanVar()
varHighAccurate.set(False)# 图片路径输入框
entryFileName = tk.Entry(app,width=35, textvariable=varFileName)
entryFileName.place(x=90,y=10)# 选择图片并且识别按钮
btn_chooseImg = tk.Button(app,text='选择图片',command=chooseImg)
btn_chooseImg.place(x=10,y=5)# 开始识别按钮
btn_start = tk.Button(app,text='开始识别',command=start)
btn_start.place(x=400,y=5)# 从粘贴板导入图片并且识别
btn_clipboard = tk.Button(app,text='从粘贴板导入图片并且识别',command=clipboard)
btn_clipboard.place(x=15,y=55)# 预览图片的标签
labelImg = tk.Label(app)
labelImg.place(x=500,y=5)# 是否高精度识图
tk.Radiobutton(app,text="普通识图(每天5万次免费)",variable=varHighAccurate,value=False).place(x=30,y=110)
tk.Radiobutton(app,text="高精度识图(每天500次免费)",variable=varHighAccurate,value=True).place(x=240,y=110)# 显示结果的文本框
txtResult = tk.Text(app,width=50, height=15)
txtResult.place(x=15,y=200)# 文本结果信息添加到粘贴板中
tk.Button(app,text='全部复制',command=Copy).place(x=160,y=150)app.mainloop()

canvas画图

而且是动态实时画图
效果图:

import tkinter as tk
import tkinter.filedialog
import tkinter.simpledialog
import tkinter.colorchooser
from PIL import Image# 是否正在绘图
drawing = False
# 记录鼠标位置的变量
X = 0
Y = 0
# 记录上次绘制的图形id,方便实时绘图还要删除旧的图形
lastDrawId=0
# 1表示画曲线,2表示直线,3矩形,4文本,5橡皮
what = 0
fgColor = '#000000'
bgColor = '#FFFFFF'# 左边鼠标按下事件
def onLeftButtonDown(event):global X,Y,what,drawingdrawing = True # 开始画画X=event.xY=event.yif what==4:canvas.create_text(event.x,event.y,text=text)# 左边鼠标按住移动事件
def onLeftButtonMove(event):global what,X,Y,lastDrawId,drawingif not drawing: # 如果不在画图,就返回return# 画曲线if what==1:canvas.create_line(X,Y,event.x,event.y,fill=fgColor)X=event.xY=event.y# 画直线elif what==2:try:canvas.delete(lastDrawId)  # 擦除上次画的直线,做到了实时绘图except Exception as e:passlastDrawId = canvas.create_line(X,Y,event.x,event.y,fill=fgColor)  #记录上次画的直线id# 画矩形elif what==3:try:canvas.delete(lastDrawId)  # 擦除上次画的矩形,做到了实时绘图except Exception as e:passlastDrawId = canvas.create_rectangle(X,Y,event.x,event.y,fill=None, outline=fgColor)  #记录上次画的矩形id# 橡皮,擦掉图形elif what==5:canvas.create_rectangle(event.x-5,event.y-5,event.x+5,event.y+5,outline=bgColor,fill=bgColor)# 左键鼠标抬起来事件
def onLeftButtonUp(event):global what,X,Y,drawing,lastDrawId# 画直线if what==2:canvas.create_line(X,Y,event.x,event.y,fill=fgColor)# 画矩形elif what==3:canvas.create_rectangle(X,Y,event.x,event.y,fill=None,outline=fgColor)lastDrawId=0# 鼠标右键抬起,弹出菜单
def onRightButtonUp(event):menu.post(event.x_root,event.y_root)# 打开图像文件
def openImage():filename = tk.filedialog.askopenfilename(title='打开图像文件',filetypes=[('图片文件','*.jpng *.png *.gif')])if filename:global imageimage = tk.PhotoImage(file=filename)canvas.create_image(image.width(),image.height(),image=image)# 清空
def clear():for item in canvas.find_all():canvas.delete(item)# 点击曲线绘图
def drawCurve():global whatwhat=1
def drawLine():global whatwhat=2
def drawRectangle():global whatwhat=3
def drawText():global what,texttext = tk.simpledialog.askstring(title='输入想要绘制的文字',prompt='')what=4
# 橡皮
def erase():global whatwhat=5
# 选择前景色
def chooseFgColor():global fgColorfgColor = tk.colorchooser.askcolor()[1]
# 选择背景色
def chooseBgColor():global bgColorbgColor = tk.colorchooser.askcolor()[1]# 窗口
app = tk.Tk()
app.title('画图')
app['width']=800
app['height']=600# 创建画布,并绑定事件
image = tk.PhotoImage()
canvas = tk.Canvas(app,bg=bgColor,width=800,height=600)
canvas.create_image(800,600,image=image)
canvas.bind('<Button-1>',onLeftButtonDown)  # 画布绑定点击按钮
canvas.bind('<B1-Motion>',onLeftButtonMove)  # 按住鼠标左键移动,画图
canvas.bind('<ButtonRelease-1>',onLeftButtonUp)  # 画布绑定鼠标抬起事件
canvas.bind('<ButtonRelease-3>',onRightButtonUp)  # 画布绑定右击事件
canvas.pack(fill=tk.BOTH,expand=tk.YES)  # 画布填充整个窗口# 创建右击的菜单
menu = tk.Menu(app,tearoff=0)  # tearoff一般都填0
menu.add_command(label='打开图像文件',command=openImage)
menu.add_command(label='清空',command=clear)
menu.add_separator()  # 添加分割线#绘图类型,作为menu的子菜单
menuType = tk.Menu(menu,tearoff=0)
menu.add_cascade(label='绘图类型',menu=menuType)# 子菜单绘图类型添加项目
menuType.add_command(label='直线',command=drawLine)
menuType.add_command(label='曲线',command=drawCurve)
menuType.add_command(label='矩形',command=drawRectangle)
menuType.add_command(label='绘制文本',command=drawText)
menuType.add_command(label='橡皮',command=erase)
menuType.add_separator()
menuType.add_command(label='选择前景色',command=chooseFgColor)
menuType.add_command(label='选择背景色',command=chooseBgColor)app.mainloop()

canvas动画

键盘控制图片上下左右运动

import tkinter as tk
import timeautoMove = False# 单击就自动向右移动
def onLeftButtonDown(event):global autoMoveautoMove = Truewhile autoMove:canvas.move(id_image,5,0)  # 图片x移动5,y移动0canvas.update()time.sleep(0.05)# 右击就停止
def onRightButtonUp(event):global autoMoveautoMove = False# 键盘上下左右事件
def keyControl(event):if event.keysym=='Up':canvas.move(id_image,0,-5)elif event.keysym=='Down':canvas.move(id_image,0,5)elif event.keysym=='Left':canvas.move(id_image,-5,0)elif event.keysym=='Right':canvas.move(id_image,5,0)canvas.update()# 窗口
app = tk.Tk()
app.title('上下左右控制移动,鼠标点击向右运动,右击停止')
app['width']=800
app['height']=600# 创建画布,并绑定事件
image = tk.PhotoImage(file='D:/1.gif')
canvas = tk.Canvas(app,bg='white',width=800,height=600)  #父亲的容器是app窗口
id_image = canvas.create_image(100,100,image=image)  # 记录图片的编号# 绑定键盘、鼠标事件
canvas.bind_all('<KeyPress-Up>',keyControl)
canvas.bind_all('<KeyPress-Down>',keyControl)
canvas.bind_all('<KeyPress-Left>',keyControl)
canvas.bind_all('<KeyPress-Right>',keyControl)
canvas.bind('<Button-1>',onLeftButtonDown)
canvas.bind('<ButtonRelease-3>',onRightButtonUp)# 显示canvas
canvas.pack(fill=tk.BOTH,expand=tk.YES)
canvas.focus()app.mainloop()

python常用的案例相关推荐

  1. Python处理时空数据常用库案例及练习

    本文完整代码.数据集下载.在线运行可以访问这个链接:时空数据Python常用包案例 配套习题与答案可以访问这个链接:时空数据Python常用包案例 - 实操练习题(附答案) Python处理时空数据会 ...

  2. python web项目案例教程_Python Web开发案例教程(慕课版)——使用Flask、Tornado、Django...

    第1章 Web开发基础1 1.1 Web概述 2 1.1.1 什么是Web 2 1.1.2 Web应用程序的工作原理 2 1.1.3 Web的发展历程 2 1.2 Web前端开发基础 4 1.2.1 ...

  3. Python常用扩展包

    一. Python常用扩展包 参考张良均的<Python数据分析与挖掘实战>,下图展示了常见的Python扩展包.         常用的包主要包括:         1.Numpy    ...

  4. pythonencoding etf-8_etf iopv python 代码30个Python常用小技巧

    1.原地交换两个数字x, y =10, 20 print(x, y) y, x = x, y print(x, y) 10 20 20 10 2.链状比较操作符n = 10 print(1 print ...

  5. python 查询sqlserver 视图_SQL Server 2017 数据库教与学(教学大纲,含Python+SQL Server案例)...

    原标题:SQL Server 2017 数据库教与学(教学大纲,含Python+SQL Server案例) 本书提供Python+SQL Server案例 SQL Server教学大纲 一.课程的性质 ...

  6. Python基础语法案例(Fibonacci):选择结构、循环结构、异常处理结构、代码优化

    推荐图书: <Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社,第16次印刷,清华大学出版社2019年度畅销图书 图书购买链接(京东): ...

  7. Python常用第三方库

    Python常用第三方库 一. 文件读写 二.网络抓取和解析 三.数据库连接 四.数据清洗转换 五.数据计算和统计分析 六.自然语言处理和文本挖掘 七.图像和视频处理 八.音频处理 九.数据挖掘/机器 ...

  8. lambda函数--(Python实现货币兑换案例)

    Lambda函数 Lambda表达式是Python中一类特殊的定义函数的形式,使用它可以定义一个匿名函数.与其它语言不同,Python的Lambda表达式的函数体只能有单独的一条语句,也就是返回值表达 ...

  9. Python常用标准库之正则表达式

    Python常用标准库之正则表达式 1.re模块常用函数 1.1 匹配对象以及group()和groups()方法 1.2 match()与search():匹配单个目标 1.3 findall(): ...

最新文章

  1. AI一分钟 | 马斯克证实:特斯拉私有化的幕后推手是沙特主权基金;DeepMind的AI可以检测出超过50种眼疾...
  2. 基于MySQL数据库下亿级数据的分库分表
  3. R语言伪相关性分析(Spurious Correlation)、相关关系不是因果关系:以缅因州离婚率数据集为例
  4. 发掘数据中的信息 -- 数据探索之描述性统计
  5. java openldap_java操作OpenLdap示例
  6. 洛谷 P3803 多项式乘法
  7. 矩阵为奇异工作精度_外积与复合矩阵,特征值/奇异值的乘积型受控,Hodge对偶与伴随矩阵...
  8. 常见服务器解析漏洞(IIS,Nginx,Apache)
  9. 报告指出数据中心效率有所提高
  10. perl6正则 4: before / after 代码断言: ?{} / !{}
  11. Mobile and MID opportunities in APAC
  12. python爬虫:获取12306网站火车站对应三字码
  13. 126邮箱如何绑定qq邮箱服务器,ecshop使用企业邮箱、qq邮箱和126邮箱如何设置SMTP验证发送邮件...
  14. 快手,抖音,美拍打造个人IP精准引流!
  15. Qt 工程下使用 cmake MinGW OpenCV 4.1.1(涵盖 MinGW32 与 MinGW64)
  16. 日本公司研发出一款可食用的便签纸
  17. 功能自动化测试的策略有哪些?
  18. 卷积码编码和BCJR译码
  19. 繁体简体转换的python包pylangtools
  20. kalilinux-arpspoof-arp攻击

热门文章

  1. 如何解决java中的安全问题_如何解决java中“使用了未经检查或不安全的操作 请使用 -Xlint:unchecked 重新编译 ”的问题...
  2. ThinkPad T460P Ubuntu14.04安装无线网卡驱动方法
  3. 热释红外感应模块(pir d203s)介绍
  4. 机器学习6-强化学习
  5. Java中hasNext()的作用
  6. C# 调用C++dll(以基恩士LKG5000为例)
  7. 学习Node.js笔记
  8. 在windows平台搭建基于nginx的直播服务器
  9. QUIC 协议的简单分析
  10. 巨杉数据库v5.0携手迪思杰深化战略级合作