python輸出菱形字符圖案 附實戰代碼

下面是一個Python程序,可以用來輸出菱形字符圖案。這個程序使用了兩個嵌套的for循環,以及字符串連接操作。

# 獲取用戶輸入
n = int(input("請輸入菱形的邊長:"))# 生成上半部分菱形
for i in range(1, n + 1, 2):print(" " * ((n - i) // 2) + "*" * i)# 生成下半部分菱形
for i in range(n - 2, 0, -2):print(" " * ((n - i) // 2) + "*" * i)

這個程序首先獲取用戶輸入的菱形的邊長,然后使用兩個嵌套的for循環生成菱形。外層循環控制行數,內層循環控制每行的星號數量。在生成每行時,先輸出一定數量的空格,然后輸出一定數量的星號。最后將每行的結果輸出到屏幕上,就得到了一個菱形字符圖案。

以下是完整的Python程序,可以輸出任意邊長的菱形字符圖案:

# 獲取用戶輸入
n = int(input("請輸入菱形的邊長:"))# 生成上半部分菱形
for i in range(1, n + 1, 2):print(" " * ((n - i) // 2) + "*" * i)# 生成下半部分菱形
for i in range(n - 2, 0, -2):print(" " * ((n - i) // 2) + "*" * i)if n % 2 == 0:# 如果菱形邊長為偶數,需要單獨處理最后一行print(" " * (n // 2) + "*")

這個程序在生成下半部分菱形時,如果菱形的邊長為偶數,需要單獨處理最后一行,因為此時中間需要對齊。因此,在輸出最后一行時,需要使用 // 運算符來計算空格的數量,以保證對齊。

以下是更完整的Python程序,可以輸出任意邊長的菱形字符圖案,同時考慮了邊長為偶數的情況以及輸出指定邊長的菱形:

# 獲取用戶輸入的菱形邊長
n = int(input("請輸入菱形的邊長:"))# 生成指定邊長的菱形
if n % 2 == 0:# 如果菱形邊長為偶數,需要單獨處理最后一行for i in range(1, n + 1, 2):print(" " * ((n - i) // 2) + "*" * i)for i in range(n - 2, 0, -2):print(" " * ((n - i) // 2) + "*" * i)print(" " * (n // 2) + "*")
else:# 如果菱形邊長為奇數,正常處理每一行for i in range(1, n + 1, 2):print(" " * ((n - i) // 2) + "*" * i)for i in range(n - 2, 0, -2):print(" " * ((n - i) // 2) + "*" * i)

這個程序通過判斷菱形的邊長是否為偶數,分別處理了兩種情況。如果邊長為偶數,則需要單獨處理最后一行,以保證對齊;如果邊長為奇數,則正常處理每一行。同時,這個程序還考慮了輸出指定邊長的菱形的情況,可以通過在命令行中輸入指定的邊長來輸出相應的菱形字符圖案。

以下是更完整的Python程序,可以輸出任意邊長的菱形字符圖案,同時考慮了邊長為偶數和輸出指定邊長的情況,并對輸入進行了驗證:

# 獲取用戶輸入的菱形邊長并進行驗證
while True:try:n = int(input("請輸入菱形的邊長(輸入0退出程序):"))if n == 0:breakelif n % 2 == 0:# 如果菱形邊長為偶數,需要單獨處理最后一行for i in range(1, n + 1, 2):print(" " * ((n - i) // 2) + "*" * i)for i in range(n - 2, 0, -2):print(" " * ((n - i) // 2) + "*" * i)print(" " * (n // 2) + "*")else:# 如果菱形邊長為奇數,正常處理每一行for i in range(1, n + 1, 2):print(" " * ((n - i) // 2) + "*" * i)for i in range(n - 2, 0, -2):print(" " * ((n - i) // 2) + "*" * i)except ValueError:print("輸入無效,請重新輸入一個整數!")

這個程序通過一個無限循環來獲取用戶輸入的菱形邊長,并對輸入進行了驗證。如果輸入無效(例如不是整數),程序會輸出錯誤提示,并要求用戶重新輸入。如果用戶輸入的邊長為0,程序將退出循環。如果邊長為偶數,則程序會單獨處理最后一行;如果邊長為奇數,則程序會正常處理每一行。

以下是更完整的Python程序,可以輸出任意邊長的菱形字符圖案,同時考慮了邊長為偶數和輸出指定邊長的情況,并對輸入進行了驗證,還增加了輸出語句的格式化:

# 獲取用戶輸入的菱形邊長并進行驗證
while True:try:n = int(input("請輸入菱形的邊長(輸入0退出程序):"))if n == 0:breakelif n % 2 == 0:# 如果菱形邊長為偶數,需要單獨處理最后一行for i in range(1, n + 1, 2):print("{:^{width}}".format(i * "*", width=n))for i in range(n - 2, 0, -2):print("{:^{width}}".format(i * "*", width=n))print("{:^{width}}".format(n // 2 * "*", width=n))else:# 如果菱形邊長為奇數,正常處理每一行for i in range(1, n + 1, 2):print("{:^{width}}".format(i * "*", width=n))for i in range(n - 2, 0, -2):print("{:^{width}}".format(i * "*", width=n))except ValueError:print("輸入無效,請重新輸入一個整數!")

這個程序使用了Python的字符串格式化語法來格式化輸出語句。在每一行輸出時,使用了{:^{width}}這個格式化字符串,其中{}表示占位符,^表示居中對齊,{width}表示指定的寬度。通過這個格式化語法,可以使輸出的字符圖案更加整齊美觀。

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

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

相關文章

SDK,但未在應用內的隱私政策/在AppGallery Connect上提交的隱私政策內容中進行明示,不符合華為應用市場審核標準。

(暫時用不到的也建議收藏一下,因為文章持續更新中) 最新更改時間:20023-12-10 第三方SDK合集列表 為了確保用戶個人信息的安全,我們對使用到的第三方提供的軟件開發包(SDK)進行了嚴格的安全檢…

期末速成數據庫極簡版【存儲過程】(5)

目錄 【7】系統存儲過程 【8】用戶存儲過程——帶輸出參數的存儲過程 創建存儲過程 存儲過程調用 【9】用戶存儲過程——不帶輸出參數的存儲過程 【7】系統存儲過程 系統存儲我們就不做過程講解用戶存儲過程會考察一道大題,所以我們把重點放在用戶存儲過程。…

vscode 編寫爬蟲爬取王者榮耀壁紙

網上關于爬蟲大部分教程和編輯器用的都不是vscode ,此教程用到了vscode、Python、bs4、requests。 vscode配置Python安裝環境可以看看這個大佬的教程 03-vscode安裝和配置_嗶哩嗶哩_bilibili vscode配置爬蟲環境可以參考這個大佬的教程【用Vscode實現簡單的python…

U4_1 語法分析之自頂向下分析

文章目錄 一、定義1、任務2、對比3、方法4、自頂向下面臨問題 二、自頂向下分析1、概念2、特點3、二義性問題4、左遞歸問題1)概念2)消除3)間接左遞歸 5、回溯問題1)概念2)消除3)解決方法 6、總結 三、遞歸子…

Java 線程池中 submit() 和 execute() 方法有什么區別?

Java 線程池中 submit() 和 execute() 方法有什么區別? 在 Java 中,ExecutorService 接口是用于管理和執行線程的框架,它定義了兩個用于提交任務的方法:submit() 和 execute()。這兩種方法有一些區別: 返回值&#xf…

【Proteus仿真】【51單片機】光照強度檢測系統

文章目錄 一、功能簡介二、軟件設計三、實驗現象聯系作者 一、功能簡介 本項目使用Proteus8仿真51單片機控制器,使共陰數碼管,PCF8591 ADC模塊、光敏傳感器等。 主要功能: 系統運行后,數碼管顯示光傳感器采集光照強度值&#xff…

Gitzip插件【Github免翻下載】

今天給大家推薦一個github下載的插件,平常大家下載應該無外乎就是以下兩種: Download zip利用git clone 但是這兩種各有各的弊端,前者一般需要科學上網才可以,后者下載不穩定經常中途斷掉。 今天給推薦一個款瀏覽器插件-Gitzip.大…

基于SSM的java衣服商城

基于SSM的java衣服商城 一、系統介紹二、功能展示四、其他系統實現五、獲取源碼 一、系統介紹 項目類型:Java EE項目 項目名稱:基于SSM的美衣商城 項目架構:B/S架構 開發語言:Java語言 前端技術:Layui等 后端技術…

Flask和Vue框架實現WebSocket消息通信

1 安裝環境 1.1 安裝Flask環境 主要的安裝包 Flask、Flask-SocketIO,注意Python版本要求3.6 # Flask-SocketIO參考地址 https://flask-socketio.readthedocs.io/en/latest/ https://github.com/miguelgrinberg/flask-socketio更新基礎環境 # 更新pip python -m …

Unity發布WebGL測試界面處理方式參考

如果使用Unity發布WebGL經常會和網頁進行交互,為了能夠做到界面統一,往往所有UI都是在頁面上開發的,Unity本身不做任何UI或者只做三維UI,但是在開發過程中,為了測試接口,難免要在Unity中做一些UI來方便測試…

以太坊虛擬機EVM介紹,智能合約詳解

以太坊為例:什么是智能合約?智能合約怎么部署、調用、執行?智能合約的原理?智能合約存在哪兒?如何區分調用的是智能合約?世界狀態數據庫、EVM、智能合約它們之間的關系? 什么是智能合約 指的是…

【Hive】啟動beeline連接hive報錯解決

1、解決報錯2、在datagrip上連接hive 1、解決報錯 剛開始一直報錯&#xff1a;啟動不起來 hive-site.xml需要配置hiveserver2相關的 在hive-site.xml文件中添加如下配置信息 <!-- 指定hiveserver2連接的host --> <property><name>hive.server2.thrift.bin…

機器人與3D視覺 Robotics Toolbox Python 二 空間位姿描述

空間位姿描述 二維空間位姿描述 二維空間位姿表示方法 from spatialmath.base import * from spatialmath import * T1 SE2(x3,y3,theta30,unit"deg") trplot2(T1.A,frame"T1",dims[0, 5, 0, 5]) T2transl2(3, 4) trplot2(T2,frame"T2",dims…

如何理解 RPC 遠程服務調用?

本文主要講解 RPC 遠程服務調用相關的知識。 RPC 遠程服務調用是分布式服務架構的基礎&#xff0c;無論微服務設計上層如何發展&#xff0c;討論服務治理都繞不開遠程服務調用&#xff0c;那么如何理解 RPC、有哪些常見的 RPC 框架、實現一款 RPC 框架需要哪些技術呢&#xff…

解決electron修改主進程后需要重啟才生效

nodemon 是一種工具&#xff0c;可在檢測到目錄中的文件更改時通過自動重新啟動節點應用程序來幫助開發基于 node.js 的應用程序 nodemon 特性 自動重新啟動應用程序。檢測要監視的默認文件擴展名。默認支持 node&#xff0c;但易于運行任何可執行文件&#xff0c;如 python、…

自動駕駛學習筆記(十七)——視覺感知

#Apollo開發者# 學習課程的傳送門如下&#xff0c;當您也準備學習自動駕駛時&#xff0c;可以和我一同前往&#xff1a; 《自動駕駛新人之旅》免費課程—> 傳送門 《Apollo 社區開發者圓桌會》免費報名—>傳送門 文章目錄 前言 分類 目標檢測 語義分割 實例分割 …

SQL語句的執行順序怎么理解?

SQL語句的執行順序怎么理解&#xff1f; 我們常常會被SQL其書寫順序和執行順序之間的差異所迷惑。理解這兩者的區別&#xff0c;對于編寫高效、可靠的SQL代碼至關重要。今天&#xff0c;讓我們用一些生動的例子和場景來深入探討SQL的執行順序。 一、書寫順序 VS 執行順序 SQ…

【unity實戰】一個通用的FPS槍支不同武器射擊控制腳本

文章目錄 前言模型素材文章用到的粒子火光特效射擊效果換彈瞄準開槍抖動效果設置顯示文本最終代碼不同武器射擊效果1. 手槍2. 機槍3. 狙擊槍4. 霰彈槍5. 加特林 其他感謝完結 前言 實現FPS槍支不同武器效果&#xff0c;比如手槍&#xff0c;噴子&#xff0c;狙擊槍&#xff0c…

《使用ThinkPHP6開發項目》 - 創建應用

《使用ThinkPHP6開發項目》 - 安裝ThinkPHP框架-CSDN博客 《使用ThinkPHP6開發項目》 - 設置項目環境變量-CSDN博客 《使用ThinkPHP6開發項目》 - 項目使用多應用開發-CSDN博客 根據前面的步驟&#xff0c;我們現在就可以開發我們的項目開發了&#xff0c;根據項目開發的需要…

【數據挖掘】國科大蘇桂平老師數據庫新技術課程作業 —— 第四次作業

云數據庫研究 云計算與云數據庫背景 云計算&#xff08;cloud computing&#xff09;是 IT 技術發展的最新趨勢&#xff0c;正受到業界和學術界的廣泛關注。云計算是在分布式處理、并行處理和網格計算等技術的基礎上發展起來的&#xff0c;是一種新興的共享基礎架構的方法。它…