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()



目录
相关文章
|
1天前
|
机器学习/深度学习 数据采集 数据可视化
利用Python进行历史数据预测:从入门到实践的两个案例分析
利用Python进行历史数据预测:从入门到实践的两个案例分析
12 1
|
6天前
|
Python
在Python中绘制K线图,可以使用matplotlib和mplfinance库
使用Python的matplotlib和mplfinance库可绘制金融K线图。mplfinance提供便利的绘图功能,示例代码显示如何加载CSV数据(含开盘、最高、最低、收盘价及成交量),并用`mpf.plot()`绘制K线图,设置类型为'candle',显示移动平均线(mav)和成交量信息。可通过调整参数自定义图表样式,详情参考mplfinance文档。
19 2
|
6天前
|
机器学习/深度学习 边缘计算 TensorFlow
【Python机器学习专栏】Python机器学习工具与库的未来展望
【4月更文挑战第30天】本文探讨了Python在机器学习中的关键角色,重点介绍了Scikit-learn、TensorFlow和PyTorch等流行库。随着技术进步,未来Python机器学习工具将聚焦自动化、智能化、可解释性和可信赖性,并促进跨领域创新,结合云端与边缘计算,为各领域应用带来更高效、可靠的解决方案。
|
6天前
|
机器学习/深度学习 自然语言处理 语音技术
【Python 机器学习专栏】Python 深度学习入门:神经网络基础
【4月更文挑战第30天】本文介绍了Python在深度学习中应用于神经网络的基础知识,包括神经网络概念、基本结构、训练过程,以及Python中的深度学习库TensorFlow和PyTorch。通过示例展示了如何使用Python实现神经网络,并提及优化技巧如正则化和Dropout。最后,概述了神经网络在图像识别、语音识别和自然语言处理等领域的应用,并强调掌握这些知识对深度学习的重要性。随着技术进步,神经网络的应用将持续扩展,期待更多创新。
|
6天前
|
机器学习/深度学习 算法 数据挖掘
【Python 机器学习专栏】Python 机器学习入门:基础概念与流程
【4月更文挑战第30天】本文介绍了Python在机器学习中的重要性,机器学习的基础概念和分类,包括监督学习、非监督学习和强化学习。Python因其丰富的库(如Scikit-learn、TensorFlow、PyTorch)、简单易学的语法和跨平台性在机器学习领域广泛应用。文章还概述了机器学习的基本流程,包括数据收集、预处理、特征工程、模型训练与评估等,并列举了常用的Python机器学习算法,如线性回归、逻辑回归、决策树和支持向量机。最后,讨论了Python机器学习在金融、医疗、工业和商业等领域的应用,鼓励读者深入学习并实践这一技术。
|
7天前
|
Serverless Python
使用Python的pandas和matplotlib库绘制移动平均线(MA)示例
使用Python的pandas和matplotlib库绘制移动平均线(MA)示例:加载CSV数据,计算5日、10日和20日MA,然后在K线图上绘制。通过`rolling()`计算平均值,`plot()`函数展示图表,`legend()`添加图例。可利用matplotlib参数自定义样式。查阅matplotlib文档以获取更多定制选项。
19 1
|
7天前
|
数据采集 SQL 数据挖掘
Python数据分析中的Pandas库应用指南
在数据科学和分析领域,Python语言已经成为了一种非常流行的工具。本文将介绍Python中的Pandas库,该库提供了强大的数据结构和数据分析工具,使得数据处理变得更加简单高效。通过详细的示例和应用指南,读者将了解到如何使用Pandas库进行数据加载、清洗、转换和分析,从而提升数据处理的效率和准确性。
|
7天前
|
SQL 关系型数据库 MySQL
使用Python的pymysql库连接MySQL,执行CRUD操作
使用Python的pymysql库连接MySQL,执行CRUD操作:安装pymysql,然后连接(host='localhost',user='root',password='yourpassword',database='yourdatabase'),创建游标。查询数据示例:`SELECT * FROM yourtable`;插入数据:`INSERT INTO yourtable...`;更新数据:`UPDATE yourtable SET...`;删除数据:`DELETE FROM yourtable WHERE...`。
16 0
|
8天前
|
机器学习/深度学习 算法 数据挖掘
机器学习--K近邻算法,以及python中通过Scikit-learn库实现K近邻算法API使用技巧
机器学习--K近邻算法,以及python中通过Scikit-learn库实现K近邻算法API使用技巧
|
8天前
|
存储 Python Windows
轻松学会openpyxl库,Python处理Excel有如神助
轻松学会openpyxl库,Python处理Excel有如神助