python中级水平_Python 中级知识点

Python 中级

同样还是学习@斌叔的程序媛课程的笔记~

本节是对初级教程的补充,主要讲解Python中的异常处理,模块,文件I/O,GUI编程等知识

异常处理

异常就是代码在执行过程中发生的特殊事件,程序就会奔溃无法正确运行

异常处理需要用到Try/except 语句

异常的基类:BaseException

while 1:

try:

num1 = raw_input("输入被除数:")

num2 = raw_input("输入除数:")

result = int(num1)/int(num2)

except BaseException:

print "出现异常" + "\n"

else:

print ("运算结果为" + str(result))

鲁棒性:

系统和程序的稳定性,健壮性

我们在编程中药仔细考虑,看是否有情况会导致程序无法正常运行,写出更具鲁棒性的程序

模块(Module):

一个Python文件

当我们做一个程序时,可以把功能的相关代码写在一个模块里(Module),这样会使代码更清晰,更好用

1.通过 import 来导入模块

首先新建一个test.py文件,和hello.py一个目录

然后通过“模块名.函数名”的形式来调用

Screen Shot 2018-03-23 at 5.55.57 PM.png.png

2.除此外,我们还可以通过 from ... import ... 的形式导入模块

比如爬虫课程中的 from selenium import webdriver 就表示我们导入了 selenium 模块中的 webdriver 函数

要是写成 from selenium import * 则表示导入 selenium 的全部内容,但是不建议过多的这样来写

建一个ly_python文件夹,建.py文件

首先我们要拿到要操作的文件对象,这就要设计到Python()的一个内置函数open()

Screen Shot 2018-03-23 at 6.30.20 PM.png.png

这时候打开刚才的 ly_python 文件夹你会发现,里面多了一个 test1.txt 的文件(并没有。。。)

因为我的电脑环境用不了Python2.0,索性换成Python3.0了。

读写文件:

Screen Shot 2018-03-29 at 5.33.49 PM.png.png

rename

os.rename("test1.txt","test2.txt")

remove

os.remove("test2.txt")

写两个小Tips,如果生成不了.txt文件,可以用其他的姿势生成!学习还是要继续的!

方法一:

1)工具 TextEdit

2)按shift + command + T ,转为.txt 格式

方法二:

1)工具:Terminal

2) 跳转到指定文件夹的目录下:cd/user/文件夹

使用 vi 生成文本:sudo vi fileName.txt

保存退出::wq

------------------------------我是分割线------------------------------

写一个桌面小程序:日记本

也就是GUI(Graphical User Interface)编程

Python 中有Tkinter, wxPython 等图形界面开发的库,本课程以Tkinter

以下是重点:

btn = Button(root, text='这是一个按钮'),代表创建了一个按钮,

btn.pack() 表示把 btn 放在主窗口上,

pack 是一种布局方式

Label 可以通过 config 的方法来设置文字

saveBtn.pack(side=LEFT, anchor='sw') 表示把按钮设置在左下

其中 side 有4个值,TOP、BOTTOM、LEFT、RIGHT,默认为 TOP

anchor 是对齐方式,sw 即 southwest(西南)的,也就是左下,以此类推,一共有9个值 n、s、w、e、nw、sw、se、ne、center,默认是 center

先看写日记时,需要用到 Entry 和 Text,Entry 是一个简单的输入控件,Text 用来显示多行文本

StringVar 是一个字符串变量类型,textvariable 表示文本框中的值,写 textvariable=textVar 是为了方便我们后期对标题的一些操作

再来看看日记时,需要显示一个列表,这就要用到 ListBox

比起其他的控件多了一步,不过也是很简单的,默认的列表高度太小了,所以用 height=300 设置了一下高度

command=write 表示点击这个按钮时候,会执行 write 方法,然后我们来写一下 wirte 方法

listBox.bind('',showDiary) 这就表示过给列表绑定了一个双击方法 showDiary,那么下一步自然是完善 showDiary 方法

遇到error:

a bytes-like object is required, not 'str'

解决方法,把str 转为byte类型

fileObj.write(content.encode(encoding = "utf-8"))

最后是退出按钮,直接 command = quit 就可以了

但是在 Mac 上有一点问题,不能通过输入法来输入中文,也没关系这不是重点,只要学会如何编写就 OK 了

附上代码,直接在Terminal 里:

python + address

就能运行了,运行效果就是简单的读写日记 ☺

消化完这些之后,要继续学Python中级课程啦~

import os

def write():

textVar.set("") #清空 entry

text.delete("0.0","end") #清空 text

label.config(text = "写日记模式")

listBox.pack_forget() #隐藏 listBox

entry.pack() #显示 entry

text.pack #显示 pack

def save():

title = textVar.get() + ".txt" # 获取标题

content = text.get("0.0", "end") # 获取内容

if title != ".txt":

fileObj = open(title, "wb") # 打开一个文件

fileObj.write(content.encode(encoding = "utf-8")) # 写入内容

fileObj.close() # 关闭打开的文件

label.config(text = "已保存")

else:

label.config(text = "请输入标题")

def read():

listBox.delete(0,END) # 清空 listBox

dir = os.getcwd() # 获取当前目录

list = os.listdir(dir) # 获取目录内所有文件

showText = "看日记模式"

if len(list) == 0: # 如果当前没有日记

showText += "(日记本是空的)" # 设置提示

label.config(text = showText)

for item in list: # 遍历

listBox.insert(0,item) # 向listBox 插入数据

listBox.bind('',showDiary) # 绑定双击事件

entry.pack_forget() # 隐藏 entry

text.pack_forget() # 隐藏 text

listBox.pack() # 显示 listBox

def showDiary(event):

title = listBox.get(listBox.curselection()) # 获取点击的日记名

showTitle = title[:-4] # 截取至倒数第4个字符(即不显示.txt)

textVar.set(showTitle) # 设置日记标题

fileObj = open(title, "r+") # 打开对呀标题的文件

content = fileObj.read(); # 获取文件内容

text.delete("0.0", "end") # 清空 text

text.insert("end", content) # 把内容显示在 text 上

fileObj.close() # 关闭打开的文件

listBox.pack_forget() # 隐藏 listBox

entry.pack() # 显示 entry

text.pack() # 显示 text

#创建日记文件夹

def initDiary():

dir = os.getcwd() # 获取当前.py目录

list = os.listdir(dir) # 获取当前目录中的所有文件

haveDiary = False # 设置一个变量,是否存在diary文件夹,默认为 False

for item in list: # 遍历

if item == "diary": # 判断是否存在 diary 文件夹

haveDiary = True # 如果有,设置 diary 为Ture

if haveDiary == False: # 如果 haveDiary 为 False

os.mkdir("diary") # 创建 diary 文件夹

os.chdir("./diary") # 改变 .py 工作目录到 diary 内

initDiary()

root = Tk() #创建窗口

root.geometry('500x400') #窗口的frame

root.title("窗口的名字")

saveBtn = Button(root, text = "Save",command=save)

saveBtn.pack(side=LEFT,anchor='sw') #pack 是一种布局方式 ancher是一种对齐方式

quitBtn = Button(root,text = "Exit")

quitBtn.pack(side=RIGHT,anchor="se")

#command=write 表示点击这个按钮时候,会执行 write 方法,然后我们来写一下 write 方法

writeBtn = Button(root, text="写日记", command=write)

writeBtn.pack(side=BOTTOM, anchor='s')

readBtn = Button(root,text = "read",command=read)

readBtn.pack(side=BOTTOM)

label = Label(root)

label.pack()

label.config(text = "This is a demo")

textVar = StringVar()

entry = Entry(root, textvariable = textVar)

entry.pack()

listBox = Listbox(root, height = 300)

text = Text(root)

text.pack()

root.mainloop() #开始事件循环

转自斌叔的程序媛

想学习的同学,可以加入我们哦~(T T我的组只有我一个人了,诶)

就在这里~程序媛等待你的加入

本来想把代码上传到简书的,但是不知道在哪来能上传。诶呀呀

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值