python三角形菱形
python

【Python】畫三角形、菱形、直角三角形

最近看學弟妹上課在畫三角形不禁開始回憶起當時畫他們的痛苦時光

好險最近終於可以跟他們和睦相處了

以下會實作幾個常見的三角形,希望能解救迷失在三角形中的羔羊們

  • Triangle (三角形)
    • Slash 斜線
      • 中空等腰斜線三角形
      • 等腰斜線三角形(tree)
    • Asterisk 星號
      • 中空等腰三角形
      • 實心等腰三角形
      • 實心倒三角形
      • 實心直角三角形(左下)
      • 實心直角三角形(左上)
      • 實心直角三角形(右上)
      • 實心直角三角形(右下)
  • Diamond (菱形)
    • Asterisk 星號
      • 空心菱形
      • 實心菱形

Triangle (三角形)

Slash 斜線

中空等腰斜線三角形

#中空等腰斜線三角形
def triangle(num):
	count = num
	for n in range(0,num,1):
		if n+1 == num:
			print(' '+ '/'+'_'* (2*(num-1)) +'\\')
		elif n == 0:
			print((' '*(count))+'/\\')
			count -= 1
		else:
			print((' '*(count))+'/'+(' '*(2*(n))+'\\'))
			count -= 1



triangle(5)
#     /\
#    /  \
#   /    \
#  /      \
# /________\

等腰斜線三角形(tree)

def triangle0(num):
	count = num
	for n in range(0,num,1):
		#0,1,2
		if n+1 == num:
			print(' '+ '/'+'_'* (2*(num-1)) +'\\')
		elif n == 0:
			print((' '*(count))+'/\\')
			count -= 1
		else:
			print((' '*(count))+'/'+('^'*(2*(n))+'\\'))
			count -= 1

triangle0(5)
#      /\
#     /^^\
#    /^^^^\
#   /^^^^^^\
#  /________\

Asterisk 星號

中空等腰三角形

#中空等腰三角形
def triangle1(num):
	star = 1
	for i in range(num):
		if i == 0 or i == num-1:
			star_ = format("*"*star,"^"+str(num*2-1))
		else:
			star_ = format("*"+" "*(star-2)+"*","^"+str(num*2-1))
		star += 2

		print(star_)

triangle1(5)
#     *
#    * *
#   *   *
#  *     *
# *********

實心等腰三角形

#實心等腰三角形
def pyramid(n):
    for i in range(n+1):
        print(' '*(n-i)+'*'*(2*i-1))

pyramid(5)
#     *
#    ***
#   *****
#  *******
# *********

實心倒三角形

#實心倒三角形
def inverted_triangle(n):
    for i in range(n,0,-1):
        print(' '*(n-i)+'*'*(2*i-1))

inverted_triangle(5)

# *********
#  *******
#   *****
#    ***
#     *

實心直角三角形(左下)

#實心直角三角形(左下)
def right_triangle(n):
	for i in range(n+1):
		print(i*'*')
right_triangle(5)
# *
# **
# ***
# ****
# *****

實心直角三角形(左上)

#實心直角三角形
def right_triangle2(n):
	for i in range(n):
	    print((n-i)*'*')
right_triangle2(5)

# *****
# ****
# ***
# **
# *

實心直角三角形(右上)

#實心直角三角形(右上)
def right_triangle3(n):
	for x in range(n):
	    for i in range(x):
	         print(' ',end='')
	    for y in range(n-x) :
	        print('*',end='')
	    print('\n',end='')
right_triangle3(5)
# *****
#  ****
#   ***
#    **
#     *

實心直角三角形(右下)

#實心直角三角形(右下)
def right_triangle4(n):
	for x in range(n):
	    for y in range(n-x-1):
	        print(' ',end='')
	    for z in range(x+1):
	        print('*',end='')
	    print('\n',end='')

right_triangle4(5)
#     *
#    **
#   ***
#  ****
# *****

Diamond (菱形)

Asterisk 星號

空心菱形

def diamond(n):
	for i in range(1, n):
	    for x in range(n - i):
	        print(' ',end = '')
	    for y in range(i*2-1):
	        if y ==0 or y==i*2-2:
	            print('*',end = '')
	        else:
	            print(' ',end = '')
	    print()
	for i in range(n):
	   for x in range(i):
	        print(' ',end = '')
	   for y in range((n-i)*2-1):
	        if y ==0 or y==(n-i)*2-2:
	            print('*',end = '')
	        else:
	            print(' ',end = '')
	   print()
diamond(5)
#     *
#    * *
#   *   *
#  *     *
# *       *
#  *     *
#   *   *
#    * *
#     *

實心菱形

#實心菱形
def diamond2(n):
    for i in range(n+1):
        print(' '*(n-i)+'*'*(2*i-1))

    for i in range(n,0,-1):
        print(' '*(n-i)+'*'*(2*i-1))

diamond2(5)

#     *
#    ***
#   *****
#  *******
# *********
# *********
#  *******
#   *****
#    ***
#     *

推薦入門書籍

精通 Python:運用簡單的套件進行現代運算(第二版)

博客來-精通Python:運用簡單的套件進行現代運算(第二版)

之前開始入坑python時就是用這本打底的(有換封面過)

這本書除了前幾張介紹基本的語法之外

後續幾張開始介紹與python相關的延伸性的功能

非常適合程式設計初學者以及剛要開始學習這個語言的讀者

羅列以下幾點關於本書大綱供大家參

  • 學習簡單的資料類型、基本數學運算與文字操作 
  • 以Python的內建資料結構處理資料 
  • 探索Python程式碼結構,包括函式的使用
  • 使用模組與套件編寫大型Python程式
  • 深入討論物件、類別與其他物件導向功能
  • 檢視一般檔案、關聯式資料庫與NoSQL的儲存機制 
  • 使用Python建構web用戶端、伺服器、API與服務 
  • 管理系統工作,例如程式、程序與執行緒
  • 瞭解並行處理與網路程式設計的基礎

流暢的 Python:清晰、簡潔、有效的程式設計

博客來-流暢的Python:清晰、簡潔、有效的程式設計

適合已經有Python程式語言基礎的人

這本書更詳細的介紹有關python的用法

讓我們寫的程式可以更加”Pythonic”

建議可以與英文版同時閱讀

以後在查閱stackoverflow文獻的時候能不因語言而產生隔閡

  • Python 資料模型:瞭解特殊方法是讓物件具備一致行為的關鍵
  • 資料結構:充分使用內建的型態,並瞭解 Unicode 時代中,文字 vs. bytes 之間的關係
  • 函式就是物件:見識 Python 函式是一級物件,並瞭解這個事實如何影響熱門的設計模式
  • 物件導向的習慣用法:學習參考、可變性、介面、運算子多載與多重繼承,並建構類別
  • 控制流程:藉由 concurrent.futures 與 asyncio 套件,來充分活用情境管理器、產生器、協同程序與並行
  • 中繼編程:瞭解特性、屬性描述器、類別修飾器與中繼類別的工作原理

Python 自動化的樂趣:搞定重複瑣碎&單調無聊的工作(第二版)

Python 自動化的樂趣|搞定重複瑣碎& 單調無聊的工作(中文版) (Automate the Boring Stuff with Python:  Practical Programming for Total Beginners) | 天瓏網路書店

如果想使用自動化來增強工作流程效率,大推本書

之前這本書只有英文版

在博客來等了1個月還是沒等到

沒想到在2020/08/28 出了中文版

二話不說馬上看看人家都是怎麼用python來完成例行公事的

除了運用Python寫出程式,在幾分鐘內搞定人工手動處理需要花費數小時的工作。

探索Python豐富的模組程式庫來完成某些特定工作

例如從網站上抓取資料、讀取PDF和Word文件,以及自動化執行滑鼠點按和鍵盤輸入的工作。

 ‧在一個或多個檔案中搜尋文字
  ‧建立、更新、搬移和重新命名檔案和資料夾
  ‧搜尋網頁和下載網路上的圖文內容
  ‧處理PDF檔的分割與合併,加入浮水印和加上密碼等作業
  ‧傳送Email和簡訊
  ‧填寫線上表單

如果對文章內容有任何問題,歡迎在底下留言讓我知道。
如果你喜歡我的文章,可以分享我的文章,讓更多的人看見我的文章。
追蹤我的Instagram,看我分享 #咖啡雞湯 #咖啡廳推薦
如果這篇文章對你有幫助, 可以幫我在下方按 5 個Like
讓我得到一些回饋, 支持我繼續寫出更多好文章!

在〈【Python】畫三角形、菱形、直角三角形〉中有 11 則留言

  1. 請問可以用星號的實心等腰三角形,畫一棵聖誕樹嗎?
    希望版大可以把以上的圖案,做一個聖誕特別版分享XD

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *