📜 [專欄新文章] 類 Python 的合約語言 Vyper 開發入門:與 Solidity 差異、用 Truffle 部署、ERC20 賣幣合約實做
✍️ 田少谷 Shao
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
有鑒於個人近期關注的 Uniswap 及 Curve 皆用 Vyper 實作,索性瀏覽了官方文件並嘗試一些開發工具,希望此文能減少一些讀者初嘗 Vyper 會遇到的麻煩!
Vyper and Solidity
Outline
一. Vyper 極簡介二. 與 Solidity 語法差異三. 開發、開發環境設置 1. 語法高亮 2. 本地 Vyper compiler 安裝 3. 使用 Truffle 操作 ERC20 - 安裝 Truffle - 發幣 - 寫個簡易賣幣合約四. 已知 Remix 問題 五. 結語
一. Vyper 極簡介
Vyper 是除 Solidity 外,以太坊上的另一智能合約 (Smart contract) 語言。其語法和 Python 相近,但畢竟也是寫合約的語言,邏輯差異不大,所以若熟悉 Solidity 應該不難理解用 Vyper 寫出的合約!
Vyper 主要被設計和 Solidity 的區別是安全性及可讀性,這部分會在下一段落及後方的實作中舉例說明。
二. 與 Solidity 語法差異
Vyper 與 Solidity 的差異有許多,在本段只就個人認為感受較深的三點進行說明,其他差異只進行翻譯,有興趣的讀者可以到官方文件詳細了解:https://vyper.readthedocs.io/en/latest/index.html
1. 沒有 modifier
Solidity 常見的 onlyOwner() modifier; 由於 gist 沒有 Solidity 的語法高亮,故截圖
在 Vyper 中單純用 assert 及 assert_modifiable 來進行條件檢查,兩者差別為若要檢查函數執行後的返還值,要用後者,如下圖:
Vyper 寫法
2. 沒有 Class inheritance 繼承
繼承是物件導向程式設計 (OOP) 的核心概念,但各種繼承關係有時候確實很複雜。Vyper 沒有繼承,這無疑大幅地增加了程式可讀性及安全性,以及降低審計程式碼的難度。在此提供一個例子供不熟悉 OOP 複雜之處的讀者有個概念:
source: https://consensys.github.io/smart-contract-best-practices/recommendations/#multiple-inheritance-caution
在上例中,contract A 的 fee 值 (因繼承自 contract B 和 C,故有 fee 一值) 是 5、a 值也是 5 (因繼承自 contract Final,故有 a 一值)。原因是 A 先繼承 B 再繼承 C,因此 contract A 中的 setFee() 是使用了 contract C 的 setFee(),而 a 值是由於 C(5),這代表 contract C 的 constructor (舊版本中即 function C(),函式名稱同 contract 名稱) 被傳入的值為 5。
稍微延伸一下以上概念,將 contract A 改成:contract A is C, B。如此一來,a 值還有 fee 值都會是 3,因為這次 A 先繼承 C 再繼承 B,因此最終吃到的值是 contract B 的。
以上就是 OOP 繼承的複雜之處的簡單範例說明,應該能稍微感受到爲什麼除去繼承後會大幅提高可讀性及安全性,畢竟即使是熟悉 OOP 的人有時頭腦一混亂也會開始懷疑自己寫的程式碼繼承結構是否正確 …
3. 沒有 dynamic array 動態陣列
這應該是目前 Vyper 設計中爭議最大的部分。沒有動態陣列代表在宣告陣列時需要宣告其長度,也就是說 Solidity 中的寫法 uint[], bool[] 等等,這些是不會出現在 Vyper 的。在 Vyper 中只能出現諸如:
# Vyper 的變數宣告方式為 變數名稱: 存取範圍(變數型態(若為陣列給長度))
values: uint256[10]participants: public(address[20])
可以看到上方的 uint256 及 address 兩陣列皆需要宣告長度,不能不宣告而使其動態地配置空間。
沒有動態陣列固然可以確保執行運算的範圍、次數,但一來動態陣列真的很方便、二來在 Solidity 有此功能而 Vyper 卻沒有的情況下可能會造成麻煩,詳見此一討論串:點我。
4. 沒有 inline assembly,程式碼中不會有組合語言
5. 沒有 function overloading,函式不會因傳入的參數數目不同而結果不同
6. 沒有 operator overloading,運算符號不會有不同於預設的自定義功能
7. 沒有無限迴圈,可免於 gas limit attack
8. 十進位定點數 decimal fixed point 而非二進位 (binary) 定點數,詳見:點我
三. 開發、開發環境設置
結論先講
開發 Vyper 的最佳姿勢目前個人認為是在本地裝上 Vyper compiler、用 Truffle 部署,並在撰寫時將檔名後加上 .py 就能有 Python 的語法高亮👌
1. 語法高亮 (syntax highlighting)
有語法高亮絕對是舒服地寫程式的第一步。
Remix 有 Vyper 的語法高亮,但一來個人目前不推薦使用 Remix 來撰寫 Vyper,原因詳見下方 4. 已知 Remix 問題;二來 Remix 的語法高亮其實也沒有很清楚,因此個人推薦:在本地開發,將檔名後加上 .py 就會有 Python 的語法高亮。
2. 本地 Vyper compiler 安裝
照官方說明使用 Python 的虛擬環境 virtualenv:
source: https://vyper.readthedocs.io/en/latest/installing-vyper.html#installing-vyper
簡單兩點提醒:
如果中間那行報錯但確實已經有 Python,則可能是版本問題。依照自己電腦上的版本改成相應的即可,ex: python3.6 改成 python3
進入虛擬環境後(檔案路徑前方應有 vyper-venv 的提示),使用此指令: vyper {檔案名稱}.vy,即可編譯 .vy 檔;使用完畢後輸入 deactivate 即可退出
3. 使用 Truffle 操作 ERC20
安裝 Truffle
Truffle 雖有冗餘的 migration 但也別無他法,畢竟 Remix 目前仍不完善 :(
下載流程可以照官方文件,使用 vyper-example:
source: https://github.com/truffle-box/vyper-example-box
由於我們會接上測試網 Ropsten,因此還要下載 truffle-hdwallet-provider:
source: https://github.com/trufflesuite/truffle-hdwallet-provider
接者就可以開始使用 Vyper 寫合約了!
發幣
由於 Vyper 的官方文件中已經有許多優質範例,因此本文希望來點不一樣但大家卻又很熟悉的…以 ERC20 為例(這千篇一律的主題xD):
用 Curve 的 ERC20 程式碼為範本,發一個幣(又要發…)
寫一個簡易賣幣合約
選擇這個主題一方面畢竟 ERC20 是以太坊的最大宗應用之一,二來有興趣的讀者可以透過讀 ERC20 的程式碼來熟悉 Vyper,並在看過本文的流程後對於用 Vyper+Truffle 來操作 ERC20 有完整的概念!
好的,首先複製一份 Curve 的 ERC20 程式碼(看到就順手拿來用),並複製到 Truffle 所在路徑的 contracts 資料夾中:https://github.com/curvefi/curve-contract/blob/pool_compound/vyper/ERC20.vy
由於第一點希望著重在跑一次流程,因此不改動合約的程式碼。
將 ERC20.vy 複製到 contracts 資料夾中後,到 migrations 資料夾開啟 2_deploy_contracts.js,首先將 require() 中的參數改為 ERC20.vy 的檔名 ERC20,再來依照自己喜好決定幣的名稱、代號、小數點位數及發行總量,輸入於 deployer.deploy() 中。
接著,為了和測試網 Ropsten 互動,需要將以下程式碼寫入 truffle-config.js。
第二行的 privateKeys 是帳號的私鑰。以下實作需要兩個帳號來操作,因此請從錢包匯入兩組私鑰(並非助憶詞)。
在第 13 行中 HDWalletProvider 此函式的第三個參數代表要用第幾個帳號最為預設帳號(部署合約等),第四個函數代表總共匯入幾組帳號。而第二個參數則是需要至 Infura 申請一個 project 來得到串接 Ropsten 的連結。這兩步驟並非本文重點,因此不詳細解說步驟,Google 搜尋關鍵字應該就會找到方法!
接著,就可以輸入以下指令來將代幣發佈到 Ropsten:
truffle deploy --network ropsten
有進入虛擬環境才可以編譯 .vy 檔,若忘記就會收到如下的錯誤訊息:
記得打開虛擬環境才能編譯 .vy 檔
成功後就可以在 contract address 中看到代幣發佈的位置,加入到 Metamask 中就可以看到。本文的例子是維尼代幣 Winnie the Coin, WTC ;)
contract address 便是 ERC20 的所在
Winnie the Coin, WTC
好了,到此測試網上又多了一個測試用的垃圾廢幣。
寫個簡易賣幣合約
賣幣合約中我想要簡單有兩個功能就好:付錢買幣 、結束銷售,以下就是程式碼。買幣的部分就不寫太詳細,固定價格為 0.01 Ether 可以買 500 代幣。
簡單說明幾點:
Solidity 的 constructor() 在 Vyper 中為 Python 風的 __init__():
函式的屬性(public, private, payable 等等)放在函式上方,與 Python 的修飾器位置相同
總之寫法跟 Python 很像,次方也一樣是用兩次乘法代表:**
變數前加上 self 代表是當前合約的變數/全域變數,因此非常容易與函式中的變數/區域變數做區隔
由於已經在第一行匯入了 ERC20 那份合約,因此透過將地址傳入合約當參數,就可以呼叫在該地址的合約:ERC20(self.tokenAddress) 。並且,可以將部署的合約存成一個變數 erc20 較方便
寫完合約後一樣要更改 migrations 資料夾中的 2_deploy_contracts.js 如下,將代幣所在的地址作為參數輸入。
由於先前已經部署過一次了,因此要重置才能再部署第二次,輸入以下指令:
truffle deploy --reset --network ropsten
部署成功之後就要來試著買幣啦!輸入以下來進入 console:
truffle console --network ropsten
成功進入後應該會看到 truffle(ropsten)> 的字樣。接著,首先取得部署的兩合約,並查看是否有返回合約資訊:
# ERC20 及 SellToken 是先前在 2_deploy_contracts.js 中的變數名稱,代表被部署的合約
let instance1 = await ERC20.deployed()instance1 # 印出 instance1 的資訊
let instance2 = await SellToken.deployed()instance2 # 印出 instance2 的資訊
再來,為了讓 SellToken 可以賣幣,要先用 ERC20 的合約匯幣到 SellToken 的合約。因此,輸入以下指令:
instance1.transfer(instance2.address, 10000)
# 這裡數字只要設為 > 500 就可以
接著,我們要利用第二個帳號去買幣(第一個帳號為預設帳號,因此就是代幣擁有者)。將帳號的資訊存入變數 accounts 中,再指定送出交易的帳號是第二個帳號。由於我個人匯入私鑰的順序是將第一個帳號存在 truffle-config.js 的 privateKeys[0]、第二個帳號存在 privateKeys[1],因此第二個帳號的地址就會在 accounts[1] 的位置:
let accounts = await web3.eth.getAccounts()
instance2.buyToken({from: accounts[1], value: 10000000000000000})
# value 為 10^16 是因為在 SellToken 的 buyToken 函式中買一次要 0.01 Ether, 即為 10^16 wei
然後應該就會在自己的第二個帳號中看到匯入的幣了~
最後,由於合約中結束銷售就是一個自殺 selfdestruct 函式,因此可以呼叫看看,第一個帳戶錢包中的錢應該會增加,因為第二個帳戶有付款買幣;並且,可以到 Ropsten 上瀏覽,應該能看到相關提示:
中間 contract 的右上角有 Self Destruct 的樣式
四. 已知 Remix 問題
Remix 目前有兩個版本,只有新版有 Vyper 的編譯器。在此整理目前遇到的問題,如果有人也遇到可以對照一下本處,可以省去很多自我懷疑xD
不會報錯
Remix 的編譯結果有時會是錯的、和本地端編譯出來的結果不同
舉上方的 SellToken 合約為例,將其複製到 Remix 中使用左邊的 Remote Compiler 有錯,但又不報錯 q_q (ERC20 的合約有在同檔案目錄)
左方有紅色三角形,代表編譯失敗,但沒有報錯訊息可以看…
getter function 竟然要花錢
用 Solidity 寫的合約,查詢 public 變數的值應該是不用消耗 gas 的,但不知何故查詢 Vyper 寫的合約的 public 變數卻要消耗 gas,如下圖…
可以看到中下方有 22026 gas 的消耗
Local compiler 無法使用
圖中的 Local Compiler 此選項,個人雖照官方文件執行 vyper-serve 但卻失敗,因此若有讀者成功希望能留個言不吝分享!
五. 結語
Vyper 作為一個比 Solidity 更新的合約語言,在寫程式碼的方面沒什麼問題,但相關的開發工具、學習資源等都遠不及 Solidity。
Vyper 主打的兩個特色:可讀性的部分相信看完上面的讀者應該已經有些感覺;安全性…小白如作者我倒是沒有感受到顯著的不同。況且 Solidity 已經發展許久,很多錯誤的寫法、知名的安全漏洞大家應該也很熟悉了,還有 Openzeppelin 提供安全合約寫法的範本,因此有待以後高人解說安全性是否真的是 Vyper 較好。
有興趣者可以查看 Vyper 的安全報告:點我,大意是目前 Vyper 的編譯器仍有許多問題待改進! (感謝 Chih-Cheng Liang 的提供)
本文對 Vyper 的介紹及其與 Solidity 的差異只講了個大概,欲知更詳細的介紹還是要麻煩讀者前往官方文件了:https://vyper.readthedocs.io/en/latest/index.html
最後,如果本文有任何錯誤,請不吝提出,我會盡快做修正;而如果我的文章有幫助到你,可以看看我的其他文章,歡迎一起交流 :)
田少谷 Shao - Medium
類 Python 的合約語言 Vyper 開發入門:與 Solidity 差異、用 Truffle 部署、ERC20 賣幣合約實做 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有5部Youtube影片,追蹤數超過8萬的網紅Eliza Ang,也在其Youtube影片中提到,*未經本人同意授權,請勿任意轉載影片 【Lingoda歐洲最大線上外語課程】 可學習德語、法語、西班牙語、英語和商用英語 90天衝刺班挑戰 :https://bit.ly/ElizaAngSprint 優惠碼:CLASS78 (可於49歐的訂金上享有10歐的折扣) Instagram (lingo...
「c++語法查詢」的推薦目錄:
- 關於c++語法查詢 在 Taipei Ethereum Meetup Facebook 的精選貼文
- 關於c++語法查詢 在 91 敏捷開發之路 Facebook 的最佳貼文
- 關於c++語法查詢 在 顏艾琳 Facebook 的精選貼文
- 關於c++語法查詢 在 Eliza Ang Youtube 的最佳解答
- 關於c++語法查詢 在 吳老師EXCEL VBA設計(大數據自動化)教學 Youtube 的最佳解答
- 關於c++語法查詢 在 吳老師EXCEL VBA設計(大數據自動化)教學 Youtube 的最佳貼文
- 關於c++語法查詢 在 C/C++ SQLite 資料庫教學與範例 的評價
- 關於c++語法查詢 在 【C 語言入門】15.1 -查詢數字的練習(使用陣列) - YouTube 的評價
- 關於c++語法查詢 在 z2x3c4v5bz/Learning--C_intro_4th_ed: 書籍「C 語言教學 ... 的評價
- 關於c++語法查詢 在 網路上關於c++語法表-在PTT/MOBILE01/Dcard上的升學考試 ... 的評價
- 關於c++語法查詢 在 網路上關於c++語法表-在PTT/MOBILE01/Dcard上的升學考試 ... 的評價
- 關於c++語法查詢 在 網路上關於c++語法表-在PTT/MOBILE01/Dcard上的升學考試 ... 的評價
c++語法查詢 在 91 敏捷開發之路 Facebook 的最佳貼文
靠!喜歡寫 Dapper 或是在 C# 裡面用字串寫 SQL statement 的朋友有福了!
▍傳送門
https://blog.jetbrains.com/…/sql-inside-c-strings-fragment…/
▍Features 簡介
Rider 2018.3, 在你用 C# 寫 string 的時候,可以指定 "inject language 是 SQL", 然後接著在你寫 C# 字串的時候,就會跳 SQL 的 intellisense 讓你選了。
還可以選好一段 C# 字串,直接 run query in console, 馬上看到查詢的結果。
也可以在字串裡面,選擇要編輯的是 json, 然後在 json fragment 裡面直接搞定格式。
※ SQL 也可以用上面這一招,讓你在 C# editor 裡面,用 SQL fragment 直接寫 SQL statement, C# 那邊會自動生成,而 fragment 視窗會檢查 SQL 語法。
--
By merging language injection functionality from IntelliJ IDEA and ReSharper, we now support languages like CSS, HTML, JSON, regular expressions and JavaScript, as well as SQL, XML, MsBuild, YAML, and many more.
※ 已經夠多了....
#這力道是想挑戰一下龍頭的地位嗎
#Rider!
c++語法查詢 在 顏艾琳 Facebook 的精選貼文
美國人教你這樣用Google,你真的會變特務! 作者: 夜狸
看了才感嘆原來這麼多年的GOOGLE是白用了~這就是yahoo永遠無法超越G的原因吧
前提:Google→www.google.com
第一篇
在搜索框上輸入:「indexof/」inurl:lib
再按搜索你將進入許多圖書館,並且一定能下載自己喜歡的書籍。
在搜索框上輸入:「indexof/」cnki
再按搜索你就可以找到許多圖書館的CNKI、VIP、超星等入口!
在搜索框上輸入:「indexof/」ppt
再按搜索你就可以突破網站入口下載powerpint作品!
在搜索框上輸入:「indexof/」mp3
再按搜索你就可以突破網站入口下載mp3、rm等影視作品!
在搜索框上輸入:「indexof/」swf
再按搜索你就可以突破網站入口下載flash作品!
在搜索框上輸入:「indexof/」要下載的軟件名
再按搜索你就可以突破網站入口下載軟件!
注意引號應是英文的!
再透露一下,如果你輸入:
「indexof/」AVI
另補上第二篇
用GOOgle看世界!!!只要你在GOOGLE裡輸入特殊的關鍵字,就可以搜到數千個攝像頭的IP地址!通過他你就可以看到其所攝的實時影像!!
在google裡輸入
inurl:"viewerframe?mode="
隨便打開一個,然後按提示裝一個插件,就可以看到了!!!
再補上第三篇
三則駭客的Google搜索技巧簡介
大家都知道,Google毫無疑問是當今世界上最強大的搜索引擎。然而,在駭客手中,它也是一個秘密武器,它能搜索到一些你意想不到的信息。賽迪編者把他們進行了簡單的總結不是希望您利用他去攻擊別人的網站,而是利用這些技巧去在浩如煙海的網絡信息中,來個大海撈針,尋找到對您有用的信息。
如果您是一名普通網民,您可以使用駭客的技巧擴大自己的視野,提高自己的檢索效率;如果您是一名網管,請您趕快看看您的網站是否做好了對下面駭客探測手 段的防範措施,如果沒有就趕快來個亡羊補牢,畢竟隱患勝於明火,防範勝於救災;如果您是一名駭客,相信您早以在別的駭客站點上見過類似的方法,這篇文章對 您沒什麼用處,這裡的技巧對您是小兒科,菜鳥級!您可以節省寶貴的時間做更有意義的事情,這篇文章您不用看了,到別處去吧!
基於上面的考慮我編發了這篇文章。
搜索URL
比如我們提交這種形式:passwd.txtsite:virtualave.net
看到了什麼?是不是覺得太不可思議了!有很多基於CGI/PHP/ASP類型的留言板存在這種問題。有時我們得到密碼甚至還是明碼的!管理員或許太不負 責了,或許安全防範的意識太差了,如果你是網絡管理員,趕快檢查一下不要讓惡意攻擊者撿了便宜。不要太相信DES加密,即使我們的密碼經過DES加密的密 碼,駭客們還是可以通過許多破解軟件來搞定。
這次我們能得到包含密碼的文件。「site:virtualave.net」意思是只搜索virutalave.net的URL。virutalave.net是一個網絡服務器提供商。
同樣,我們可以搜索一些頂級域名,比如:.net.org.jp.in.gr
config.txtsite:.jp
admin.txtsite:.tw
搜索首頁的目錄
首頁是非常有用的,它會提供給你許多有用的信息。
我們提交如下的形式:
"Indexof/admin"
"Indexof/secret"
"Indexof/cgi-bin"site:.edu
你可以自己定義搜索的首頁字符。這樣就可以獲得許多信息。
搜索特定的文件類型
比如你想指定一種文件的類型,可以提交如下形式:
filetype:.docsite:.milclassified
這個就是搜索軍方的資料,你可以自定義搜索。
再提供一個第四篇
Google的特殊功能
1、查詢電話號碼
Google的搜索欄中最新加入了電話號碼和美國街區地址的查詢信息。
個人如想查找這些列表,只要填寫姓名,城市和省份。
如果該信息為眾人所知,你就會在搜索結果頁面的最上方看到搜索的電話和街區地址
你還可以通過以下任何一種方法找到該列表:
名字(或首位大寫字母),姓,電話地區號
名字(或首位大寫字母),姓,郵遞區號
名字(或首位大寫字母),姓,城市(可寫州)
名字(或首位大寫字母),姓,州
電話號碼,包括區號
名字,城市,州
名字,郵遞區號
2、查找PDF文件
現在GOOGLE的搜索結果中包括了PDF文件。儘管PDF文件不如HTML文件那麼多,但他們經常具備一些其他文件不具備的高質量信息
為了顯示一個搜索結果是PDF文件而不是網頁,PDF文件的標題開頭顯示藍色文本。
這就是讓你知道ACRTOBATREADER程序會啟動來閱讀文件
如果你的計算機沒裝有該程序,計算機會指導你去能免費下載該程序的網頁。
使用PDF文件時,相關的網頁快照會由「TEXTVERSION」代替,它是PDF文檔的複製文件,該文件除去了所有格式化命令。
如果你在沒有PDF鏈接的情況下想看一系列搜索結果,只要在搜索欄中打上-inurldf加上你的搜索條件。
3、股票報價
用Google查找股票和共有基金信息,只要輸入一個或多個NYSE,NASDAQ,AMEX或
共有基金的股票行情自動收錄機的代碼,也可以輸入在股市開戶的公司名字。
如果Google識別出你查詢的是股票或者共有基金,它回覆的鏈接會直接連到高質量的金融信息提供者提供的股票和共有基金信息。
在你搜索結果的開頭顯示的是你查詢的股市行情自動收錄器的代碼。如果你要查找一家公司的名字(比如,INTEL),請查看「股票報價」在Google搜索結果的金融欄裡會有那個公司的主頁的鏈接(比如, www. INTEL. COM)。
Google是以質量為基礎來選擇和決定金融信息提供者的,包括的因素有下載速度,用戶界面及其功能。
4、找找誰和你鏈接
有些單詞如果帶有冒號就會有特殊的意思。比如link:操作員。查詢link:siteURL,就會顯示所有指向那個URL的網頁。舉例來說,鏈接 www. Google. com會向你顯示所有指向GOOGLE主頁的網頁。但這種方法不能與關鍵字查詢聯合使用。
5、查找站點
單詞site後面如果接上冒號就能夠將你的搜索限定到某個網站。具體做法是:在c搜索欄中使用site:sampledomain.com這個語法結構。比如,在斯坦福找申請信息,輸入:
admissionsite: www. stanford. edu
6、查找字典釋意
查找字典釋意的方法是在搜索欄中輸入你要查詢的內容。在我們根據要求找到所有的字典釋意都會標有下劃線,位於搜索結果的上面,點擊鏈接你會找到字典提供者根據要求給出的相關定義。
7、用GOOLGE查找地圖
想用Google查找街區地圖,在Google搜索欄中輸入美國街區地址,包括郵遞區號或城市/州(比如165大學大街PALOALTOCA)。通常情況下,街區地址和城市的名字就足夠了。
當Google識別你的要求是查找地圖,它會反饋給你有高質量地圖提供者提供的鏈接,使你直接找到相關地圖。
c++語法查詢 在 Eliza Ang Youtube 的最佳解答
*未經本人同意授權,請勿任意轉載影片
【Lingoda歐洲最大線上外語課程】
可學習德語、法語、西班牙語、英語和商用英語
90天衝刺班挑戰 :https://bit.ly/ElizaAngSprint
優惠碼:CLASS78 (可於49歐的訂金上享有10歐的折扣)
Instagram (lingoda_official): https://www.instagram.com/lingoda_official/
★參與超級衝刺班/衝刺班,要預繳訂金49歐元以及學費!
若完成超級衝刺班Super Sprint(90堂課程),即會退回《49歐元訂金》以及《全額的學費》
若完成衝刺班Sprint(45堂課),會退回《49歐元訂金》以及《半額的學費》
★衝刺班結束後會直接續訂扣款!不會另行告知!若不想續訂請記得在規定時間內取消訂購!
衝刺班後的續訂條款
35. 參與者同意於衝刺班活動結束時將自動續訂每個月的付費訂購(包含折扣)。第一筆款項將於
2020 年 9 月 29 日(中歐時區)收取。本條件不適用於參加「商用英文衝刺班」活動的學員。
36. 如果參與者不希望每月訂購,則他們有責任在開始日期之前取消訂購,否則將不予退還。可以在衝
刺班活動的最後一個月(第 3 個月)於參與者的 Lingoda 個人帳戶取消訂購。在衝刺班活動的最
後一個月之前無法取消訂購。
★相關權益
衝刺班規則:https://www.lingoda.com/downloads/sprint/Jul2020/SprintRulesJul20Zh.pdf
若還有其他疑問請聯繫:contact@en.lingoda.com
如果您喜歡我的頻道,可以用以下的方式支持我持續創作喔:)
♥按讚、訂閱、分享
♥購買我設計的週邊商品: https://teespring.com/stores/eliza-ang
♥看完Youtube影片的廣告不要略過
♥利用我提供的連結訂房、訂票、訂行程、租車…
♥團購商品:https://mall.kolhunter.com/store/236c569a62d013820a7df29532?fbclid=IwAR3KP8YfpMo43ewS7HK0O5vdpDWPo0dyBHpBmAtdZ7I3j2oDtg4hef9v6Ic
♥註冊ShopBack:
https://lihi1.com/AmODX
(只要註冊成功我們雙方都可獲得100元的現金回饋喔)
訂閱SUBSCRIBE:https://www.youtube.com/elizaang
Airbnb體驗播放清單▷https://goo.gl/xCcAoa
機場貴賓室體驗播放清單▷https://goo.gl/cSXuW2
飛行體驗播放清單▷https://goo.gl/fNTCjd
飯店體驗播放清單▷https://goo.gl/oMKcvv
歐洲旅行播放清單▷https://goo.gl/1VG6rb
德國生活播放清單▷https://goo.gl/TYp8Hp
德國旅行播放清單▷https://goo.gl/PmVYM8
�FACEBOOK粉絲團:https://www.facebook.com/elizalovestraveling/
�部落格:http://a80068a.pixnet.net/blog
�Instagram:https://www.instagram.com/elizaistraveling/
�E-mail: elizaang0202@gmail.com (business only)
【折扣優惠專區】
首次加入Airbnb訂房賺取 TWD 1000元 折扣金:https://zh-t.airbnb.com/c/elai107?s=8
Uber首次搭乘優惠碼:kmlt4
Uber Eats首次使用優惠碼:eats-kmlt4(首次使用Uber Eats訂餐,最初2份訂單可享$100折扣優惠)
YesStyle官網:https://shareasale.com/r.cfm?b=61830&u=2215798&m=10669&urllink=&afftrack=
(消費滿49美金輸入折扣碼:YSF10ELIZA
可享9折優惠喔)
ana luisa飾品官網:
http://www.analuisa.com/elizaang
(輸入折扣碼elizaang10可享有9折優惠)
Nordgreen 手錶官網:
www.nordgreen.com.tw?utm_source=some&utm_medium=youtube&utm_campaign=Eliza%20Ang
(輸入折扣碼elizaang可享有8折優惠)
GastonLuga 包包官網 : https://gastonluga.com/tw/
(85折優惠碼:eliza85 *不可與其他優惠同時使用*)
Insta360 ONE X 全景相機購買連結:
https://www.insta360.com/sal/one_x?insrc=INRU0PK
(用此連結可獲得免費配件)
Insta360 Go:https://www.insta360.com/sal/go?insrc=INRU0PK
(用此連結可獲得免費收納包)
TubeBuddy頻道優化工具:
https://www.tubebuddy.com/elizaang0202
【機票比價網站推薦】 (建議用這2個網站交叉查詢)
Skyscanner: https://goo.gl/cBYgeX
Google Flights: https://goo.gl/DFF5TM
【歐洲火車通行證】
Eurail歐鐵全境火車通行證:
https://www.klook.com/zh-TW/activity/9868-eurail-global-rail-pass/?aid=375
德國鐵路通行證(連續 3 / 4 / 5 / 7 / 10 / 15日):
https://www.klook.com/zh-TW/activity/9870-german-rail-pass/?aid=375
【租車比較網】
Sixt:http://www.kqzyfj.com/click-8977298-12490577
Auto Europe Car Rentals:https://bit.ly/2Kn36wN
rentalcars:https://bit.ly/2Z5yWT4
【飯店民宿訂房網站推薦】
Agoda訂房:https://www.agoda.com/zh-tw/?cid=1730291&pcs=8
Hotels.com訂房(集10 晚,送1晚):http://bit.ly/2sKeRE4
Expedia智遊網:http://bit.ly/2MerD5V
Booking.com訂房賺取 6% 現金回饋:https://app.shopback.com/twn?raf=jQgmPN&slug=booking-com
Booking.com訂房(將住宿在 Booking.com 上線,享前5筆訂單免佣金):https://join.booking.com/a/1545198
【旅遊網站推薦】
KLOOK客路訂票券及行程:https://www.klook.com/zh-TW/?aid=375
KKday旅遊體驗:https://www.kkday.com/zh-tw/home/index2?cid=5812
【影音設備Equipment】
Dji Osmo Pocket:https://goo.gl/zBcVoe
使用相機Canon G7X:https://amzn.to/2MUgASw
使用相機G7X Mark III
剪輯軟體Editing Software:Adobe Premiere
♫ Music: https://www.epidemicsound.com/ (付費網站)
★This video is not sponsored.
★Some of the links above are affiliate links.
c++語法查詢 在 吳老師EXCEL VBA設計(大數據自動化)教學 Youtube 的最佳解答
東吳EXCEL VBA與資料庫雲端設計106第8次(多工作表資料存取&樂透彩建立名稱&用名稱計算機率與排名&用VBA輸出有名稱的公式與清除&樂透彩重點回顧與檢視參照函數&326班級成績查詢事件驅動)
上課內容:
01_重點回顧與326班級成績查詢說明
02_326班級成績執行陣列與下拉清單
03_用定義名稱建立下拉清單
04_用VLOOKUP查詢與ROW自訂加1
05_表單自動增加資料到下拉清單與查詢改VBA
06_查詢改VBA與325人事分欄
07_325人事分欄用INDEX函數
08_325人事分欄用MID與LEN函數
09_325人事分欄用INDIRECT函數
10_325人事分欄VBA的方式撰寫
完整影音
http://goo.gl/aQTMFS
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/?hl=zh-TW#!forum/excel-vba-106
懶人包:
EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
課程簡介
五大類函數與自訂函數
一、文字和資料函數
二、邏輯函數
三、日期和時間函數
四、數學和三角函數
五、檢視和參照函數
其他綜合範例
上課用書:
Excel VBA一點都不難:一鍵搞定所有報表
作者: Excel Home
出版社:博碩
出版日期:2013/06/26
定價:380元
超圖解 Excel VBA 基礎講座
作者: 亮亨/譯 出版社:旗標
出版日期:2006/05/15 定價:420元
日本Amazon網站同類書籍銷售No.1
吳老師 108/8/5
函數,東吳進修推廣部,自強基金會,程式設計,線上教學excel vba教學電子書,excel vba範例,vba語法,vba教學網站,vba教學講義,vba範例教學,excel vba教學視頻
c++語法查詢 在 吳老師EXCEL VBA設計(大數據自動化)教學 Youtube 的最佳貼文
東吳EXCEL VBA與資料庫(進階97)第3單元問題02&輸入自動化(建立名稱與下拉清單)&自動帶出編號與單價與小計&用工作表物件事件動態輸出公式到A和C欄&輸入數量自動帶出小計與取消保護&利用自訂表單輸入資料&自動帶出下拉清單資料與單價&確定按鈕與自動將結果&寫到ACCESS)
上課內容:
01_重點回顧與問題02說明
02_輸入自動化(建立名稱與下拉清單)
03_自動帶出編號與單價與小計
04_用工作表物件事件動態輸出公式到A和C欄
05_輸入數量自動帶出小計與取消保護
06_利用自訂表單輸入資料說明
07_自動帶出下拉清單資料與單價
08_確定按鈕與自動將結果
09_將資料寫到ACCESS資料庫
完整影音
http://goo.gl/aQTMFS
教學論壇:
https://groups.google.com/forum/#!forum/scu_excel_vba2_97
與前幾期的課程雖然用的是相同的範例,但最大的不同在:
1.除了解說建函數公式,並將之轉成自訂函數,把複雜的公式變簡單。
2.如何將複雜的公式變成簡單的按鈕,按下按鈕就自動完成工作。
內容主要分成:
第1單元_大數據輸入自動化與R語言的比較說明
第2單元_大數據表單與資料庫
第3單元_大數據工作表合併與匯出資料庫
第4單元_EXCEL當資料庫與查詢系統建立
第5單元_批次查詢與雲端與網路下載資料
第6單元_工作表排序(大到小、筆畫、清單)
第7單元_工作表處理(顯示、顏色、複製與刪除)、活頁簿與檔案處理(工作表分割與合併活頁簿)
第8單元_表格與圖表處理(自動繪製圖表)、圖案處理(快速匯入圖片到EXCEL)
有講義與範例和完成的畫面公式與程式碼,
只要按照每周的順序學習,學會EXCEL VBA自動化絕非難事,
優點:
1.可非線性學習:可按照自己最不熟的部分多次學習。
2.可反覆學習:有疑問可以多次聽講,保證學的會。
3.可攜帶學習:只要有瀏覽器就可以播放SWF檔,MAC電腦也沒問題。
上課參考用書:
看!就是比你早下班-50個ExcelVBA高手問題解決法
作者:楊玉文 出版社:松崗
Excel VBA一點都不難:一鍵搞定所有報表
作者:?Excel Home
出版社:博碩
課程理念:
1.以循序漸進的方式, 透過詳細的說明和實用的Excel VBA範例, 逐步了解整個 VBA 的架構與輪廓,進而學習 VBA 變數、函式及邏輯的觀念, 即使沒有任何程式設計基礎, 也能自己親手撰寫 VBA 程序來提昇工作效率, 晉身職場 Excel 高手! 2.進而解說EXCEL與資料庫的結合,將EXCEL當成資料庫來使用,結合函數、VBA等更深入的功能,讓資料處理和分析的應用更上層樓。 3.將結合GOOGLE雲端試算表,教您如何將EXCEL函數雲端化與網路化。
更多EXCEL VBA連結:
01_EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
02_EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
吳老師 2016/12/6
EXCEL,VBA,函數東吳進修推廣部,EXCEL,VBA,函數,程式設計,線上教學,excel,vba,教學,excel,vba指令教學,vba範例教學excel,,excel,vba教學視頻,excel函數教學,excel函數說明,excel函數應用
c++語法查詢 在 【C 語言入門】15.1 -查詢數字的練習(使用陣列) - YouTube 的推薦與評價
Comments16 · 【 C 語言入門】15.2 - 查詢 範圍內數字的練習(使用陣列) · Solving the heat equation | DE3 · GFG Weekly Coding Contest - 118 Post Analysis ... ... <看更多>
c++語法查詢 在 z2x3c4v5bz/Learning--C_intro_4th_ed: 書籍「C 語言教學 ... 的推薦與評價
Chapter 03 -- 基本資料型態. 變數與常數; 基本資料型態; 查詢常數、變數或資料型態所佔位元組 ... 試將第七章的範例prog7_6 改成以C++ 的語法來撰寫。 Question 16-6. 試將 ... ... <看更多>
c++語法查詢 在 C/C++ SQLite 資料庫教學與範例 的推薦與評價
... 查詢資料,SQL語法: ... 以下示範C/C++ SQLite SELECT 語法查詢資料, C/C++ SQLite 如果要查詢 ... ... <看更多>