打印菱形-第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。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/166335.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166335.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166335.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

周轉箱與工具柜的智能化應用

在當今制造業激烈競爭的市場中,6S管理方法作為提高企業競爭力的有力工具,與精益生產中的周轉箱和工具柜相結合,將為企業帶來更大的優勢。通過實施6S管理方法,企業不僅能夠提高生產效率、降低成本,還能夠改善產品質量、…

GDPU 數據結構 天碼行空11

文章目錄 數據結構實驗十一 圖的創建與存儲一、實驗目的二、實驗內容三、【實驗源代碼】🍻 CPP版🍻 c 語言版🍻 java版 四、【實驗結果】五、【實驗總結】 數據結構實驗十一 圖的創建與存儲 一、實驗目的 1、 理解圖的存儲結構與基本操作&a…

nf_conntrack內核模塊常見問題

nf_conntrack內核模塊常見問題 問題描述排查步驟前置條件:啟用nf_conntrack內核模塊檢查nf_conntrack配置 解決辦法1:半數減少nf_conntrack buckets的值解決辦法2:加倍調大m.min_free_kbytes值解決辦法3:Linux社區權威答復-忽略告警 問題描述 內核報錯 falling bac…

什么是 npm —— 寫給初學者的編程教程

原文鏈接: 什么是 npm —— 寫給初學者的編程教程 自 2009 年以來,Node.js 一直席卷全球。成千上萬個系統基于 Node.js 構建,促使開發者在社區宣稱“JavaScript 正在吞噬軟件”。 Node 成功的主要因素之一是它廣受歡迎的軟件包管理器——np…

前k個高頻單詞(C++實現)

前k個高頻單詞 題目思路代碼代碼講解 題目 思路 通過統計字符串的出現次數,并根據出現次數和字典序對字符串進行排序,找出出現頻率最高的前k個字符串。使用一個自定義的仿函數作為排序的比較函數,通過map容器進行統計,然后將結果…

Linux:strace 簡介

文章目錄 1. 前言2. 什么是 strace ?3. 使用 strace3.1 追蹤指定進程3.1.1 通過程序名追蹤進程3.1.2 通過 進程 ID (PID) 追蹤程序3.1.3 追蹤 子進程 或 線程 3.2 系統調用情況統計3.3 追蹤過濾3.3.1 追蹤指定的系統調用集合3.3.2 追蹤對指定文件句柄集合操作的系統調用3.3.3 …

前端已死?看看我的秋招上岸歷程

背景 求職方向:web前端 技術棧:vue2、springboot(學校開過課,簡單的學習過) 實習經歷:兩段,但都是實訓類的,說白了就是類似培訓,每次面試官問起時我也會坦誠交代&…

關于鴻蒙網絡請求的問題

https://developer.huawei.com/consumer/cn/forum/topic/0204136145853212268?fid0102683795438680754 鴻蒙OS 代碼 import http from ohos.net.http;export const httpUtils (url: string, data: any) > {return new Promise((resolve, reject) > {let httpRequest …

創意設計與個性化定制:酒精壁爐的獨特之處

在當今家居裝飾的潮流中,人們越來越注重個性化和創意,而酒精壁爐正是在這一趨勢中嶄露頭角。它不僅成為家居的溫馨之選,更因其設計的靈活性而成為創意焦點,吸引了越來越多注重家居設計的人群。 酒精壁爐的設計靈活性為家居注入了新…

vue的package.json詳細說明

前言 package.json 文件是一個非常重要的文件,它用于存儲關于項目的元信息以及依賴項。在 Vue.js 項目中,package.json 文件描述了項目的名稱、版本、描述、作者、依賴項、腳本命令等信息。 說明 package.json 文件常見的 詳細說明: 1.名稱 (name): 項目的名稱。遵循反向…

工作流引擎架構設計

一個應用MIS的系統的架構離不開工作流引擎,具有流程引擎思維的架構人員設計系統的時候就有流程的思維,他區別于過程思維,過程思維開發出來的系統,用戶面對的是菜單、模塊。而流程思維設計出來的系統就是發起、待辦、在途、查詢、近…

SELinux refpolicy詳解(2)

接前一篇文章:SELinux refpolicy詳解(1) 本文內容引自: Documentation SELinuxProject/refpolicy Wiki GitHub 4. 入門指南 文檔是參考策略的主要目標之一。入門指南(https://github.com/SELinuxProject/refpolicy/wiki/GettingStarted)提供了有關編寫參考策略模塊的…

關于vue3項目中 vite.config.js項目配置 多個請求地址代理配置

關于VUE3 vite.config.js文件配置相關 提示:本文記錄了我們項目中使用到了多個不同的接口請求前綴地址配置代理,如果有更好的優化方案歡迎大佬指點呀: 以下是我最近項目中的vite.config.js文件配置,由于剛開始vue3不久&#xff…

JS 類型轉換機制

這篇寫得不錯: 百度安全驗證 包括顯示轉換(就是調用函數)、隱式轉換(運算符 - 時自動轉換成數字/字符串) 注意到: abc-1 //NaN 非法字符轉換為數字 結果是NaN

LeetCode 1410. HTML 實體解析器:字符串匹配

【LetMeFly】1410.HTML 實體解析器:字符串匹配 力扣題目鏈接:https://leetcode.cn/problems/html-entity-parser/ 「HTML 實體解析器」 是一種特殊的解析器,它將 HTML 代碼作為輸入,并用字符本身替換掉所有這些特殊的字符實體。…

【點云surface】基于多項式重建的平滑和法線估計

1 介紹 基于多項式重建的平滑和法線估計(Smoothing and normal estimation based on polynomial reconstruction)是一種常用的點云處理方法,用于平滑點云數據并估計每個點的法線信息。 該方法基于Moving Least Squares(MLS&…

docker安裝nacos,實現和mysql容器的通信

1.下載nacos鏡像 docker pull nacos/nacos-server2. 啟動nacos 啟動命令如下: docker run -d -p 8848:8848 --name nacos \ -e JVM_XMS256m \ -e JVM_XMX256m \ -e MODEstandalone \ -e SPRING_DATASOURCE_PLATFORMmysql \ -e MYSQL_SERVICE_HOST192.168.131.223…

連接的原理(待修改)

搞數據庫?個避不開的概念就是Join,翻譯成中?就是連接。 相信很多?伙伴在初學連接的時候有些?臉懵逼,理解了連接的語義之后?可能不明?各個表中的記 錄到底是怎么連起來的,以?于在使?的時候常常陷?下邊兩種誤區: 誤區?&…

linux磁盤清理

目錄 排查過程1、查看磁盤占用情況2. 按照占用大小進行倒排-當前目錄及其子目錄3.當前目錄磁盤占用情況 清理命令 排查過程 1、查看磁盤占用情況 df -hdf -h 命令用于顯示磁盤空間的使用情況,以人類可讀的方式呈現,其中:df 是 “disk free”…

“AI就緒”新計劃,亞馬遜云科技到2025年向200萬人提供免費AI技能培訓

AI就緒(AI Ready)計劃 到2025年為全球200萬人提供 免費人工智能(AI)技能培訓和教育資源 亞馬遜云科技宣布啟動“AI就緒(AI Ready)”計劃,旨在到2025年為全球200萬人提供免費人工智能&#xff08…