製作文宣、簡報使用Canva真的是非常輕鬆愉快的經驗
但匯入的圖形有時會有去除背景的需求
以往都需要應用一些去除背景的工具先行「加工」一下
現在Canva職鳩提供了這項「背景移除工具」好用的功能
讓你在製作簡報時,即時就能針對需求進行圖片的背景移除任務
讓你的編輯及思緒不至於中斷~~~讚!!
錄製一小段操作示範供大家參考:(簡單操作,就不加入聲音了)
我的學習玩樂心得記錄及數位生活遊記
製作文宣、簡報使用Canva真的是非常輕鬆愉快的經驗
但匯入的圖形有時會有去除背景的需求
以往都需要應用一些去除背景的工具先行「加工」一下
現在Canva職鳩提供了這項「背景移除工具」好用的功能
讓你在製作簡報時,即時就能針對需求進行圖片的背景移除任務
讓你的編輯及思緒不至於中斷~~~讚!!
錄製一小段操作示範供大家參考:(簡單操作,就不加入聲音了)
Canva原先接觸到的時候,只是一個方便進行美工、簡報設計的網站
但近來愈來愈強化的應用功能,讓人更加欣賞與倚重了
除了對於教育人員提供了無限制的pro功能外,一些專注於教育現場應用的範本也相當貼心
現在對於遠距(線上)教學應用的功能也更加完善、便利
這次專注於線上影片與螢幕錄製的功能測試做整理~~發現這塊的應用在Canva中設計、發揮的空間相當完善、方便!
特地作了一些測試與整理~~簡單的放上來分享給同業公會參考!
這篇很簡短~~主要就是紀錄一下如何使用設計完善、方便的「氣象資料開放平台」。
順道整理與介紹一下json的操作及迴圈操作概念。主要還是因為氣象資料實用、常見~相當適合作為練習之用。
這篇python程式內容很簡要,最主要的準備工作其實是:要先去完成「氣象資料開放平台」的會員註冊,並找到所需要的氣象資料API。這樣工作就差不多做完了~~剩下的就是Python的語法操作練習與迴圈概念。
好囉~~先看「氣象資料開放平台」這真是個設計得很完善的開放資料平台,先給個讚👍
程序上~~就是註冊→獲取使用者授權碼→尋找所需資料→設定資料→取得呼叫網址
幾個步驟~~本篇就以如何取得「三十六小時天氣與報資訊」為例進行操作。(平台操作內容就請自行參考下圖進行練習~~就是網站操作而已,就不多做說明了~~打字好累😓)
繼上次開喝Gin之後~~這次開始試著讓Gin發揮更實際的效用~~簡單介紹一下如何應用Gin這個好用的框架來建置網站!
同樣的~~我們這種非專業人士,就先不在意如何去將程式寫得多專業、多「冠冕堂皇」~~先著重如何簡單、明瞭的使用!所以~專業人士請無視,謝謝啦!
好囉~~~這次繼上次的開喝之後,接著來談如何在網站內添加網站內容!
這次先談以下四種情況:
1.如何在網頁上呈現「單純」的文字訊息。
2.如何設定Gin的HTML模板。
3.如何呼叫HTML模板。
4.如何將參數(資料)傳遞給HTML模板並呈現。
基本上若能按部就班走到第4點~~那後續就是如何將「整批」資訊(如多組使用者資訊、或是資料庫內容讀取等等)丟給HTML去呈現,這部分就放到下一次再做整理囉!(一次寫太多~太亂也太累~呵!)
一樣~~直接先上程式碼🐎了~~看得懂的就直接試試看吧!
package main
import (
"github.com/gin-gonic/gin"
)
func hello(c *gin.Context) {
c.String(200, "歡迎蒞臨GoLang Gin示範網站")
}
func home(c *gin.Context) {
c.HTML(200, "index.html", "")
}
func welcome(c *gin.Context) {
c.String(200, "歡迎蒞臨GoLang Gin旗艦示範中心")
}
func login(c *gin.Context) {
data := "Wan Chih-Hsiang"
c.HTML(200, "login.html", gin.H{
"data": data,
})
}
func main() {
s := gin.Default()
s.LoadHTMLGlob("templates/*")
s.GET("/", hello)
s.GET("/home", home)
s.GET("/welcome", welcome)
s.GET("/login", login)
s.Run(":8080") // listen and serve on 0.0.0.0:8080
}
簡單註記一下其中幾個重點,方便回想!
對應上述四種本文要介紹的情形~~
跟python比起來~~GoLang真的是比較精簡,重複性的東西幾乎是不太會出現的!
相對python而言,個人覺得GoLang更重視如何提供一個良好的「鍋子」讓「廚師」盡情發揮自身的廚藝及創意。而python則是著重於提供各式各樣的廚具,讓每個人不需具備太多廚藝就可以享受烹飪的樂趣!
針對之前談到的SLICE,在GoLang中不像python的list提供了許多函式可供應用的函式進行操作與應用,如:刪除、查詢、轉換等等~~,這些在GoLang中似乎認為可經由程式設計人員透過自身需求,進行設計即可有效解決,就無需代勞提供相關函式庫,提供最大的彈性空間給設計人員自行思考、設計!
就這觀點而言,自己操作起來~~發現其實:就程式設計的邏輯思維能力訓練而言,GoLang似乎比Python更加適合進行邏輯思維能力的訓練與思考!(純粹個人感受~~😏)
好囉~~~接續上一篇關於slice的相關基本設定,這一篇整理一些關於slice的複製、篩選、替換、排序等相關操作練習紀錄!
好了~~~直接上程式碼🐎時間
package main
import (
"fmt"
"sort"
)
func main() {
//array設定
var a1 = [5]string{"PHP", "ASP.NET", "JAVA", "Pyhton", "GoLang"}
//slice設定方式
var s1 = []string{"ASP", "PHP", "ASP.NET", "JAVA", "Pyhton", "GoLang"}
var s2 []string
s3 := []int{10, 50, 30, 60, 40, 20}
//GoLang不像python有針對slice刪除等相關函數,而是透過slice的操作功能進行類似刪除的相關操作
fmt.Println(a1[2:4])
s4 := make([]string, 3) //創建一個有3組元素的slice
copy(s4, s1[2:5])
fmt.Println(s4)
fmt.Println(s1[:5])
s2 = append(s1[:2], s1[4:]...) //去除原slice中的"ASP.NET" "JAVA"二個元素
fmt.Println(s2)
//SLICE元素排序操作
fmt.Printf("排序前的s3:%v \n", s3)
sort.Ints(s3) //整數型slice排序方法
fmt.Printf("排序後的s3:%v \n", s3)
fmt.Printf("排序後最大值、最小值:%d、%d \n", s3[len(s3)-1], s3[0])
sort.Strings(s2) //文字型slice排序方法
fmt.Printf("string類型的slice也可以排序:%v \n", s2)
for k, v := range s2 {
fmt.Printf("slice s2的k,v分別為:%d, %s \n", k, v)
}
s2[0] = "java" //元素替換
fmt.Println(s2)
//達成s3內每個元素*2的作法
for k, v := range s3 {
s3[k] = v * 2
}
fmt.Println(s3)
//應用map函式產生類似字典檔對應表簡易操作示範
s5 := map[string]int{
s1[0]: s3[0],
s1[1]: s3[1],
s1[2]: s3[2],
s1[3]: s3[3],
}
fmt.Println(s5)
fmt.Println(s5["ASP"]) //不存在的對應值為0
fmt.Println(s5["java"])
}
執行結果截圖如下供參:
當然在實際操作及應用上,仍有相關函式可供配合進行相關操作與設計應用,這些應用就留在後續進行相關專案設計時,有機會再做整理、分享了!
好囉~~這次就先到這裡告一段落!!
在Python中,處理數據及資料時,list是個相當實用的工具,也提供許多好用的函式供相關操作與應用!
同樣的,在GoLang的學習中,我也將這部分列為練習的重點之一!
在GoLang中,對於數據及資料組的處理上,有array及slice可供應用,不過在實際處理動態資料及數據時,似乎slice出場的機會會比較高一些!而且二者的操作都還挺相似的,相干操作概念是可以延伸的!所以我就將重點放在slice上了!
好囉~~這次先將一些有關array、slice的基本設定方式及操作,先做一些整理!
後面再針對slice的應用操作另作整理!當然若要實際應用,還是建議自己設計個專案進行實務上的操作,幫助會最大!
package main
import "fmt"
func main() {
//array設定
var a1 = [5]string{"PHP", "ASP.NET", "JAVA", "Pyhton", "GoLang"}
//slice設定方式
var s1 = []string{"ASP", "PHP", "ASP.NET", "JAVA", "Pyhton", "GoLang"}
var s2 []string
s3 := []int{10, 20, 30, 40, 50}
fmt.Println(a1[4])
fmt.Println(len(s1))
s2 = append(s2, "python", "GoLang")
s4 := make([]string, 1) //創建一個只有1組元素的slice
copy(s4, s2) //因為s4只有一組元素,所以copy過來只會有一組元素
fmt.Println(s4)
s4 = append(s2, s1...) //合併二個slice要在後面加上...三個點是解構的意思
fmt.Println(s4)
fmt.Println(append(s4, "Go"))
for _, v := range s3 {
fmt.Println(v)
}
}
上述程式執行結果如下:
這次就先整理到這裡告一段落!!
Gin是目前相當受歡迎與推薦的Web Framework。(https://github.com/gin-gonic/gin)
這篇開始試著開喝、玩玩~~紀錄一下學習歷程!
★首先~~先安裝Gin:$ go get -u github.com/gin-gonic/gin
★★接著當然是試喝看看囉~~~先來個最單純的網站跑起來看看~上網站程式碼🐎囉......
package main
import (
"github.com/gin-gonic/gin"
)
func hello(c *gin.Context) {
c.String(200, "歡迎蒞臨GoLang Gin示範網站")
}
func main() {
s := gin.Default()
s.GET("/", hello)
s.Run(":8888") // 設定網站執行埠
}
十來行,一個驚天動地泣鬼神的網站(連Apache戰鬥機都不必出動)就面世了~~讚👍
啟動(run)之後如下:Go Go Go~~~