Flask开发成语接龙游戏,以后闲了手机玩玩自己写的游戏吧!#华为云·寻找黑马程序员#

1124:成语接龙 dfs+一维数组保存结果  题目描述 小明在玩成语接龙的游戏。成语接龙的规则是,如果成语A的最后一个汉字与成语B的第一个汉字相同,那么成语B就可以接到成语A的后面。 小明现在手上有一本成语词典,每次他都得花费一定时间来从当前的成语查到下一个可以接在后面的成语。 现在给你一个成语列表,请你计算从列表中的第一个成语开始,到接到列表中的最后一个成语最少需要多长时间。 输入格式 输入包含多组测试数据。 每组输入第 阅读详情

明天你好,我叫干不倒

一直比较喜欢看《欢乐喜剧人》,其中有一期小沈龙的节目,名字叫明天你好,我叫干不倒…
父亲的身体一直不好,因为常年的酗酒抽烟,患脑梗好些年头了,周末病情有些恶化,住院治疗了。我是家中独子,父母生病只能靠我来照看,但IT这行请假尤其长假简直奢望,但母亲一个人忙不过来,让我有些不知如何是好。希望老爸的病情能有所好转,早日康复吧。

英语单词学习应用

周五发布的文章Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署发布后,看到喜欢的人比较多。本来周末打算照着扇贝/极光单词,写一个英语单词自测工具。但苦于单词的分类和数据没找到很细致的文档,所以这个内容往后延一下。
如果大家有英语单词、音标、翻译这种根据不同年级或等级分类的数据可以共享给我,开发完成大家一起学习背单词。

成语接龙

6月高考的前一天,我发布的一篇文章,决战高考,帮你秒变成语之王,当时只是吧网站的成语爬下来保存到数据库中,文末提到有机会了抽时间拿这些数据搞点事情,那么今天就来搞事情吧。用3W+的成语数据库,开发一款成语接龙的小游戏。

接龙规则

成语接龙是中华民族传统的文字游戏。它不仅有着悠久的历史和广泛的社会基础,同时还是体现我国文字、文化、文明的一个缩影,是老少皆宜的民间文化娱乐活动。
成语接龙规则多样,大家一般熟知的是采用成语字头与字尾相连不断延伸的方法进行接龙;用四个字成语的最后一个字与下一句成语的第一个相同的字【音同就可以】,首尾相接不断延伸,形成长龙。

实现分析
数据库信息

先来看看我们的数据库信息:
数据库信息
数据库表idiom分为id,name,speak,meaning,example,hot 几个字段,hot是当时搜索的网站热词排行,跟咱们没有太大关系…主要是name和speak字段。

登陆排行

为了能增强可玩性,我们在每次开场前,允许用户随机输入一个名字。在挑战过程中,针对用户坚持的接龙次数进行排名。
挑战者记录
创建用户排名表:

CREATE TABLE rank (
    name  VARCHAR (50) NOT NULL,
    round_num INT      NOT NULL
);

这里为什么不设置主键呢?主要是排名取前5,用户使用一个名字多次参战,如果犀利的话包揽前5看这也很帅气啊,清一色的都是我,想想都觉得自我满足感爆棚。

游戏界面

首先映入眼帘的是ROUND 1的接龙次数显示,有没有儿时拳皇对打的感觉…
为了帮助大家在玩游戏的同时能学习成语知识,也避免有些生僻字不认识,所以在界面中显示了成语、注音、解释和示例,当然示例不是每个成语都有,网站有啥我就展示啥呗…
游戏界面

成语判断

首先必须是四字的成语,用户输入非四字的成语会弹出警示栏,其次用户填写完成语后,会将成语在数据库中进行检索,如果是成语则进行接龙后返回电脑的匹配结果,进行第二轮的基隆,如果数据库中无此成语会弹出游戏结束的提示“挑战结束:用户输入的成语是自己编的吧!”,返回登陆页,并将用户的挑战结果入库rank表进行排行。
这里需要注意,成语接龙的收尾字可以不一样但音必须相同,包括声调哦!

拼音识别

数据库中的成语我们存在拼音了,但用户输入的是汉字,我们如何进行拼音转化呢?这里需要使用到python的一个模块pypinyin。针对这个模块的使用,之前写过一篇文章Python为文档批量注音(生僻字歌词为例),喜欢的朋友可以去看看。用法很简单,但我们需要做到和数据库中相对应才行。

from pypinyin import pinyin
pinyin('唇枪舌剑')
# output:
[['chún'], ['qiāng'], ['shé'], ['jiàn']]
# 此处为一个嵌套列表,我们需要转化为数据库中的格式
'  '.join(map(lambda x: x[0], pinyin('唇枪舌剑')))
# output:
'chún  qiāng  shé  jiàn'
代码编写
Jinjia2模板

大家看到不管是用户登录还是游戏界面,外框内容基本一致,基于这种场景使用Jinjia2的模板继承是个很不错的选择:
layout.html主要负责大体框架及相关css和js的引入工作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1 ,user-scalable=no">
    <title>清风python</title>
    <link rel="icon" href="{{ url_for('static',filename='favicon.ico') }}">
    <link rel="stylesheet" href="{{ url_for('static',filename='css/bootstrap.min.css') }}">
    <link rel="stylesheet" href="{{ url_for('static',filename='css/main.css') }}">
    <script src="{{ url_for('static',filename='js/jquery.min.js') }}"></script>
</head>
<body>

<div class="container container-small">
    <div class="content">
        <div class="header">
            成语接龙
        </div>
        <div class="block-info">
            {% block contents %}
            {% endblock %}
        </div>
    </div>
    <div class="footer">
        ©2019-欢迎关注我的公众号:<a href="https://www.jianshu.com/u/d23fd5012bed">清风Python</a>
    </div>
</div>

</body>
</html>

login.html涉及到挑战者排行和用户名提交与页面跳转

{% extends "layout.html"%}

{% block contents %}
<form method="post">
    <div class="form-group has-success">
        <div class="input-group">
            <div class="input-group-addon">
                选手姓名:
            </div>
            <input id='name' name="name" class="form-control" required autofocus>

        </div>

    </div>
    <div class="form-group ">
        <button type="submit" class="form-control btn-primary" id="load">火前留名</button>
    </div>
</form>
<div class="form-group ">
    <span class="label label-info">如果战绩足够出色,你的名字也将出现在下方!</span>
</div>
<div class="form-group table_show">

    <table class="table table-hover  table-bordered">
        <thead>
        <tr>
            <th>排名</th>
            <th>挑战者</th>
            <th>对答次数</th>
        </tr>
        </thead>
        <tbody>
        {% if rank_list|length %}
            {% for rank in rank_list %}
            <tr>
                <th scope="row">{{ loop.index }}</th>
                <td>{{rank.name}}</td>
                <td>{{rank.round_num}}</td>
            </tr>
            {% endfor %}
        {% endif %}
        </tbody>
    </table>
</div>

{% endblock %}

game.html主要负责成语接龙游戏的监控与AJAX数据的后台刷新。

{% extends "layout.html"%}

{% block contents %}
<div class="form-group has-success">
    <h3 id='round_num' class="round_num">ROUND 1</h3>
</div>

<div class="form-group rank">

    <table class="table table-hover  table-bordered table_show table-condensed">
        <tbody>
        <tr>
            <th>成语</th>
            <td id="idiom_name"> {{idiom.name}} ({{idiom.speak}})</td>
        </tr>
        <tr>
            <th>解释</th>
            <td id="idiom_meaning">{{idiom.meaning}}</td>
        </tr>
        <tr>
            <th>示例</th>
            <td id="idiom_example"> {{idiom.example}}</td>
        </tr>
        </tbody>
    </table>
</div>

<div class="form-group has-success">
    <div class="input-group">
        <div class="input-group-addon" required autofocus>
            成语:
        </div>
        <input id='user_idiom' class="form-control">

    </div>

</div>
<div class="form-group ">
    <button class="form-control btn-primary" id="load">用户:{{user}} 作答</button>
</div>
<script type="text/javascript">
    $(function () {
        $('#load').click(function () {
            let user_idiom = $('#user_idiom').val();
            if (user_idiom.length != 4) {
                alert("请填写四字成语...");
            } else {
                $.ajax({
                    url: '/more/' + user_idiom,
                    type: 'get',
                    success: function (data) {
                        $('.result').html(data);
                        if (data['code'] == 200) {
                            $('#round_num').html('ROUND ' + data['round']);
                            $('#idiom_name').html(data['info']['name'] + ' (' + data['info']['speak'] + ')');
                            $('#idiom_meaning').html(data['info']['meaning']);
                            $('#example').html('ROUND ' + data['info']['example']);
                        } else {
                            alert(data['error']);
                            $(location).attr('href', data['url']);
                        }
                    }
                })
            }
        })
    })
</script>
{% endblock %}
Flask装饰器

首先,我们的游戏涉及到SQLite数据库的交互,所以在每次请求前,需要建立数据库,请求结束后需要释放连接。此时我们需要使用到两个装饰器,@app.before_request和**@app.teardown_request**,before_request见名知意就是在请求访问前调动该装饰器,那么为什么不用对应的**@app.after_request呢?因为即便用户代码在执行过程中,出现任何错误,也可以通过@app.teardown_request装饰器最终释放数据库连接,但@app.after_request**可不行…
Flask整体代码如下:

import sqlite3
from flask import Flask, render_template, request, g, session, redirect, url_for, jsonify
import random
from pypinyin import pinyin

app = Flask(__name__)
DATABASE = 'static/db/database.db'
app.secret_key = 'Breeze Python'


def connect_db():
    return sqlite3.connect(DATABASE)


@app.before_request
def before_request():
    g.db = connect_db()


@app.teardown_request
def teardown_request(exception):
    if hasattr(g, 'db'):
        g.db.close()


def query_db(query, args=(), one=True):
    cur = g.db.execute(query, args)
    rv = [dict((cur.description[idx][0], value)
               for idx, value in enumerate(row)) for row in cur.fetchall()]
    if not query.startswith('select'):
        g.db.commit()
    return (rv[0] if rv else None) if one else rv


@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        user = request.form.get('name')
        session['user'] = user
        session['round'] = 1
        return redirect(url_for('game'))
    rank_list = query_db('select * from rank order by round_num desc limit 5',one=False)
    print(rank_list)
    return render_template('login.html', rank_list=rank_list)


@app.route('/game')
def game():
    if not session.get('user'):
        return redirect(url_for('index'))
    id = random.randint(1, 30000)
    idiom = query_db('select * from idiom where id = ?',
                     [id])
    return render_template('game.html', user=session.get('user'), idiom=idiom)


@app.route('/more/<user_idiom>')
def more(user_idiom):
    speak_list = pinyin(user_idiom)
    print(speak_list[0][-1])
    idiom_speak = '  '.join(map(lambda x: x[0], speak_list))
    if query_db('select * from idiom where speak = ?',
                [idiom_speak]):
        new_idiom = query_db("select * from idiom where speak like ('%s%%')" % speak_list[-1][0])
        session['round'] = session.get('round') + 1
        print({'code': 200, 'round': session.get('round'), 'info': new_idiom})
        return jsonify({'code': 200, 'round': session.get('round') + 1, 'info': new_idiom})
    else:
        query_db('replace into rank (name,round_num) values (?,?)',
                 [session.get('user'), session.get('round')])
        return jsonify({'code': 404, 'error': "挑战结束:用户输入的成语是自己编的吧!", 'url': request.host_url})
游戏演示

说了这么多,让我们来开一局:
游戏展示
我们使用一个Neo的新用户来进行游戏,随便接龙了几次,然后我编了一个**“蝉鸣鸟叫”**的成语结束这次演示,不然好好答不来个几百轮的那里能结束啊,哈哈…可以看到游戏结束后退回到首页,并进行了挑战排序。还好没几个号,不然排不到前五都看不到效果了…

手机搭建项目

既然上一篇的天气预报工程可以搭建到手机,那么这篇成语接龙,也一样来试试呗。

代码clone

代码我已经上传到了我的git仓库,手机登陆Termux直接clone下载即可:
git clone https://github.com/KingUranus/IdiomsGame.git

pipenv导入

进入clone好的代码路径,之后输入pipenv install创建虚拟环境并下载依赖的模块
键入pipenv shell 进入虚拟环境
通过flask run运行我们的Flask app程序…
image.png

image.png

image.png

The End

今天的Flask项目开发成语接龙游戏的文章,大家是否喜欢,如果觉得内容对你有所帮助,欢迎点击文章右下角的“在看”。
项目代码我都贴出来了,但是有些css和引用的js就没往出贴。如果大家想搭建app玩玩,可以从git上下载代码,或公众号回复成语接龙,自动获取代码的百度网盘地址。
不知道父亲之后几天的住院治疗情况如何,如果比较麻烦可能会断更了,希望大家体谅…
期待你关注我的公众号**清风Python**,如果你觉得不错,希望能动动手指转发给你身边的朋友们。

Python每日练习:成语接龙游戏 对于每个成语,我们检查它的第一个字是否与上一个成语的最后一个字相同。成语接龙是一种富有趣味性和挑战性的游戏,它要求玩家根据前一个成语的最后一个字,找到一个以该字开头的新成语。然后,我们使用一个无限循环来不断获取下一个成语,并将其打印出来。接下来,我们将编写一个函数,用于接收上一个成语并返回一个以最后一个字开头的新成语。我们将使用一个循环,不断提示玩家输入成语,并将其传递给find_idiom函数来获取下一个成语。首先,我们需要一个成语列表,用于存储可供选择的成语。这是一个简单的成语接龙游戏的实现。 阅读详情

相关推荐

crossword-puzzle--idiom:中文成语填字游戏,使用opencv3与python3

crossword-puzzle--idiom 中文成语填字游戏,使用opencv 本中文填字游戏只适合于成语,并且图片,算法什么的也只适合于本项目中所提供的。 博客介绍:

用python写一个网页小游戏

首先,你需要了解一些基本的网络编程知识和 HTML 和 CSS 的基础知识,因为这些知识是网页游戏的基础。 下面是一个使用 Python 和 Flask 框架创建简单网页游戏的示例: 安装 Flask 框架: pipinstall flask 创建一个名为 app.py 的 Python 文件,然后导入 Flask 框架: from flask import Flaskapp = Fla...

weixin_35749545的博客 1187

成语接龙源码

成语接龙app源码

基于flask的五子棋小游戏

基于flask的五子棋小游戏 前言 ​ 首先说明一下,本人方向是java后端,只因老师布置了一个作业,要用flask来做一个五子棋,没办法被逼上梁山,程序不太美观,但是应付作业还是够了的。 ​ 废话不多说,下面开锤! ​ 首先整个程序是一个web应用,前端html+css+javaScript(有用到jquery)(基本都是现学的,所以程序很多注释也很丑),后端用的flask框架。 准备工作 ​ **1.**python环境、安装flask ​ **2.**导入需要用到的包 pip install fl

Yokna的博客 8645

原生JS成语接龙小游戏

基于原生JS开发的一款页面小游戏,亲自动手开发一款小游戏,让枯燥的代码更有意义,为JS学习增添一些乐趣。

回朔算法中的经典填字游戏

经典填字游戏:在3*3个方格的方阵中要填入数字1到N(N>=10)内的某9个数字,每个方格填一个整数,使得所有相邻两个方格内的两个整数之和为质数。试求出所有满足这个要求的各种数字填法。 //我们可以通过改变N的值来求不同数字范围的质数数组,如果超出整型的范围,还需要改变数据类型。 //f[i]来记录数字i是否使用过, //T[i]用来记录下一个可以插在数字i后面的与其和为质数的数字在F[i][]中的位置。 //用F[i][j]来存储按数字从小到大的顺序得出的与数字i和为质数的第j个数字, //例如:F[1][2]存储的是与数字1的和为质数的第二个数字,我们可以通过查询数组F[][]的第一行找出第二个不为0 //值,然后将当前数组单元的列号存储到F[1][2]中,即F[1][2] = 4。 //算法思想是通过查询二维数组F[][],来确定下一个可以插入数组num[]的未使用过的数字,并记录该数字位于数组F[][]的位置, //以便回溯时寻找下一个符合要求的数字。如果不存在这样的未使用的数字,则需要回溯到上一个已插入num[]的数字, //寻找下一个可以插在该数字后面的未使用过的数字进行插入,如果所有的数字都已经插入到num[]中, //如是则打印结果。当所有数字都已插入num[]中,开始 //进行回溯,重复上述操作,寻找其他符合要求的序列。 //这里面有一个关键在于处理位于num数组右下角四个格子的数时,不光需要判断与前一个数i的关系,还需要判断其头顶上的元素之和是否为素数。 //程序中有一大段代码是处理i和j的。

Flask开发成语接龙游戏,以后闲了手机玩玩自己写的游戏吧!

明天你好,我叫干不倒 一直比较喜欢看《欢乐喜剧人》,其中有一期小沈龙的节目,名字叫明天你好,我叫干不倒... 父亲的身体一直不好,因为常年的酗酒抽烟,患脑梗好些年头了,周末病情有些恶化,住院治疗了。我是家中独子,父母生病只能靠我来照看,但IT这行请假尤其长假简直奢望,但母亲一个人忙不过来,让我有些不知如何是好。希望老爸的病情能有所好转,早日康复吧。 英语单词学习应用 周五发布的文章...

清风Python 886

基于html5APP前端和pyhtonflask后端的人工智能井字棋小游戏设计 .zip

资源包含文件:lunwen文档+项目源码及安装包+演示视频 完成了井字棋HTML5 APP小游戏的开发,并实现了真机调试,真机安装。本APP前端借助HTML5+CSS+JavaScript, 并采用了jQuery框架。前端实现了及其细腻的动画,赏心悦目的用户界面,以及良好的异步操作性能。游戏中与人对战的AI使用Min-Max搜索,由运行在阿里云服务器上的python程序实现。前后端通信采用了现代的 A JAX CROD(ajax跨域)通信技术,利用HTTP协议将json格式的数据在前后端POST。利用Min-Max搜索的深度,可以调节难度。实验中AI通信良好,一定难度下可以实现保证和棋或赢棋。本实验利用HBuilderX, appUploader实现了IOS上APP真机联调与开发者协议下APP的安装。 详细介绍参考:https://biyezuopin.blog.youkuaiyun.com/article/details/123117386?spm=1001.2014.3001.5502

基于python-flask的地图打字游戏

基于python-flask的地图打字游戏

qq_42135426的博客 437

基于python的排课表系统,用python编写排课系统

实现一个具体的课程管理系统。(5) 学生可以查看自己选上的课的成绩,以及各个课程的得分、绩点,并给出其平均绩点,但不允许查看年级其他人的成绩。(2) 学生定制专属课表,可以查看整个学期本人的课程安排,包括课程名称、上课时间、上课地点、任课老师、学分等等。(13) 系主任可以查看整个系的全部学生以及他们的平均绩点,可以对每个班进行排名,或者也可以对整个系进行排名。(15) 系主任可以查看整个学期所开设的所有课程,包括这些课程的全部详细信息。(1) 学生基本信息的查询,学生可以对本人的系统登陆密码进行修改。

yang0728y的博客 1999

高效打卡系统设计:从行为心理学到实践工具

打卡系统作为现代时间管理的重要工具,其核心原理植根于行为心理学中的即时反馈机制和习惯养成理论。通过科学设计的打卡周期和可视化反馈,能有效提升个人自律性和目标达成率。在技术实现上,从纸质记录到数字化工具(如Notion、Excel自动化模板)的演进,为不同场景提供了灵活解决方案。特别在习惯追踪和进度管理领域,结合热力图生成、数据统计等技巧,打卡系统能转化为强大的自我监督工具。本文通过实践案例,详解如何构建兼顾弹性和约束力的个性化打卡方案,帮助读者突破'三天打鱼两天晒网'的常见困境。

weixin_30047059的博客 337

实现一个成语接龙

实现一个成语接龙 成语接龙是中华民族传统的文字游戏。它不仅有着悠久的历史和广泛的社会基础,同时还是体现我国文字、文化、文明的一个缩影,是老少皆宜的民间文化娱乐活动。 规则:规则比较多样,这里先只讨论基础玩法,上词的结尾字接下一词的开头字。 实现一利用现有API 聚合函数:https://www.juhe.cn/ (倒也不是打广告 主要是这个免费API一天一百次 新手用也够了) API -> 免费接口大全 -> 成语接龙 或 直接搜索成语接龙 点击立即申请 跳转后 或手动在 数据中心 ->

qq_42595758的博客 1307

告别‘报错马拉松’:一份保姆级的Ubuntu 20.04编译OpenWrt 15.05环境配置与问题修复清单

本文提供了一份详细的Ubuntu 20.04编译OpenWrt 15.05的环境配置与问题修复指南,帮助开发者告别‘报错马拉松’。从基础环境搭建到典型报错分类与修复方案,再到高阶问题的深度修复,全面覆盖编译过程中可能遇到的各类问题,并提供自动化补丁脚本和Docker环境固化方案,确保编译过程高效顺畅。

weixin_33230433的博客 295

后端开发——Flask框架从入门到入坟(中)

在这篇文章中,荔枝主要基于自己之前学习的时候跟着的一个项目来梳理一下在项目的开发中我们应该怎么去写Flask后端。

荔枝当大佬的博客 2689

普源精电DHO系列示波器选购指南:从学生党到工程师的完整对比

本文深入评测普源精电DHO系列示波器,从DHO800到DHO4000各型号的核心参数、功能特点及适用场景进行全面对比,帮助学生党和工程师根据实际需求选择最佳型号。重点分析带宽、采样率、存储深度等关键指标,并提供实用的选购建议和进阶使用技巧,帮助用户充分发挥示波器性能。

weixin_30485379的博客 167

睿尔曼超轻量仿人机械臂--机械臂接口介绍

本文介绍了睿尔曼超轻量仿人机械臂的控制器接口及末端接口。

realman_Rop的博客 3438

用flask框架搭建小程序后端

在上面的代码中,我们定义了一个POST请求的路由`/api/data`,当微信小程序通过POST请求发送数据时,就会调用`process_data`函数。`request.get_json()`方法可以获取到POST请求中传递过来的JSON数据,我们可以对这个数据进行处理,最后返回一个字典`result`作为响应。在Flask中,可以通过request对象来获取微信小程序传递过来的JSON值。以上代码仅提供了基本的操作,具体还需要根据实际需求进行进一步处理。# 在这里对data进行处理。

weixin_59246157的博客 837

【保姆级教程】基于UNet++&MobileNetv2的语义分割模型从训练到RK3588部署:让边缘AI落地效率提升300%

通过SMP库一键构建encoder_name="mobilenet_v2", # 选择MobileNetv2作为骨干encoder_weights="imagenet", # 加载预训练权重加速收敛in_channels=3, # 输入图像通道数(RGB)classes=29, # Cityscapes数据集类别数activation=None # 输出无激活,便于后续损失计算本教程从“模型设计-训练-转换-边缘部署”全链路拆解了。

m0_71589036的博客 89

通过构建安卓游戏学习 Java(一)

原文:zh.annas-archive.org/md5/94381ED211CDAA9276E19DB483447D97 译者:飞龙 协议:CC BY-NC-SA 4.0 前言 如果你完全不了解 Java、Android 或游戏编程,并且打算出版 Android 游戏以供娱乐或商业用途,但你不知道从哪里开始,那么这本书适合你。这本书也可以作为那些在其他平台上已经有经验的人的复习。 Android 是增长最快的操作系统,Android 设备可以赋予、娱乐和教育全球。Android 使用最流行的编程语言之一

龙哥盟 3831

08 RK3568 MAC TO MAC直连 RTL8367S mdio

本文:采用rk3568 gamc0 通过rgmii直连 交换芯片的mac口 通信方法为mdio。

qq_39451352的博客 3476

SAP Fiori Launchpad 概述

SAP Fiori launchpad 是托管 SAP Fiori 应用程序的 shell,并为应用程序提供导航、个性化、嵌入式支持和应用程序配置等服务。SAP Fiori Launchpad 是移动和桌面设备上 SAP Fiori 应用程序的入口点。启动板显示带有图块的主页,其中可以显示实时状态指示器,例如打开的任务数量。每个图块代表用户可以启动的业务应用程序。这包括 SAP Business Suite 事务应用程序和 SAP Smart Business 分析应用程序。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 932

IT工程师学习方法和发展路线

前言: 从需求,即招聘,面试入手,了解行业所需,再到个人部分,学习大佬们的学习方法,书写自己的简历,提升自我技能,或通过考证锻炼学习的学习方法,或通过技能提高工作效率,简述几个方面的特点,梳理下发展路线,通过利器提高办公效率。 Tips:Markdown语法学习:改字体颜色、该字体底色、画图、各种图、语法大全根据我国发布的《国民经济和社会发展第十四个五年规划和2035年远景目标纲要》 从招聘平台获取自己想要的招聘信息,进而找到应对之道,换言之,做好押题工作。 1、Boss直聘:https://www.zhi

stqer的博客 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Flask Web中的 url_for 函数

最近在学Python Flask框架,并且学会做一些简单的项目,如做一个网站的登录页面等,其中学到了一个网页重定向的函数 url_for(),这里做一个小结,供日后复习。 1.URL反转:根据视图函数名称得到当前所指向的url 2.url_for() 函数最简单的用法是以视图函数名作为参数,返回对应的url,还可以用作加载静态文件,如该条语句就是在模版中加载css静态文件. 3.url_fo

dengfan666的博客 4万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

python实现成语接龙文字游戏

python实现成语接龙文字游戏

enthan809882的博客 135

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

成语接龙学习

uniapp+golang开发的一个学习成语乐园项目,主要目的是帮助广大朋友提升自我成语知识储备。边玩边学。

u014650004的博客 873

opencv3+python3.5成语填字游戏(一)印刷体汉字的分割

首先这是一个成语填字游戏,大概就是一张成语填字游戏图片,通过opencv图像识别后转为矩阵,再通过解算法,解出答案,在显示到图片上。    源代码:https://github.com/mayue801/crossword-puzzle--idiom    本文采用投影分割法对印刷体汉字进行分割。    投影分割是先水平方向投影,在竖直方向投影,或者先竖直方向再水平方向投影。本文

weixin_41553161的博客 3085
上一篇: Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署 #华为云·寻找黑马程序员#
下一篇: 使用jieba分析小说太古神王中,男主更爱谁?去文章中找答案吧!#华为云·寻找黑马程序员#
清风 python
博客等级 码龄9年 64粉丝 75原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值