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

前言

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

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

勉勉强强来用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的问题,可以在评论区留言或者私信我哦
觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值