發表文章

零基礎入門學習python_013_筆記及作業_元組

元組與列表相似,最大的差別在於列表可修改,而元組「基本上」不能修改。 基本的使用方法包括切片、索引等都和列表相同。 元組的成立: tuple1 = (元素1, 元素2, 元素3) type(tuple1) = class 'tuple' tuple2 = (元素1) type(tuple2) = class int/str/float...總之不是tuple tuple3 = 元素1, type(tuple3) = class 'tuple' 由此可見對元組來說,逗號比括號更有決定性的影響。 元組的修改: tuple1 = (1, 2, 4, 5) tuple1 = tuple1[:2] + (3,) + tuple[2:] tuple = (1,2,3,4,5) 利用切片的方式強行做到修改。

零基礎入門學習python_012_筆記及作業_列表_內建函數

列表: 拼接:list1 + list2 = list[1+2] 重複:list1 *2 列表內元素計數:list.count(元素) 列表內元素位置索引:list.index(元素, (起點, 終點)) 列表翻轉:list.reverse() 列表排序:list.sort(),默認由小排到大 *sort有三種參數:func指定排序算法;key排序算法所搭配的關鍵字;reverse照大小排序,預設為False。所以若要由大排序到小:list.sort(reverse=True)即可 作業1:將下邊這個列表的'小甲魚'修改為'小魷魚' list1 = [1, [1, 2, ['小甲魚']], 3, 5, 8, 13, 18] ==============================以下為程式碼============================== list1[1][2][0] = '小魷魚' ======================================================================== 作業2:請先在 IDLE 中獲得下邊列表的結果,並按照上方例子把列表推導式還原出來。 >>> list1 [(0, 1), (0, 3), (0, 5), (0, 7), (0, 9), (2, 1), (2, 3), (2, 5), (2, 7), (2, 9), (4, 1), (4, 3), (4, 5), (4, 7), (4, 9), (6, 1), (6, 3), (6, 5), (6, 7), (6, 9), (8, 1), (8, 3), (8, 5), (8, 7), (8, 9)] 小提示: >>> list1 = [x**2 for x in range(10)] >>> list1 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 相當於 list1 = [] for x in range(10):     list1.append(x**2) ==============...

零基礎入門學習python_010&011筆記及作業_列表_基本使用

圖片
列表: 添加元素: 1. append + 元素 2. extend + 列表 3. insert + 位置及元素 刪除元素: 1. remove + 元素名 2. del list[位置] or del list 3. pop + 位置,若不加上位置,則預設為最後一個元素 ※pop的功用為「取出」,   所以若temp = list.pop(),則temp即成為變數,其值即為取出之值。 列表切片: list[起始位置:終點位置],起始位置及終點位置都可以省略。 列表逆排序:sort 給定列表: member = [' 小甲魚 ', 88, ' 黑夜 ', 90, ' 迷途 ', 85, ' 怡靜 ', 90, ' 秋舞斜陽 ', 88] 作業1:利用 for 迴圈列印上邊 member 清單中的每個內容 ==============================以下為程式碼============================== member = ['小甲魚', 88, '黑夜', 90, '迷途', 85, '怡靜', 90, '秋舞斜陽', 88] for each in member:     print(each) ======================================================================= 作業2:上一題列印的樣式不是很好,能不能修改一下代碼列印成下圖的樣式呢? 小技巧提示: 列表表示方式 list = ['a', 'b', 'c', 'd'] list[0] = 'a' len(list) = 4 #有a, b, c, d四個因子 ==============================以下為程式碼============================== #設定列表member及其列表因子 member = ['小甲魚', 88, ...

哈佛大學計算機通識課程:CS50

圖片
還記得我在第二篇文章內有提到一篇程式自學的文章, 給了我一些啟發,所以擬定了自學程式語言的計畫。 在該篇文章的結尾處, 介紹了一門課程:CS50 傳送門在此 根據文章介紹, CS50可以直接上edx去申請。 edx網址: https://courses.edx.org/ 課程名稱可以搜尋: Introduction to Computer Science 或是CS50 就可以找到了。 在edx上修課的話,可以選擇領取修課證書, 這是要付費的,今年(2017)好像要90美金, 不過修課完畢之後可以把證書連結到LinkedIn, 是不知道這樣履歷看起來有沒有比較厲害就是了XD 如果只是單純想要學習課程內容, 對證書沒有渴求的話, 選擇免費的旁聽也是可以完整修課, 就看各自的需要。 CS50原則上全英文授課, 影片有開放英文字幕。 擔心英文程度跟不上原文教學的話(我就很擔心這一點,老師授課說話速度超快的), 我提供兩個建議方案: 1. edx + youtube + Lidemy 鋰學院 算是比較原汁原味的組合技。 edx的課程頁面長這樣: 左邊是課程影片,右邊是逐字稿。 比較認真的上課方式是採用英文聽力 + 英文字幕, 看不懂的地方就從旁邊的逐字稿丟google翻譯去查詢。 如果不想這麼累,那其實這隻影片既然有打上youtube的標誌, 就表示影片也有放到youtube上, 我們可以直接點選youtube標誌開個新頁面, 連結到youtube上面的同一支影片去觀看。 youtube有自動翻譯字幕的功能, 應該不需要特別說明如何使用了吧? 雖然自動翻譯不一定那麼流暢, 但還是可以看懂就是了。 除了透過字幕了解課程內容之外, Lidemy 鋰學院 是啟發我程式自學的那篇文章的作者, 因為自己的興趣所以開設的線上課程網站, 他為了要推廣CS50, 所以做了一系列的「CS50重點整理及導讀」, 搭配edx應該會讓大家可以更容易了解CS50到底在上些什麼。 不知道是否CS50今年沒有開課, 今年的e...

零基礎入門學習python_009筆記及作業_分支與循環_猜數字小遊戲V3.2

作業1:設計一個驗證使用者密碼程式,使用者只有三次機會輸入錯誤,不過如果使用者輸入的內容中包含”*”則不計算在內。 ===========================以下為第一次程式碼=========================== temp = input('請設定您的密碼:') count = 3 while True:     password = input('請輸入您的密碼:')     if count == 0:         print('錯誤太多次,程式結束')         break     elif password == temp:         print('密碼驗證成功!')         break     else:         if '*' in password:             print('輸入錯誤!')         else:             count = count -1             print('輸入錯誤,還剩',count,'次!') ======================================================================= 因為count = count -1放在第三段判斷式內, 所以會造成在count = 3的時候就先運作判斷式, 直到都不符合判斷式時才計算count -1,變成: 第一輪迴圈: count = 3   ->   輸入密碼   ->   判斷是否count =...

零基礎入門學習python_007&008筆記及作業_分支與循環_三元運算子_猜數字小遊戲V3.1

三元運算子: ====================例(一)==================== if x < y:     small = x else:     small = y 等同於:small = x if x < y else y ====================例(二)==================== if 'a'=='a':     x=True else :     x=False 等同於:x=True if 'a'=='a' else False ====================例(二)==================== if x < y:     small = x     if z < small:         small = z elif y < z:     small = y else:     small = z 等同於:small = x if (x < y and x < z) else (y if y < z else z) 作業1:按照100分制,90分以上成績為A,80到90為B,60到80為C,60以下為D,寫一個程式,當使用者輸入分數,自動轉換為ABCD的形式列印。根據一般的統計規律,平均成績一般集中在 70~80 分之間,請根據統計規律,盡量改進程式以提高效率。 ==============================以下為程式碼============================== score = int(input(' 請輸入一個分數: ')) if 80 > score >= 60:     print('C') elif 90 > score >= 80:     print('B') elif 60 > score >= 0: ...

零基礎入門學習python_006筆記及作業_常用操作符

運算符: 加「+」、減「-」、乘「*」、除「/」、只取餘數「%」 地板除法(答案只會產生整數,小數點以下捨去)「//」 冪運算(指數)「**」 以下表格列出了從最高到最低優先順序的所有運算符: 運算符 描述 ** 指數  ( 最高優先順序 ) ~ + - 按位翻轉 、 一元加號和減號 ( 最後兩個的方法名為  +@  和  -@) * / % // 乘、除、取模和取整除 + - 加法減法 >> << 右移、左移運算符 & 位  'AND' ^ | 位運算符 <= < > >= 比較運算符 <> == != 等於運算符 = %= /= //= -= += *= **= 設定運算符 is, is not 身份運算符 in, not in 成員運算符 not, or, and 邏輯運算符 根據以上規則可以結論出特殊規則: -3 ** 2 = -(3 ** 2) = -9 此時-3的「-」會被python看成「減號」,所以優先執行指數計算,導致答案為「-9」; (-3) ** 2 = 9 此時則同一般計算。 作業1:請說出答案:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9 ==============================解答及說明============================== 答案:4 說明: 1. 運算符的優先順序:not > and > or,所以原本的式子可以寫成: (not 1) or (0 and 1) or (3 and 4) or (5 and 6) or (7 and 8 and 9) 2. 0相當於False,其他數字相等於True。所以: not 1 = not True = False = 0 0 and 1 = False and True = False = 0 所以原本的式子等於: 0 or 0 or 4 or 6 or 9 3. True a...