iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 3
0
自我挑戰組

不要太認真學 Python! 之 我又重新報名了系列 第 3

不要太認真學 Python! - Day 6

[前情提要]

繼昨天「華氏溫度轉攝氏溫度」無法顯示結果這件事讓我想不透。
今天就繼續研究下去。
結果,我發現這真的是完全新手才會發生的事情吧(?
總之,就讓我們繼續看下去。


今天繼續研究這個程式「華氏溫度轉攝氏溫度」到底出了什麼毛病。
為什麼ATOM下方沒有出現顯示的結果呢?

就在我瘋狂拜谷歌大神以後,第一個想法是語法肯定有問題!

1.語法不能有中文?

因為教程的程式碼中間有穿插著中文,我這個菜逼八在研究的當下天真的以為肯定是因為教程不是全英文的關係。但是,既然眼觀眾多網站都是中文,也曾經看過程式碼裡面有中文那又怎麼可能顯現不出來呢?
https://ithelp.ithome.com.tw/upload/images/20190908/20120423y1IMRLBzCl.png

於是,我查到了不少教程,但是前提是不管刪掉多少中文,我仍然想要保留這一行程式中的中文字「fahrenheit=float(input("請輸入華氏溫度:")」因為想要讓中文使用者能輸入溫度。

好的,我又要來不及寫了,不過今天這篇應該寫得很快,因為弄懂了一些事情。一樣預計在 1:00 前寫完。


於是,我果斷把除了那一行以外所有中文字都簡體字都先刪掉,心裡想著可能那些只是註解,方便學習者理解的,其實並不是程式的一部份。

寫出了下面這樣的程式

#!/usr/bin/python
#coding:utf-8
f=float(input('請輸入華氏溫度:'))
c=(f-32)/1.8
print ('%.1f=%.1f'%(f,c))

結果下方還是沒有出現顯示結果。
https://ithelp.ithome.com.tw/upload/images/20190908/20120423G7j5rGzeIj.png

https://ithelp.ithome.com.tw/upload/images/20190908/20120423ToduKIySHV.png

好的,那可能真的不是中文的問題。

2.教程本身語法有問題?

人就是這樣,自己不行就怪別人)先怪先贏...
https://ithelp.ithome.com.tw/upload/images/20190908/20120423oYiZmQisAY.jpg

那肯定是教程有問題,可能白皮膚的人寫的比較對,我們華人哪懂程式呢?(▲ 僅腦內小惡魔的想法,博君一笑,勿認真。)

於是,開始找英文教程,沒想到有超級多寫法,就像數學排列組合一樣,只要合程式的邏輯就可以運行了。

於是,我找到了這個

def celsius_to_fahrenheit(celsius):
      fahr = (float(celsius) * 1.8) + 32
      return fahr
celsius=float(input('請輸入華氏溫度:'))
print (celsius_to_fahrenheit(celsius))

仔細看,似乎是蠻厲害的
洋人果然高端、洋氣、上檔次!
現在再回看,對當時的自己露出了這樣的眼神 唉
https://ithelp.ithome.com.tw/upload/images/20190908/20120423pxrVhmTJQ4.jpg

總之,我先自以為聰明的更改了這段程式碼。
變成了

#!/usr/bin/python
#coding:utf-8
def celsius_to_fahrenheit(celsius):
      fahr = (float(celsius) * 1.8) + 32
      return fahr

celsius =input("請輸入華氏溫度:")
print (celsius_to_fahrenheit(celsius))

下方依然完全沒有動靜。
但是重點來了!我發現這段程式寫的是「攝氏轉華氏」。

因此,我又更改了一下

#!/usr/bin/python
#coding:utf-8
def fahrenheit_to_celsius(fahrenheit):
      celsius=(fahrenheit-32)/1.8
      return celsius

fahrenheit =float(input('請輸入華氏溫度:'))
print (fahrenheit_to_celsius(fahrenheit))

結果依然靜悄悄的...

我仔細想想應該是歪國人沒有寫全稱,系統判別不出來。
因此把所有簡寫都改成英文。

#!/usr/bin/python
#coding:utf-8
def fahrenheit_to_celsius(fahrenheit):
      celsius=(fahrenheit-32)/1.8
      return celsius

fahrenheit=float(input('請輸入華氏溫度:'))
print (fahrenheit_to_celsius(fahrenheit))

結果還是沒有顯示結果。
https://ithelp.ithome.com.tw/upload/images/20190908/20120423uR9PekO83Y.jpg

3.根本不會顯示?

就在我已經快跑去找周公的時候,我想到一件事,會不會下方僅僅是除錯的欄位。
根本不會顯示出可以互動的成果。

我覺得這個答案最有可能,但是如果無法顯示出成果,那肯定有其他方式可以顯示。

可是真的太想睡了,明天繼續尋找可顯示的方式。

https://ithelp.ithome.com.tw/upload/images/20190908/20120423fbCzQqCqYJ.jpg

好啦,其實很想學,但是真的太想睡了。

睡前分享一下這幾天的參賽心得。

我覺得在台灣還是雖然看起來程式很普及,但是許多人對於程式學習者還是有錯誤的認知。

以我參加30天挑戰賽來說,周圍的人都會跟我說那不是一下子就可以寫完的嗎?

他們認為寫程式只是坐在電腦前打打字就可以了,或是看個教程就應該能輕鬆理解的。

另外,在職務上經常需要接觸前後台的維護,工作中也有讓我覺得很震驚的事情。

對網路管理或是程式設計等觀念薄弱的人,竟然超乎想像的多。

我自己相當清楚自己的程式觀念薄弱,但是職務周遭的許多人卻覺得我已經很厲害了。

同時他們也覺得程式可以靠自己研究出來,不用花太多時間就可以學會。常常會聽到有人對我說「你就研究一下,看看可不可行。谷歌一下應該很容易就可以做出那個系統了。」
https://ithelp.ithome.com.tw/upload/images/20190908/20120423mVeVjEnQEz.jpg

近日不知道在哪裡看到有人說,只要有心一個高中生也可以很輕鬆的自學程式。

我認為不是這樣的,撇除天份不談,程式應用涉及的層面相當廣泛,光是不同功能,不同作業系統,前後台等等,彼此環環相扣,因此對於自學者來說,這學習的歷程是相當耗時的。

要踏入前請詳閱公開說明書,啊不對,是請審慎考慮是否要開始程式學習的歷程,因為這需要強大的熱忱。

另外,在尋找教程的時候發現,台灣相對於其他國家來說,對於這種基礎為零的初學者來說,所提供的線上免費的系統化教程和線上學習社團真的不算多,因此我自己在學習的過程大多都仰賴大陸或美國。我覺得這是學習起來比較費力的原因,也是台灣還需要努力的地方。

安西教練,我想學好 Python 啊啊啊啊啊啊)半夜內心的吶喊
https://ithelp.ithome.com.tw/upload/images/20190908/20120423mJ4RGu7o1K.png

含淚收工。


不要太認真學 Python! - Day 5
https://ithelp.ithome.com.tw/articles/10214041


上一篇
不要太認真學 Python! - Day 5
下一篇
不要太認真學 Python! - Day 7
系列文
不要太認真學 Python! 之 我又重新報名了31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1

你可以上python online測試,我複製你歪國人的那段,他很正常第執行了...

自己寫的部分是字串問題,在python3裡面,你可以用format試試

  • print ('{:.1f}={:.1f}'.format(f,c))
RGB iT邦新手 5 級 ‧ 2019-09-08 02:07:53 檢舉

對吼,我完全沒有想到可以到 python online 執行。
你說這個我有看到類似寫法,可是我還沒弄懂那串文字到底是什麼意思,還要再花點時間研究研究。

真的感謝你的建議和幫忙!!!

我要留言

立即登入留言