全网最全面的python的讲解,讲的无可挑剔《记得收藏》
Posted 苏州程序大白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全网最全面的python的讲解,讲的无可挑剔《记得收藏》相关的知识,希望对你有一定的参考价值。
全网最全面的python的讲解,讲的无可挑剔《记得收藏》
- 目录
- 1、简介
- Pyhon中如何文件拷贝
- Python数学库及其应用
- Python异常处理机制
- ETC
- turtle库的常用指令
- 使用turtle库绘制五角星
- 使用turtle库绘制蟒蛇
- 数据驱动的动态路径绘制
- 使用蒙特卡洛方法估计圆周率的值
- 文件循环
- 图形用户界面
- 使用graphics库实现交互式多边形绘制
- 使用TKinter实现简单的聊天界面
- 使用Turtle库绘制模拟时钟
- 使用turtle库绘制雪花图
- Python库
- OS库常用函数
- sched库
- 函数定时执行
- 打印某一个目录下的全部文件
- 打包发布python应用程序(使用py2exe库)
- NumPy库
- Matplotlib库
- 使用Matplotlib库绘制曲线
- 使用Matplotlib子图的功能
- wxPython
- 使用wxPython的绝对布局
- 使用wxPython的相对布局
- wxPython事件编程
- Python中的多线程编程
- scipy库
- mpl_toolkits库
目录
1、简介
我们简单讲下Python目前市场应用于领域:
- Web 和 Internet开发
- 科学计算和统计
- 人工智能
- 桌面界面开发
- 软件开发
- 后端开发
2、网络接口:能方便进行系统维护和管理,Linux下标志性语言之一,是很多系统管理员理想的编程工具。
3、图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。
4、数学处理:NumPy扩展提供大量与许多标准数学库的接口。
5、文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。
6、数据库编程:程序员可通过遵循Python DB-API(应用程序编程接口)规范的模块与Microsoft SQL Server,Oracle,Sybase,DB2,mysql、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。
7、网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet 及BitTorrent. Google都在广泛地使用它。
8、Web编程:应用的开发语言,支持最新的XML技术。
9、多媒体应用:Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。
10、pymo引擎:PYMO全称为python memories off,是一款运行于Symbian S60V3,Symbian3,S60V5, Symbian3, android系统上的AVG游戏引擎。因其基于python2.0平台开发,并且适用于创建秋之回忆(memories off)风格的AVG游戏,故命名为PYMO。
开始了!!!不废话了
Pyhon中如何文件拷贝
def main():
f1 = input("Enter a source file name:").strip()
f2 = input("Enter a destination file name:").strip()
infile = open(f1, 'r')
outfile = open(f2, 'w')
count_lines = count_chars = 0
for line in infile:
count_lines += 1
count_chars += len(line)
outfile.write(line)
print(count_lines, "lines and", count_chars, "chars copied")
infile.close()
outfile.close()
main()
Python数学库及其应用
随机数库及其应用
Python异常处理机制
Python使用try…except…else…finally,可使程序不因运行错误而崩溃,异常捕获机制可以捕捉任何类型的错误,比如:输入非数值类型(NameError),输入无效的表达式(SyntaxError)等。只有当try中的语句没有发生异常,else语句才会被执行,finally无论有无异常都会被执行:
try:
<body>except <ErrorType1>:
<handler1>except <ErrorType2>:
<handler2>except:
<handler0>else:
<process_else>finally:
<process_finally>
ETC
1.使用同步赋值语句实现x与y的值交换:x,y=y,x。
2.val=pow(2,1000),用一行代码返回val结果的长度值:len(str(val))。
3.布尔运算符的优先级从高到低依次是:not,and,or。
4.对于数字的零值被认为是false,任何非零值都是true。对序列类型来说,空序列被认为是false,非空序列认为是true。
5.常用编码:
- ASCII码是标准化字符集,用7个二进制位编码表示128个字符。
- Unicode跨语言,跨平台,同意且唯一的二进制编码,每个字符两个字节长。
- UTF8编码,可变长度的Unicode,英文对应1个字节,中文对应3个字节。
6.python中字符串类型未编码,可以用encode()进行编码,decode()进行解码。
turtle库的常用指令
1.turtle库以屏幕中心为坐标原点。
2.forward(distance)将箭头移到某一指定坐标。
3.left(angle)/right(angle)向左/右旋转一个角度。
4.penup()提起笔,用于另起一个地方绘制时使用,与pendown()配对使用。
5.goto(x,y)。
6.home()。
7.circle(radius)。
8.speed()。
使用turtle库绘制五角星
import turtle
p = turtle.Turtle()
p.speed(3)
p.pensize(5)
p.color("black")
p.fillcolor("red")
p.begin_fill()for i in range(5):
p.forward(200)
p.right(144)
p.end_fill()
使用turtle库绘制蟒蛇
import turtle
def draw_snake(rad, angle, len, neckrad):
for i in range(len):
turtle.circle(rad, angle)
turtle.circle(-rad, angle)
turtle.circle(rad, angle, 2)
turtle.fd(rad)
turtle.circle(neckrad + 1, 180)
turtle.fd(rad * 2 / 3)
def main():
turtle.setup(1300, 800, 0, 0)
pythonsize = 30
turtle.pensize(pythonsize)
turtle.pencolor("blue")
turtle.seth(-40)
draw_snake(40, 80, 5, pythonsize / 2)
main()
数据驱动的动态路径绘制
import turtle
def main():
turtle.title("数据驱动的动态路径绘制")
turtle.setup(800, 600, 0, 0)
pen = turtle.Turtle()
pen.color('red')
pen.width(5)
pen.shape("turtle")
pen.speed(5)
result = []
file = open("a.txt", 'r')
for line in file:
result.append(list(map(float, line.split(','))))
print(result)
for i in range(len(result)):
pen.color((result[i][3], result[i][4], result[i][5]))
pen.forward(result[i][0])
if result[i][1]:
pen.right(result[i][2])
else:
pen.left(result[i][2])
pen.goto(0, 0)
if __name__ == '__main__':
main()
使用蒙特卡洛方法估计圆周率的值
from random import *from math import *from time import *
DARTS = 1000000
hits = 0
clock()for i in range(1,DARTS):
x,y=random(),random()
dist = sqrt(x**2+y**2)
if(dist <= 1.0):
hits = hits+1
pi = 4*(hits/DARTS)print("Pi的值是:%s"%pi)print("程序运行时间是 %-5.5ss"%clock())
##寻找素数
for n in range(2,100):
for x in range(2,n):
if n % x == 0:
print(n, "equals", x, "*", n//x)
break;
else:
print(n, "is a prime number")
文件循环
def main():
file_name = input("What's the file path?")
try:
infile = open(file_name, 'r')
except FileNotFoundError:
print("\\nFile not found")
else:
msum = 0.0
count = 0
line = infile.readline()
while line != "":
msum += eval(line)
count += 1
line = infile.readline()
print("\\nThe average of the numbers is", msum / count)
main()
图形用户界面
TKinter——Python标准GUI
1、15中常见的Tk控件
2、3种布局管理方法
3、控件的共同属性
Graphics——基于Tkinter扩展
1、GraphWin对象常用方法
2、图形对象通用方法
3、Point对象方法
4、Line对象方法
5、Circle对象方法
6、Rectangle对象方法
7、Oval对象方法
8、Polygon对象方法
9、Text对象方法
Turtle——Python内置的图形库
使用graphics库实现交互式多边形绘制
from graphics import *
def main():
win = GraphWin("Draw a polygon", 300, 300)
win.setCoords(0, 0, 300, 300)
message = Text(Point(150, 20), "CLick on five points")
message.draw(win)
p1 = win.getMouse()
p1.draw(win)
p2 = win.getMouse()
p2.draw(win)
p3 = win.getMouse()
p3.draw(win)
p4 = win.getMouse()
p4.draw(win)
p5 = win.getMouse()
p5.draw(win)
polygon = Polygon(p1, p2, p3, p4, p5)
polygon.setFill("peachpuff")
polygon.setOutline("black")
polygon.draw(win)
message.setText("Click anywhere to quit.")
win.getMouse()
main()
使用TKinter实现简单的聊天界面
from tkinter import *import time
def main():
def send_msg():
strMsg = "我:" + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + "\\n"
txtMsgList.insert(END, strMsg, 'greencolor')
txtMsgList.insert(END, txtMsg.get('0.0', END))
txtMsg.delete('0.0', END)
def cancelMsg():
txtMsg.delete('0.0', END)
def send_msg_event(event):
if event.keysym == "Up":
send_msg()
# 创建窗口
t = Tk()
t.title("与Python聊天中")
# 创建Frame容器
frmLT = Frame(width=500, height=320, bg="white")
frmLC = Frame(width=500, height=150, bg="white")
frmLB = Frame(width=500, height=30)
frmRT = Frame(width=200, height=500)
# 创建控件
txtMsgList = Text(frmLT)
txtMsgList.tag_configure("greencolor", foreground="#008c00") # 创建tag
txtMsg = Text(frmLC)
txtMsg.bind("<KeyPress-Up>", send_msg_event)
btnSend = Button(frmLB, text='发送', width=8, command=send_msg)
btnCancel = Button(frmLB, text='取消', width=8, command=cancelMsg)
imgInfo = PhotoImage(file="python.gif")
lblImage = Label(frmRT, image=imgInfo)
lblImage.image = imgInfo
# 窗口布局
frmLT.grid(row=0, column=0, columnspan=2, padx=1, pady=3)
frmLC.grid(row=1, column=0, columnspan=2, padx=1, pady=3)
frmLB.grid(row=2, column=0, columnspan=2)
frmRT.grid(row=0, column=2, rowspan=3, padx=2, pady=3)
# 固定大小
frmLT.grid_propagate(0)
frmLC.grid_propagate(0)
frmLB.grid_propagate(0)
frmRT.grid_propagate(0)
btnSend.grid(row=2, column=0)
btnCancel.grid(row=2, column=1)
lblImage.grid()
txtMsgList.grid()
txtMsg.grid()
t.mainloop()
main()
使用Turtle库绘制模拟时钟
from turtle import *from datetime import *
def Skip(step):
penup()
forward(step)
pendown()
def mkHand(name, length):
# 注册Turtle形状,建立表针Turtle
reset()
Skip(-length * 0.1)
begin_poly()
forward(length * 1.1)
end_poly()
handForm = get_poly()
register_shape(name, handForm)
def Init():
global secHand, minHand, hurHand, printer
mode("logo") # 重置Turtle指向北
# 建立三个表针Turtle并初始化
mkHand("secHand", 125)
mkHand("minHand", 130)
mkHand("hurHand", 90)
secHand = Turtle()
secHand.shape("secHand")
minHand = Turtle()
minHand.shape("minHand")
hurHand = Turtle()
hurHand.shape("hurHand")
for hand in secHand, minHand, hurHand:
hand.shapesize(1, 1, 3)
hand.speed(0)
# 建立输出文字Turtle
printer = Turtle()
printer.hideturtle()
printer.penup()
def SetupClock(radius):
# 建立表的外框
reset()
pensize(7)
for i in range(60):
Skip(radius)
if i % 5 == 0:
forward(20)
Skip(-radius - 20)
else:
dot(5)
Skip(-radius)
right(6)
def Week(t):
week = ["星期一", "星期二", "星期三",
"星期四", "星期五", "星期六", "星期日"]
return week[t.weekday肝魂一晚上总结:2021年全网最全最面的让你Java从零教你变大佬思维图☀️《❤️记得收藏❤️》