AttributeError,UnboundLocalError,飞桨Python入门,使用python的tkinter库

简介: AttributeError,UnboundLocalError,飞桨Python入门,使用python的tkinter库

飞桨Python入门



c24ce7680e344efca41debace25d771f_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


requests.get(url=url, headers=headers) 请求网页返回的是response对象

response.text: 获取网页文本数据

response.json: 获取网页json数据


解析数据


常用解析数据方法: 正则表达式、css选择器、xpath、lxml…

常用解析模块:bs4、parsel…


""""""
import pprint
import requests
import parsel
import csv
if __name__ == '__main__':
    print(1)
    import pprint
    import requests
    import parsel
    import csv
    # csv模块保存数据到Excel
    f = open('豆瓣电影数据.csv', mode='a', encoding='utf-8', newline='')
    csv_writer = csv.DictWriter(f, fieldnames=['电影名字', '参演人员', '上映时间', '拍摄国家', '电影类型',
                                               '电影评分', '评价人数', '电影概述'])
    csv_writer.writeheader()  # 写入表头
    # 模拟浏览器发送请求
    for page in range(0, 251, 25):
        url = f'https://movie.douban.com/top250?start={page}&filter='
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
        }
        response = requests.get(url=url, headers=headers)
        # 把 response.text 文本数据转换成 selector 对象
        selector = parsel.Selector(response.text)
        # 获取所有li标签
        lis = selector.css('.grid_view li')
        # 遍历出每个li标签内容
        for li in lis:
            # 获取电影标题 hd 类属性 下面的 a 标签下面的 第一个span标签里面的文本数据 get()输出形式是 字符串获取一个  getall() 输出形式是列表获取所有
            title = li.css('.hd a span:nth-child(1)::text').get()  # get()输出形式是 字符串
            movie_list = li.css('.bd p:nth-child(1)::text').getall()  # getall() 输出形式是列表
            star = movie_list[0].strip().replace('\xa0\xa0\xa0', '').replace('/...', '')
            movie_info = movie_list[1].strip().split('\xa0/\xa0')  # ['1994', '美国', '犯罪 剧情']
            movie_time = movie_info[0]  # 电影上映时间
            movie_country = movie_info[1]  # 哪个国家的电影
            movie_type = movie_info[2]  # 什么类型的电影
            rating_num = li.css('.rating_num::text').get()  # 电影评分
            people = li.css('.star span:nth-child(4)::text').get()  # 评价人数
            summary = li.css('.inq::text').get()  # 一句话概述
            dit = {
                '名字': title,
                '参演人员': star,
                '上映时间': movie_time,
                '拍摄国家': movie_country,
                '电影类型': movie_type,
                '电影评分': rating_num,
                '评价人数': people,
                '电影概述': summary,
            }
            pprint.pprint(dit)
            csv_writer.writerow(dit)

解决 AttributeError: module 'urllib' has no attribute 'request'



解决方法:

按照上面两类原因检查代码,在Python3中加入import urllib.request就解决错误,修正

代码:


import urllib
import urllib.request


UnboundLocalError: local variable ‘XXX‘ referenced before assignment



在赋值之前引用了局部变量

提前生明并且赋值,主义类型


使用python的tkinter库



2dc592aa9936466b8f1b6d1a9ea762cb_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

d8ad02870a814e2797f9f4fbde7d0ca2_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


import os
train_parameters = {
    "input_size": [1, 20, 20],                           #输入图片的shape
    "class_dim": -1,                                     #分类数
    "src_path":"./work/data/characterData.zip",       #原始数据集路径
    "target_path":"./work/data/dataset",        #要解压的路径
    "train_list_path": "./train_data.txt",              #train_data.txt路径
    "eval_list_path": "./val_data.txt",                  #eval_data.txt路径
    "label_dict":{},                                    #标签字典
    "readme_path": "/home/aistudio/data/readme.json",   #readme.json路径
    "train_batch_size": 20                             #训练的轮数
}
import matplotlib.pyplot as plt
if __name__ == '__main__':
        print()
        # 绘制图1
import tkinter
import tkinter.ttk
windows = tkinter.Tk()
windows.title("小白问题解答演示用途")
windows.geometry("500x220+200+200")
windows.configure(background="#ffffff")
windows.resizable(0,0)
def kaishi():
    for i in range(1, 10000000):
        print(i)
        windows.update() #更新窗口
#按钮
demoBtn = tkinter.Button(windows,text="kaishi",height=1,command=kaishi)
demoBtn.place(x=5,y=2)
# 长期保持
windows.mainloop()
import tkinter as tk
# 创建主窗口
window = tk.Tk()
window.title('第一个窗体')  # 标题
# 获取屏幕尺寸计算参数,使窗口显示再屏幕中央
screen_width = window.winfo_screenwidth()
screen_height = window.winfo_screenheight()
width = 650
height = 500
# window_size = '%dx%d+%d+%d' % (width, height, (screen_width-width)/2, (screen_height-height)/2)
window_size = f'{width}x{height}+{round((screen_width - width) / 2)}+{round((screen_height - height) / 2)}'  # round去掉小数
window.geometry(window_size)  # 窗口大小
# window.resizable(width=False,height=False) #设置窗体是否可用改变大小;默认可用改变
# 进入等待与处理窗口(监控每个组件,当组件发生变化或触发事件时,会立即更新窗口)
window.mainloop()



相关文章
|
5月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
614 7
|
6月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
492 1
|
6月前
|
存储 人工智能 测试技术
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
本文介绍如何使用LangChain结合DeepSeek实现多轮对话,测开人员可借此自动生成测试用例,提升自动化测试效率。
1160 125
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
|
6月前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
483 0
|
5月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
454 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
5月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
456 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
5月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
5月前
|
存储 Java 调度
Python定时任务实战:APScheduler从入门到精通
APScheduler是Python强大的定时任务框架,通过触发器、执行器、任务存储和调度器四大组件,灵活实现各类周期性任务。支持内存、数据库、Redis等持久化存储,适用于Web集成、数据抓取、邮件发送等场景,解决传统sleep循环的诸多缺陷,助力构建稳定可靠的自动化系统。(238字)
908 1
|
6月前
|
调度 数据库 Python
Python异步编程入门:asyncio让并发变得更简单
Python异步编程入门:asyncio让并发变得更简单
347 5
|
Python
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
1207 3