[DA series - Learn Python with Steem #02] 變數與資料型態

in da-learnpythonwithsteem •  6 years ago  (edited)

[DA series - Learn Python with Steem] 是DA(@deanliu & @antonsteemit)關於「從Python程式語言實做Steem區塊鏈的入門」的系列,歡迎趕緊入列學習!

前情提要:[DA series - Learn Python with Steem #01] 安裝Python、文字編輯器與哈囉!

第#02堂課,我們要從根基開始打底囉:先來學學 變數與資料型態 吧!

Python的變數

今天我們要來介紹在程式語言裡面,一個非常基本也重要的的元素:變數。在程式的運行過程中,變數是一個被操作的主體。我們會利用變數儲存不一樣的資訊,並且彼此交互運算。

例如我們要寫一個程式計算自己的薪水,我們用變數work_hour來紀錄我們今天工作了多久,用dollar_per_hour 紀錄了一小時的薪水。接著下一步我們透過數學的乘法運算(*)來成功算出一天的薪水,並把它的值存在salary_per_day這個變數裡面。

注:本篇教學的程式碼可至GitHub/tutorial_2.py中參考或下載。

在上面的語法中,=的作用就是「賦值」,其實跟小時候寫二元一次方程式x=1, y=2是一樣的。但是程式中我們如果都只使用x, y這種東西當變數名稱的話,我們很快就會忘記他代表的意義了,所以都會在命名上稍微花一點心思,訂一個看了一目了然的名字。

我把這個檔案存檔為example1_variable.py,一樣利用command line執行之後就會顯示我們一天的工錢:110塊。

得到這個salary_per_day之後,我們還可以把他拿來做各種事。例如算一週薪水、一個月的薪水、一年的薪水等等。

執行結果:

550
2200
26400

變數的好處還有,寫好這段程式之後,我們只要在程式中改變任何一個變數的值(例如把dollar_per_hour換成10),就可以算出完全不同的結果。這樣我們就可以輕鬆的比較做不同工作,一年賺得錢會差多少了xD

執行結果 24000。因此知道每個小時多領一塊錢是多麼重要的了吧!

資料型態

在程式語言中,不同變數又會有不同的資料型態(Type),例如有些「年齡是正整數」、「名字是文字字串」等等。這是為了讓程式對於你存在變數裡的資訊有所了解,以便做出正確的運算。

頭昏眼花了嗎?沒關係,看一些幾本例子就會豁然開朗了。

這裡我宣告了my_name這個變數是一個字串(用'' 或是""括號起來),來儲存Anton這個名字。
my_age就跟剛剛的薪水一樣,是個未來可能要那來做加減運算的「數字」。
第三個is_married就比較特別了,是一種叫做布林值(Boolean Algebra)的型態,此類資料只有兩種狀態,即是真或假、True or False。這個True of False在通常被拿來做判斷用,這個在未來我們學判斷式跟迴圈的時候會特別重要。

現在我們用不同種類的資料來紀錄訊息了,但為什麼要這麼做呢?因為不同種類的資料在一般情況下是不能放在一起運算的。而不同的資料型態也被python定義了不同的運算規則。

例如,我們改變程式碼如下:

我們分別來看看三種資料型態經過乘2之後會變什麼。會發現執行結果為:

AntonAnton
44
0

在python的定義中,字串乘以二把字串重複兩次,所以'Anton'*2 = 'AntonAnton'
第二個比較簡單理解,數字的乘法跟我們想像也是一樣的。22 * 2 = 44 。
但最後一個又很奇怪了。原來python在遇到把True or False拿來做數學運算時,會把他們視為1 and 0。所以這裡False*2 被當成了0*2 = 0,所以output就變成0了。

所以我們可以看出,有些奇怪屬性做奇怪運算會有難以預期的結果,因此在設計程式時應該很清楚每個變數的屬性、意義,才能避免這些可能讓程式壞掉的地方。這也讓我們看出不同變數種類存在的必要性,因為彼此差異頗大,要完成一項任務往往需要這些不同元素互相幫忙。

下一篇介紹判斷式的介紹中,大家應該就可以有更深刻的體會了。

我們下篇文章再見囉~下課!

class-377117_1280.jpg
image - pixabay

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

忘了交作业啦作业,哈哈
补上。

很棒!各位同學可以去看看這筆記,還補充了不少跟這堂課相關的知識喔!^_^

ch2.png

推好學生!

太多bug了。

果然是有天份丫

image.png
改回3.6.5,我懒得开新文件了,在原来的文件下新增代码并运行~
顺带发现没有申明,没有“;”,几乎一行一条代码以回车来分割,我记得好像有一行N条代码的方法,但是我忘记了,懒得找,坐等后面的教程。
区分大小写的节奏,试过把True改成true报错了,哈哈哈!

讚喔! 每行後面不用「;」真的滿方便的啦

  ·  6 years ago 

学习了,拿好小板凳,做好笔记。^_^

發現代碼大神們都喜歡裝小學生,LOL!

  ·  6 years ago 

為什麼我當年學的是C++

成績是C的都是去學C++,已經給你跳兩級了。

👍👍👍👍👍👍👍👍💕

  ·  6 years ago Reveal Comment

果然進步了,簡化了,方便了,這麽快就有第二堂,看來可以一口氣學下來,期待🤓🤓

週末休息一下,讓我兒發個燒。>_<

WARNING - The message you received from @dulborah is a CONFIRMED SCAM!
DO NOT FOLLOW any instruction and DO NOT CLICK on any link in the comment!

For more information about this scam, read this post:
https://steemit.com/steemit/@arcange/phishing-site-reported-steem-link-premium
https://steemit.com/steemit/@arcange/anti-phishing-war-the-crooks-continue-their-bashing-campaign

If you find my work to protect you and the community valuable, please consider to upvote this warning or to vote for my witness.

这比c/c++简单多了

Posted using Partiko Android

真的阿,C++我不敢教,太複雜了。。。
Python真是程式界的救星

今天没更新呀!

Posted using Partiko Android

周末休息不學習啊,同學!😄

Posted using Partiko Android

哦哦。我照常上班,都忘了今天是周末。
祝你周末玩的开心,玩的愉快!

Posted using Partiko Android

SOOOOOOO SALLY CAN WAIT!!!!!!!!!!!!!