春节倒计时,让我来秀一手:用Python制作一个对联生成器

news2024/11/16 11:33:43

前言

跨年跨完了,马上就要迎来春节了,这不得秀一手?

那就直接开始春节的表演呗

勉勉强强来用python制作对联生成器吧

效果展示

这里的话,你自己想要啥春联主题是可以搜索滴,有些地方也是可以看着改的,就看你们自己会不会咯,哈哈哈

不想看文章,想直接领取源码的,可以直接划到末尾的名片哦,或者点击文章里的蓝色字体就行

在这里插入图片描述

代码实现

模块准备

import sys
import json
import random
import requests
from PyQt5 import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5 import QtWidgets, QtGui

完整 源码 点击 此处 领取 即可

class CoupletGenerator(QWidget):
    def __init__(self, parent=None, **kwargs):
        super(CoupletGenerator, self).__init__(parent)
        # 初始化, 相关key需要在https://.com/#/index/overview申请
        self.setWindowTitle('Python学习交流Q群:309488165')
        # self.setWindowIcon(QIcon('data/icon.png'))
        self.setFixedSize(600, 400)
        self.error_codes = {
            '2': '后端连接超时请重试',
            '52001': '请求超时请重试',
            '52002': '系统错误请重试',
            '52003': '未授权用户',
            '52004': '输入解析失败',
            '52005': '输入字段有误',
            '52006': '输入文本长度不超过5',
            '52007': '输入文本包含政治&黄色内容',
            '52008': '后台服务返回错误请重试',
            '54003': '访问频率受限',
            '54100': '查询接口参数为空',
            '54102': '无写诗结果请重试'
        }
        self.api_key = 'PKUMP5SkXlpLVF5DXbuWwwZT'
        self.secret_key = 'D4Q6eo8AqfWxGemL0pNk41jfSRnnnefh'
        self.access_token = self.gettoken()

设置组件

self.label_title = QLabel('春联主题:')
self.line_title = QLineEdit('新春佳节')
self.generate_btn = QPushButton('生成')
self.label_result = QLabel('生成结果:')
self.text_couple = QTextEdit()

布局

grid = QGridLayout()
grid.addWidget(self.label_title, 1, 0)
grid.addWidget(self.line_title, 1, 1, 1, 39)
grid.addWidget(self.generate_btn, 1, 40)
grid.addWidget(self.label_result, 2, 0)
grid.addWidget(self.text_couple, 2, 1, 1, 40)
self.setLayout(grid)

事件关联

python学习交流Q群:309488165 ### 源码领取
    self.generate_btn.clicked.connect(self.generate)
'''生成对联'''
def generate(self):
    if not self.line_title.text().strip():
        return
    url = f'https://******.com/rpc/2.0/nlp/v1/couplets?access_token={self.access_token}'
    headers = {
        'Content-Type': 'application/json'
    }
    all_couplets = []
    index_ranges = [(0, 2), (3, 5), (6, 8), (9, 11), (12, 14)]
    for idx in range(5):
        params = {
            'text': self.line_title.text(),
            'index': random.randint(*index_ranges[idx]),
        }
        response = requests.post(url, headers=headers, json=params)
        response_json = response.json()
        center = response_json['couplets']['center']
        first = response_json['couplets']['first']
        second = response_json['couplets']['second']
        text = f'横批: {center}\n上联: {first}\n下联: {second}'
        all_couplets.append(text)
    self.text_couple.setText('\n\n\n'.join(all_couplets))

最后

朋友们学习python,有时候不知道怎么学,从哪里开始学。掌握了基本的一些语法或者做了两个案例后,不知道下一步怎么走,不知道如何去学习更加高深的知识。
那么对于这些朋友们,我准备了大量的免费视频教程,PDF电子书籍,以及源代码!直接在文末名片自取即可哦!

今天的分享到这里就结束了

顺便给大家推荐一些Python视频教程,希望对大家有所帮助:

Python零基础教学合集

对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦
觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/140539.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FPGA知识汇集-FPGA的低功耗设计方法总结

精确的热分析在很多电子产品设计中都有着举足轻重的作用,在高端的PCB设计中尤为突出。热分析的结果常常会影响PCB的机械层设计和产品的外壳设计:是否需要安装散热片、散热风扇等。如果安装散热风扇,往往需要降低其噪音,这将使得机械层设计变得…

【OpenAI】What Is ChatGPT

文章目录介绍注册介绍 OpenAI发布了一个全新的聊天机器人模型—— ChatGPT,同时这也是继GPT-3.5 系列的主力模型之一 ChatGPT 测试地址: https://chat.openai.com/auth/login https://gpt.chatapi.art/ ChatGPT官方说明: Optimizing Langua…

【自学Java】Java语言数组遍历

Java语言数组遍历 Java语言数组遍历教程 Java 语言 中如果我们定义好了数组,并且给数组设置了值,那么怎么样访问数组呢?怎么样获取数组里面的数据值呢?我们可以使用 for 来遍历数组,获取每个位置上的值。 Java语言数…

谷粒学院——第十四章、微信扫码登录

准备工作 注册开发者资质 官网:https://open.weixin.qq.com/ 尚硅谷分享 wx:open:# 微信开放平台 appidappid: wxed9954c01bb89b47# 微信开放平台 appsecretappsecret: a7482517235173ddb4083788de60b90e# 微信开放平台 重定向url(guli.shop需要在微…

腾讯云存储

文章目录一、开通腾讯云存储1.注册腾讯云账号,开通对象服务2. 创建存储桶3.获取SecretId 和 SecretKey提示:以下是本篇文章正文内容,下面案例可供参考 一、开通腾讯云存储 在项目钟的图片以及文件需要归档存储。如果归档文件只保存到服务器…

WebRTC学习总结

WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流…

二十五、Docker (1)

🌻🌻 目录一、Docker的概述1.1 为什么要去学习Docker1.2 Docker 概述1.3 Docker的历史1.4 Docker 官网1.5 Docker能做什么1.6 DevOps(开发、运维)二、Docker安装启动(官网)2.1 Docker 架构2.1.1 镜像(image)2.1.2 容器…

DICOM 图像传输:使用 LeadTools 实现 C-Store SCP 服务

文章目录开发环境创建 Qt Widgets 程序设计界面配置 LeadTools 路径编写代码使用 LDicomNet 实现 SCP 的步骤日志输出编写 SCP Server 类编写 SCP Client 类启动 LDicomNet 及启动监听编译程序运行程序发布与部署测试程序界面美化参考开发环境 LeadTools 17Qt 5.15.2 MSVC2019…

【Linux】进程间通信(万字详解) —— 上篇

🎇Linux: 博客主页:一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 看似不起波澜的日复一日,一定会在某一天让你看见坚持…

谷粒学院——第九章、阿里云视频点播

阿里云视频点播 开通 地址: 上传测试 开通以后,点击控制台,然后选择音/视频: 注意:先点击启用存储地址再上传。 添加转码模版: 开发文档 官方地址:https://help.aliyun.com/p…

批量统计不同块的数量

CAD收集块的数量一般采用FI等命令,或者使用天正等软件,这些方法或多或少都存在某些问题。这时就可以编写插件满足不同场景的使用。已应用到实际工作中。 一、界面及其功能 采用c#制作cad插件,框选待统计范围,直接输出到表格中&…

数据库连接超时的处理

报错信息:Caused by: java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30000ms.at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:695)at com.zaxxer.hikari.pool.H…

Java高手速成 | 数据库实训:图书馆管理系统建模

图书馆管理系统是常见的管理信息系统,考虑到系统的推广性,本系统采用SQL SERVER2000作为数据库。并且采用PowerDesigner进行数据建模,从而自动生成sql脚本。 01、数据库概念设计 1. 数据库表设计 管理员表admin:管理员编号&am…

[JavaEE] volatile与wait和notify

专栏简介: JavaEE从入门到进阶 题目来源: leetcode,牛客,剑指offer. 创作目标: 记录学习JavaEE学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 一.volatile 关键字. 1.volatile 能保证内存可见性…

12个爆款 Java 开源项目

1JavaGuidehttps://github.com/Snailclimb/JavaGuide Star 10503【Java学习面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。2symphonyhttps://github.com/b3log/symphony Star 6664一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台…

17-Golang中的包

Golang中的包基本介绍包的三大作用相关说明包的注意事项和细节说明基本介绍 1.在实际的开发中,我们往往需要在不同的文件中,去调用其他文件的定义的幻术,比如main.go中,去使用utils.go文件中的函数2.包的本质就是创建不同的文件夹…

vue简单的数据传输

很久没有水文了,最近又得了新冠才好,学习也没什么进度,先复习下之前的组件的数据传输吧! props传值 这个很简单就是在组件标签上转递数据,值得注意的是如果不使用v-bind:(:),转递的…

任务二:Web隐藏信息获取

任务二:Web隐藏信息获取 任务环境说明: 服务器场景名:web20200604服务器场景用户名:未知通过本地PC中渗透测试平台Kali使用Nmap扫描目标靶机HTTP服务子目录,将扫描子目录命令所需参数及第四条扫描结果关键目录以&符号拼接,作为Flag提交(例:-p 22&/root/); …

【信息学CSP-J近16年历年真题64题】真题练习与解析 第11题之纪念品

纪念品 描述 小伟突然获得一种超能力,他知道未来 T 天 N 种纪念品每天的价格。某个纪念品 的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量。 每天,小伟可以进行以下两种交易无限次: 任选一个纪念品,若手上有足够金币,以当日价格购买该…

Android---DrawerLayout + NavigationView

现在 Android Studio 已经直接提供左滑菜单功能,只需要在创建新项目时选择 Navigation Drawer Activity 就可以直接创建一个有左滑菜单功能的 APP。 目录 DrawerLayout NavigationView android:src 与 app:srcCompat fitsSystemWindows DrawerLayout …