Python教程|用代碼打開聖誕節的奇妙姿勢!

2021-01-10 立樂教育青少兒編程

叮叮噹,叮叮噹!

聖誕節來臨啦!

這次,我們來看一看有什麼「獨特」的技巧在編程的世界中歡度一個不一樣的聖誕節?

首先來點兒簡單的!

ASCII Art - Christmas Tree!

ASCII ART?

這是啥?

小樂老師先來科普一波。

早年的電腦發展遠不如現在發達,隨意播放高清視頻,發送動態表情包在當時來說是非常困難的。

於是就有了這個:

使用電腦字符(主要是ASCII)來表達圖形或者圖像。

當然,還有一批「著名」的表情,讓我們來看看你能不能辨認出這些表情?

;-)

@_@

(=^_^=)

:-(

隨著科技的發展,ASCII ART逐漸變成了一類特殊的表現形式,比如:

那今天我們也來使用Python繪製一顆簡單的聖誕樹!

當然,是ASCII ART版本的!

代碼如下哦!

h = 10for i in range(h): print((" " * (h - i)) + ('*' * (2 * i + 1)))print((' ' * h) + '|')

調整h代表的數值,可以畫出不同高度的聖誕樹!

接下來,我們用之前學過的turtle庫來試試看吧!

turtle - 聖誕卡片!

聖誕節除了有聖誕樹之外,也會有互相贈送的聖誕小卡片!

如何使用Python來繪製一張聖誕小卡片呢?

一起來動手做一張吧!

首先,我們新建一個python文件。

導入turtle庫,進行一些簡單的準備工作。

import turtleimport random as rturtle.colormode(255)turtle.setup(1200,800)turtle.bgcolor('#69D9FF')turtle.exitonclick()

使用import語句導入了兩個重要的庫 - turtle和random。

如果你還不知道這些庫該怎麼使用,文末有關於turtle庫的過往教學哦!

turtle.setup(1200,800)

這行代碼的作用是將turtle庫提供的窗口大小設置為1200 * 800,你也可以設置成其他的大小。

turtle.exitonclick()

設置turtle窗口為點擊之後關閉,如果你是在vs code等編輯器中編寫的代碼,這行代碼非常有用!

turtle.colormode(255)

允許你使用RGB顏色來更進一步的指定想要的顏色。

你可以使用(255,255,255)來依次表示紅色、綠色和藍色的數值。

也可以使用"#69D9FF"這樣的十六進位顏色碼來表示一種顏色。

turtle.bgcolor('#69D9FF')

bgcolor指的是 - background color,也就是背景顏色啦!

使用這個指令,就可以把背景設置成我們想要的顏色。

聖誕節還有什么元素? 雪花對嗎?

使用random庫來隨機指定位置,可以很輕鬆的畫出下雪的背景。

import turtleimport random as rturtle.colormode(255)turtle.setup(1200,800)turtle.bgcolor('#69D9FF')t = turtle.Pen()t.speed(0)t.color('white')for i in range(120): t.penup() t.goto(r.randint(-600,600),r.randint(-400,400)) t.pendown() t.dot(r.randint(8,15))turtle.exitonclick()

t.dot()

用來繪製一個圓點

t.goto(r.randint(-600,600),r.randint(-400,400))

goto()指令可以讓畫筆t移動到指定的X和Y坐標的位置。

這裡X坐標使用了r.randint(-600,600)隨機的在-600 - 600的範圍內選一個數字,Y坐標同理。

重頭戲來啦!

我們畫一頂聖誕帽作為聖誕卡片的圖案,那麼該如何編寫代碼呢?

import turtleimport random as rturtle.colormode(255)turtle.setup(1200,800)turtle.bgcolor('#69D9FF')t = turtle.Pen() # 創建一支名叫t的畫筆t.speed(0) # 設置畫筆的速度t.color('white') # 設置畫筆的顏色for i in range(120): t.penup() t.goto(r.randint(-600,600),r.randint(-400,400)) t.pendown() t.dot(r.randint(8,15))t.penup()t.setpos(-150,0)t.pendown()t.color((230,54,36))t.begin_fill()for i in range(3): t.forward(300) t.left(120)t.end_fill()t.setheading(0)t.setpos(0,260)t.color('white')t.dot(60)t.setpos(-150,0)for i in range(11): t.dot(60) t.forward(30)turtle.exitonclick()

先來看看效果吧!

可以發現,聖誕帽主要是由三個部分組成:

由紅色三角形組成的帽身

頂部的白色圓形絨球

下方一連串白色的圓形組成的帽沿

通過動圖,大家可能看得更明白一些~

代碼中用到了兩個新的指令:setheading()和 setpos()

setheading()

設置畫筆t的方向,0的時候是向右

setpos()

設置畫筆的坐標位置

除此之外,聖誕卡片上通常會寫上祝福語,也會寫下自己的名字。

在turtle庫中,我們可以使用turtle.write()來完成!

import turtleimport random as rturtle.colormode(255)turtle.setup(1200,800)turtle.bgcolor('#69D9FF')t = turtle.Pen() # 創建一支名叫t的畫筆t.speed(0) # 設置畫筆的速度t.color('white') # 設置畫筆的顏色for i in range(120): t.penup() t.goto(r.randint(-600,600),r.randint(-400,400)) t.pendown() t.dot(r.randint(8,15))t.penup()t.setpos(-150,0)t.pendown()t.color((230,54,36))t.begin_fill()for i in range(3): t.forward(300) t.left(120)t.end_fill()t.setheading(0)t.setpos(0,260)t.color('white')t.dot(60)t.setpos(-150,0)for i in range(11): t.dot(60) t.forward(30)# 以下為新增代碼t.penup()t.setpos(-145,-120)t.pendown()t.color("#F62626")t.write('From 小樂老師',font=('Yuanti SC Regular',45,"bold"))t.penup()t.setpos(-215,-180)t.pendown()t.color("#086165")t.write('祝大家聖誕快樂!2021,學業有成!',font=('Yuanti SC Regular',30,"bold"))t.hideturtle()turtle.exitonclick()

t.hideturtle()

hideturtle()可以幫助我們把代表turtle的箭頭隱藏起來,如果你想要截圖送給你的小夥伴的話,使用hideturtle()可以更好的幫助你!

t.write()

這應該是我們今天用到的最複雜的指令啦!

在t.write()的括號中,我們首先需要輸入想要顯示出來的文字。如果你想調整字體,字號等設置,你需要使用font = ()!

在font = () 的括號中,依次填入:字體名稱,字號大小,粗細。

比如,這裡我使用了:圓體,45號字,加粗。

所以實際上的代碼是:

font=('Yuanti SC Regular',45,"bold")

那麼來見證最終的效果吧!

快去創建你專屬的聖誕賀卡吧!

相關焦點

  • python基礎課程 第5章 奇妙的內建函數
    除了DRF原則之外,用 python 的內建函數還有另一個好處,那就是它通常比我們自己實現得更好,更合理。因為python語言本身是基於C語言實現的,而大部分內建函數均是基於C語言編寫並編譯成二進位的,所以在運算效率上比我們用 python 再實現一遍要高很多。
  • python基礎教程之python是什麼?
    Python是著名的「龜叔」Guido van Rossum在1989年聖誕節期間,為了打發無聊的聖誕節而編寫的一個程式語言。這是最近10年最常用的10種程式語言的變化圖:python是什麼--python的功能總的來說,這幾種程式語言各有千秋。
  • python教程第三課:python IDE之jupyter notebook詳細教程講解
    這次我們先來講一下如何使用Notebook進行python的代碼編寫1、 首先我們在系統安裝裡面找到Anaconda,裡面有一項Jupyter Notebook,點擊它以後將打開下面的界面, 這個界面看網址就知道,是在本地啟動打開的一個頁面,那麼除了可以從anaconda裡面打開,也可以在CMD窗口裡面輸入jupyter notebook
  • Python新手爬蟲,簡單製作抓取廖雪峰的教程的小爬蟲
    先看幾張對比圖,分別是官網截圖和抓取下來的 txt文檔的截圖,不算那難看的排版的話,內容是一致的,圖片用 url替換了!Python 數據處理 Python編程從入門到實踐 核心編程基礎教程 網絡爬蟲入門書籍 python視頻編程從入門到精通 程序設計教材人民郵電¥72.2領3元券話不多說,先來看看整個爬蟲過程吧!
  • Python入門小迷宮,走完這個迷宮,就能掌握python編程基礎
    這是一個很神奇的迷宮,走完這個迷宮就能掌握python基礎。其實,這是一個用python做的迷宮小遊戲,非常簡單,但對於python初學者來說,還是有一定的挑戰性,但TONOW有源碼和教程,只要跟著python迷宮小遊戲的教程和相應的源碼,不僅很容易就能自己開發出這個遊戲,還能在這個過程中,掌握python編程的基礎哦!
  • python字典操作大全,學習python第7天
    python字典跟列表類型,能存儲多個數據,並且還能在訪問元素的時候可以很快定位到需要的元素。而python字典操作方法有多少種呢?下面羽憶教程為您介紹。python字典python字典概念:python字典可以用來存儲任意類型對象,python字典都是由一個鍵和一個值組成的「鍵值對」,兩者之間用冒號隔開,結構如:sco = {'name':'小明','age
  • Python趣味打怪:60秒學會一個例子,147段代碼助你從入門到大師
    入門簡單如十進位轉二進位,盡顯Python簡潔之美:In [1]: bin(10)Out[1]: '0b1010'冬天到了,就算沒有點亮手繪技能,也能用簡單幾行代碼繪出漫天雪花:>例子是有趣的例子,教程也是正經教程,學習路徑清晰、系統,先一起來看看完整目錄:學習路徑施工完成:1、Python基礎2、Python字符串和正則化3、Python文件4、Python日期5、Python利器6、Python畫圖7、Python實戰施工中:Python基礎算法
  • 從0開始學python-6.2 用python讀寫文件
    我們還學習了用python來查找、重命名一個文件。這節課,我們一起學習一下怎麼用python操作一個文件的內容。文件操作對一個文件,我們可以1)讀取裡面的內容、2)往文件裡寫內容、3)追加文件內容。我們來看看用python怎麼做這些事情。打開文件在對文件內容操作之前,我們首先要打開文件。
  • 如何使用python語言代碼實現判斷是否為回文
    工具Visual Studio 2019python運行環境技術python回文回文,是按照中心對稱,從左到右或從右到左,字符串都一樣的。如果想要python語言代碼實現回文判斷,若為回文,列印回文,否則列印不是回文。
  • 大數據分析Python NumPy庫使用教程
    NumPy 為開放原始碼並且由許多協作者共同維護開發。在處理數據時,有一個功能強大的庫可以極大地提高代碼的效率,尤其是在處理大型數據集時:NumPy。 大數據分析Python NumPy庫使用教程為數據工程師提供有關NumPy的從零開始的培訓。這意味著您不需要具有NumPy的任何經驗,也不會浪費任何時間學習與數據工程工作無關的東西。 在瀏覽了基礎知識之後,您將快速開始使用NumPy來構建和操作二維和三維數組。
  • 如何自學成 Python 大神?這裡有些建議
    第一階段學習從一開始,我自己非常喜歡用 Python 編寫代碼,因為 Python 語法不僅直接、直觀,而且具有高度的一致性。O'Reilly 出版的《Learning Python 第 5 版》和 Google 的 Python 在線教程( https://developers.google.com/edu/python/introduction?csw=1 ) 可以幫助你對 Python 基礎進行足夠的了解。在看書的同時,你還應該跟隨你所學的教程進行編程練習。
  • python用10行代碼寫一個USB病毒
    於是我心想,能不能用python寫一個程序,讓它在後臺運行。每當有u盤插入的時候,就自動拷貝其中重要文件。如何判斷U盤的插入與否?首先我們打開電腦終端,進入/Volumes目錄,這時候插入U盤,可以發現它被掛載在了這個目錄之下,也就是說,我們只要在固定時間掃描這個目錄,當這個目錄有新文件夾出現的時候,很可能有U盤被插入了。
  • python是什麼:Python相關內容了解
    今天來聊聊一篇關於python是什麼:Python相關內容了解的文章,現在就為大家來簡單介紹下python是什麼:Python相關內容了解,希望對各位小夥伴們有所幫助。Python是著名的「龜叔」Guido van Rossum在1989年聖誕節期間,為了打發無聊的聖誕節而編寫的一個程式語言。現在,全世界差不多有600多種程式語言,但流行的程式語言也就那麼20來種。如果你聽說過TIOBE排行榜,你就能知道程式語言的大致流行程度。
  • Python2 已終結,入手Python 3,你需要這30個技巧
    這份教程的很多例子都是只支持 Python 3 的,如果你還在用 Python 2.1,那也是時候與時俱進了。2. 檢查所需的最低 Python 版本你可以在代碼中先檢查一下你的 Python 版本,以免當前用戶的 Python 版本與你的腳本不適配。實現的代碼很簡單:3.
  • 初識python
    2,python歷史。宏觀上:python2 與 python3 區別:python2 源碼不標準,混亂,重複代碼太多,python3 統一 標準,去除重複代碼。3,python的環境。編譯型:一次性將所有程序編譯成二進位文件。缺點:開發效率低,不能跨平臺。優點:運行速度快。
  • python教程之python數學運算
    中進行分數(fraction)運算分數運算是python中的一個模塊(module)。模塊是由別人寫的,並且可以被拿來直接使用的代碼程序,包括類、函數以及標籤的定義,是python標準函數庫的一部分。使用是必須先插入模塊。
  • python入門教程NO.8 用python寫個存款利息計算器
    本文涉及的python基礎語法為def函數,return,函數的各參數示例,匿名函數等函數初識函數是一段組織好的\ 可重複使用的\ 用來實現特定功能的代碼塊。函數能提高代碼的模塊性,和代碼的重複利用率,使一些重複編寫的代碼簡潔化,增加代碼的可讀性和美觀性。為了便於大家理解,我們將函數比作電飯煲,給它添加米飯和水,利用它的煮飯功能,就可以得到米飯在這裡,米飯和水就是需要傳遞給函數的參數,而煮飯功能就是一段可以重複利用的代碼塊,米飯就是利用函數得到的輸出。
  • 中科大統計學python_python 中科大 - CSDN
    python 模塊教程。此次2019年新課,有很多更新,除了增加一些新內容外,最大的一點大概是代碼由Tensorflow遷移到PyTorch。這門課程的主要目標是希望學生能學到現代深度學習相關知識,特別是和NLP相關的一些知識點;能從宏觀上了解人類語言以及理解和產生人類語言的難度;能理解和用代碼(PyTorch)實習NLP中的一些主要問題和人物,例如詞義理解、依存句法分析、機器翻譯、問答系統等。
  • Python自動化辦公之Word,全網最全看這一篇就夠了
    環境安裝 使用Python操作word大部分情況都是寫操作,也有少許情況會用到讀操作,在本次教程中都會進行講解,本次課程主要用到以下4個庫,請大家提前安裝。 很多人學習python,不知道從何學起。
  • ...請收下這份2018學習清單:150個最好的機器學習,NLP和Python教程
    因為教程能更好地幫助你學一技之長或者打開新視野。我把這博文分成四個部分,機器學習,NLP,Python,和數學基礎。在每一小節我會隨機引入一些問題。由於這方面學習材料太豐富了,本文並未涵括所有內容。2015-08-Understanding-LSTMs/漫談LSTM模型(echen.me)http://blog.echen.me/2017/05/30/exploring-lstms/小學生看完這教程都可以用