当前位置: 首页 > news >正文

打印菱形-第11届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第9讲。

打印菱形,本题是2019年~2020年举办的第11届蓝桥杯青少组Python编程选拔赛真题(具体日期不详),题目要求根据输入的字符和数字,打印一个菱形图形。

先来看看题目的要求吧。

一.题目说明

编程实现:

输入一个半角英文字符和一个3 ~ 19之间的奇数 , 输出由英文字符构成的菱形图形,输入的数值为菱形中间最长一行中英文符号的个数。

输入描述:

第一行,构成菱形的半角英文字符 ;

第二行,菱形中最长一行英文符号的个数。

输出描述:

由英文符号构成的菱形。

样例输入:

*

11

样例输出:

评分标准:

  • 10分:能用输入的英文字符输出菱形, 不论输出的字符数量和形状是否正确 ;

  • 30分:至少对一个随机的评判用例 ,能输出高度符合要求的形状,不要求形状完全正确;

  • 50分:完全符合题意,即对所有评判用例均 能给出正确输出。

二.思路分析

这是一道打印图案的题目,也是学习Python基础语法时常见的一类题目,考查的知识点包括循环和字符串操作。

本题的难点是如何找到菱形图形的规律,具体来说,就是给定一个行数i,就可以输出第i行的空格和英文字符。

为方便分析和理解,超平老师将题目给出的样例数据,绘制一个表格如下:

图片

你找到这其中的规律了吗?

输入的数字是11,一共有11行字符,可以分成如下3个部分:

  • 前5行,

  • 中间行

  • 后5行

前5行,每一行的空格数量从5开始,依次递减1,分别是5、4、3、2、1;每一行的*则从1开始,依次递增2,分别是1、3、5、7、9。

中间行,即第6行,没有空格,一共有11个*。

后5行和前5行刚好相反,每一行的空格数量从1开始,依次递增1,分别是1、2、3、4、5;每一行的*则从9开始,依次递减2,分别是9、7、5、3、1。

如此一来,问题就变简单了,针对行数为11的情况,只要处理好前5行就可以。推而广之,如果是n行,则只需要处理好前(n//2)行就ok了。

在Python中,for...in循环默认是从0开始的,

for i in range(n//2)

所以,i = 0表示第一行,i = 1表示第二行,根据前面的分析,可以得出如下对应关系:

第i行空格数:n//2 - i第i行字符数:i * 2 + 1

对于中间行,只需要输出n个字符即可。

而后n//2行,只需要将前n//2行倒过来循环就可以,每一行的空格数和字符数还是遵循上面的关系。

思路有了,接下来,我们就进入具体的编程实现环节。

三.编程实现

根据上面的思路分析,我们编写代码如下:

图片

代码不难理解,简单说明3点:

1). 在取中间行的时候,需要使用整除,Python提供了整除运算符//,如果不记得的话,也可以先使用除法/,然后再取整,如下:

mid = int(n / 2)

2). 在Python中,*运算符用途广泛,可以用于重复指定的字符和字符串,从而避免了使用循环结构;

3). Python中的range()函数,具有虎头蛇尾的特性(包含第一个,不包含最后一个),其完整的用法如下:

range(start, stop[, step])start: 计数从start开始。默认是从0开始;stop: 计数到stop结束,但不包括stop;step:步长,默认为1。

所以,在倒序循环的时候,需要将步数设置为负数,同时要注意start和stop的值,确保临界值正确无误。

当输入*和11,效果如下:

当输入#和9时,效果如下:

图片

当输入$和13时,效果如下:

至此,整个程序就全部完成了,你也可以输入不同的符号和数字打印各种菱形效果。

四.思考与总结

本题的分数为50分,代码在10行左右,涉及到的知识点包括:

  • 输入处理,主要是类型转换

  • 循环语句,主要是for...in循环;

  • range()函数的特点及灵活运用;

  • 字符串运算,包括*运算符和连接运算,;

题目难度一般,考查的都是基础知识点,难点在于如何找到菱形图案的规律并进行简化。

对于基础知识点,千万不可忽略,尤其是一些好用的编程技巧。比如本题中的整除运算符//、字符串重复运算符*、字符串连接运算符+以及range()函数的细节,灵活运用这些小技巧,可以极大地提升编程效率。

寻找菱形图案的规律,对大部分同学来说,难度不大,关键在于如何将复杂的问题进行拆分,变成简单问题。

你还有什么好的想法和创意吗,也非常欢迎和超平老师分享探讨。

如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香😄

需要源码的,可以移步至“超平的编程课”gzh。

相关文章:

打印菱形-第11届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第9讲。 打印菱形&#xff…...

『亚马逊云科技产品测评』活动征文|搭建Squoosh图片在线压缩工具

搭建Squoosh图片在线压缩工具 前言一、Squoosh是什么?二、准备一台Lightsail实例1.进入控制台2.创建实例3.开放端口4.部署Squoosh5.预览 三、搭建反向代理1. 安装宝塔2. 配置反向代理3. 预览代理效果 提示:授权声明:本篇文章授权活动官方亚马…...

基于亚马逊云科技大语言模型等服务打造企业知识库

背景 大语言模型是自然语言处理领域的一项重要技术,能够通过学习大量的文本数据,生成具有语法和意义的自然语言文本。目前大语言模型已经成为了自然语言处理领域的一个热门话题,引起了广泛的关注和研究。 知识库需求在各行各业中普遍存在&a…...

FFmpeg 使用

添加关键帧 被压缩过的视频丢失关键帧导致seekTo无效,需要给视频添加关键帧 ffmpeg -i 2.mp4 -c:v libx264 -x264opts keyint5 -y keyint10.mp4修改分辨率 -i /sdcard/bankinfo/-484870439.mp4 -vf scale1920:1080 -threads 5 -preset ultrafast -y /sdcard/ban…...

NLP的使用

参考: Apache openNLP 简介 - 链滴 (ld246.com) opennlp 模型下载地址:Index of /apache/opennlp/models/ud-models-1.0/ (tencent.com) OpenNLP是一个流行的开源自然语言处理工具包,它提供了一系列的NLP模型和算法。然而,Open…...

Navicat DML 操作

在表格种插入 列信息 -- 修改数据 update 表名 set 列名 值1, 列名值2,[where 条件]; -- 注意:如果update语句没有加where 表里对应行的全部信息都会被改; -- 删除数据 delecte from 表名 [where 条件]; 未删除前: 执行删除后为: DQL - 条…...

Springboot-热部署-IDEA2023

方式一&#xff1a;jrebel 方式二&#xff1a; 1、导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <…...

人工智能和AR/VR:AI在AR和VR中扮演什么角色?行业应用有哪些?

增强现实技术和虚拟现实技术&#xff08;AR/VR&#xff09;发展前景广阔&#xff0c;备受各大企业关注。事实上&#xff0c;近四分之三的行业领导者表示&#xff0c;他们预计这些沉浸式技术将于未来五年内成为主流。高盛公司报告称&#xff0c;到2025年&#xff0c;AR/VR行业值…...

Linux进程通信之共享内存

文章目录 共享内存原理申请共享内存函数&#xff08;shmget&#xff09;参数key生成key值示例申请共享内存 挂接到进程地址空间函数(shmat)去关联函数(shmdt)控制共享内存(shmctl)IPC_STATIPC_RMID ipcs其余进程获取该共享内存进程间通信 进程间通信&#xff1a;IPC&#xff0c…...

接口自动化测试:pytest基础讲解

为什么要做接⼝测试&#xff1f; 只靠前端测试很难确保很⾼的覆盖率。接⼝测试&#xff0c;可以模拟出各种类型的⼊参&#xff0c;包括⼀些在前端模拟不出来的⼊参&#xff0c;还能根据接⼝⽂档的定义&#xff0c;设计出相对完善的⼊参值&#xff0c;在接⼝层保证质量&#xf…...

基于JavaWeb+SpringBoot+Vue医院管理系统小程序的设计和实现

基于JavaWebSpringBootVue医院管理系统小程序的设计和实现 源码获取入口Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏[Java 源码获取 源码获取入口 Lun文目录 目录 1系统概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系统设计思想 1 2相关技术 2 2.1微信小程序 2 2.2 …...

收藏这几个开源库,写css你会笑出声

你是否遇到过写css没灵感&#xff0c;写不出酷炫的效果&#xff0c;那这篇文章你一定要看完。知道这几个开源库&#xff0c;它能让你写出炸天的效果并且有效地增加你的摸鱼时长。 1.CSS Inspiration 网址&#xff1a;https://chokcoco.github.io/CSS-Inspiration/#/ CSS Insp…...

给localStorage缓存添加全局监听器

需求&#xff1a;在做单应用页面的时候&#xff0c;每个组件都是独立的&#xff0c;有时候我们a组件里面的东西修改了&#xff0c;需要b组件进行在a组件修改的同时进行响应&#xff0c;就需要监听器&#xff0c;这种时候我们需要定义监听器并且在b组件里面监听&#xff0c;然后…...

blk_mq_init_queue函数学习记录

blk-mq编程&#xff0c;主要要调用两个函数进行初始化工作&#xff0c;blk_mq_init_queue这是第二个。该函数先是申请了struct request_queue结构&#xff0c;这个请求队列后面用于赋值给磁盘那个结构体的相应成员。 struct request_queue *blk_mq_init_queue(struct blk_mq_t…...

高防服务器的工作原理

在当今互联网时代&#xff0c;网络安全问题日益突出&#xff0c;各种网络攻击层出不穷。为了保护企业的网络安全&#xff0c;高防服务器应运而生。那么&#xff0c;你是否了解高防服务器的工作原理呢&#xff1f;下面就让我们一起来探索一下。 高防服务器是一种能够有效抵御各种…...

2023.11.19使用flask制作一个文件夹生成器

2023.11.19使用flask制作一个文件夹生成器 实现功能&#xff1a; &#xff08;1&#xff09;在指定路径上建立文件夹 &#xff08;2&#xff09;返回文件夹的路径和建立成功与否的提示 main.py import os from flask import Flask, request, jsonify, render_templateapp F…...

【04】ES6:字符串的扩展

一、模板字符串 模板字符串是可以插入表达式的字符串字面量。模板字符串和传统字符串比较&#xff0c;存在以下特点&#xff1a; 1、使用反单引号 传统字符串字面量使用单引号 ‘’ 或者双引号 “”&#xff0c;模板字符串使用反单引号&#xff08;backquote&#xff09; …...

Docker可视化管理界面工具Portainer安装

Portainer是Docker容器管理界面工具&#xff0c;可以直观的管理Docker。 部署也很简单&#xff1a; 官方安装文档地址 1、创建数据卷 docker volume create portainer_data2、下载允许容器 docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restartalways -v /v…...

css实现水波纹效果

css实现水波纹效果 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><styl…...

一种全新且灵活的 Prompt 对齐优化技术

并非所有人都熟知如何与 LLM 进行高效交流。 一种方案是&#xff0c;人向模型对齐。 于是有了 「Prompt工程师」这一岗位&#xff0c;专门撰写适配 LLM 的 Prompt&#xff0c;从而让模型能够更好地生成内容。 而另一种更为有效的方案则是&#xff0c;让模型向人对齐。 这也是…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...