马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
import easygui as g
import urllib.request
def main():
msg = "请填写喵的尺寸"
title = "下载一只喵"
fieldNames = ["宽:", "高:"]
fieldValues = []
size = width, height = 400, 600
fieldValues = g.multenterbox(msg, title, fieldNames, size)
while 1:
if fieldValues == None:
break
errmsg = ""
try:
width = int(fieldValues[0].strip())
except:
errmsg += "宽度必须为整数!"
try:
height = int(fieldValues[1].strip())
except:
errmsg += "高度必须为整数!"
if errmsg == "":
break
fieldValues = g.multenterbox(errmsg, title, fieldNames, fieldValues)
url = "http://placekitten.com/g/%d/%d" % (width, height)
response = urllib.request.urlopen(url)
cat_img = response.read()
filepath = g.diropenbox("请选择存放喵的文件夹")
if filepath:
filename = '%s/cat_%d_%d.jpg' % (filepath, width, height)
else:
filename = 'cat_%d_%d.jpg' % (width, height)
with open(filename, 'wb') as f:
f.write(cat_img)
if __name__ == "__main__":
main()
这个代码有些地方看不懂求教:
1.第九行size语句的作用?我单独将前十行运行了一下发现size已经实现了对输入框进行填充数据的,那么size为什么可以直接对fieldvalues的输入框进行填入,size的填入的是两个数据width,height为什么就一定分别对应了前面的fieldnames,他们应该只是两个简单的参数而已啊?fieldvalues和size的区别是什么?
2.第十三行判断fieldvalues是否为空,前面的1-10行代码已经对输入框进行写入了,这里为什么还要判断?第十八行的这个语句是什么意思: width = int(fieldValues[0].strip())?第30行的errmsg和第10行的msg在显示上有什么作用和区别吗?
3.第39——42行的if语句什么作用?
4.最后的if __name__ == "__main__":
main()
在这里什么作用?有没有通俗的语句能代替?
第一问:
这里的 fieldvalues = [] 是无用、多余的,因为被 fieldValues = g.multenterbox(msg, title, fieldNames, size) 赋值时候重新覆盖了,所以导致你的误解
第二问:
fieldvalues = [] 被后来的 fieldValues = g.multenterbox(msg, title, fieldNames, size) 所覆盖,而不是空列表哈
fieldValues = g.multenterbox(msg, title, fieldNames, size) 你就理解为 filedValues 是接受 这个函数g.multenterbox的返回值的
当你按 OK 返回的是输入框的内容,按下Cancle 返回的是 None ,将你按下的结果返回给 fieldValues
|