2:43:41 剪刀石頭布 在第二個while 迴圈裡 少打一個 player= ,不然如果輸入錯誤的答案的話會一直被困在迴圈裡出不來。 while running: player = input("請輸入剪刀,石頭,布:") while player not in options: player = input("輸入錯誤,請重新輸入剪刀,石頭,布:")
很棒的python教學! 幫您小更正一下 5:40:27 談到的 zip 物件轉成列表、字典的問題 因為 zip 物件是一個迭代器,所生成的元素序列只能被遍歷一次, 所以在 for i in users: print(i) 之後,zip 物件中的元素就被消耗掉了,變成空的物件。 所以這時候要再將其轉成列表,就會是空的列表了。 所以應該先把上面兩行 remark ,就可以轉成列表。 當然,是一定無法轉成字典的,因為字典只能有 key 跟 value 兩個值
請問為什麼 Traceback (most recent call last): File "/Users/chihlunghsieh/PycharmProjects/教學/list_tuple_set.py", line 6, in fruits.append("芭樂") AttributeError: 'tuple' object has no attribute 'append' 會是這樣
請問26集的 def get dice number(number): 的def是什麼意思呢? for i in rang(5): 跟下一句的(5)是因為陣列0開始所以數字是5嗎?
@CodeShiba8 ай бұрын
這段程式碼中的 `def get_dice_number(number):` 是定義一個函式,其中 `number` 是傳入函式的參數。 至於 `for i in rang(5):` 這部分應該是個錯誤,正確的寫法應該是 `for i in range(5):`,代表一個從 0 到 4 的迴圈(總共迭代五次)。 `rang(5)` 中的 `(5)` 是 `range` 函式的參數,這指定迴圈要跑五次。這裡的 `range(5)` 會生成一個序列 `[0, 1, 2, 3, 4]`,`for` 迴圈會按順序取出這個序列中的每個數字來進行迴圈內的程式碼塊。
@risbo16333 ай бұрын
你好,請問 3:35:22 我嘗試執行else: 卻發現即使我輸入資料無誤, else 也會執行, 像這樣 try: x = int(input('please enter an int')) y = int(input('please enter anotehr int')) print(x/y) except ValueError: print('please enter the correct information') except ZeroDivisionError: print('please dont input 0 ') else: print('hi') run code: please enter an int: 5 please enter anotehr int: 2 2.5 hi 請問是為什麼呢?
@CodeShiba3 ай бұрын
你好!這個情況其實是預期中的行為。當你使用 `try`、`except` 和 `else` 區塊時,`else` 區塊的作用是當 `try` 區塊中的程式碼沒有引發任何異常(也就是說沒有進入到 `except` 區塊)時執行。 讓我們仔細看看你的程式碼: ```python try: x = int(input('please enter an int')) y = int(input('please enter another int')) print(x / y) except ValueError: print('please enter the correct information') except ZeroDivisionError: print('please dont input 0') else: print('hi') ``` 這段程式碼的執行流程是這樣的: 1. `try` 區塊中的程式碼被執行。 2. 如果 `try` 區塊中的程式碼引發了 `ValueError` 或 `ZeroDivisionError` 異常,對應的 `except` 區塊會被執行。 3. 如果 `try` 區塊中的程式碼沒有引發任何異常,那麼 `else` 區塊中的程式碼就會被執行。 在你的例子中,你輸入了兩個正確的整數 5 和 2,然後程式正確地計算並輸出了結果 2.5。因為 `try` 區塊中的程式碼沒有引發任何異常,所以接下來會執行 `else` 區塊,輸出 `hi`。 如果你希望 `else` 區塊中的程式碼在特定條件下才執行,可能需要在 `try` 區塊或其他地方添加額外的邏輯來控制。 希望這個解釋能幫助你理解為什麼 `else` 區塊會被執行!
@risbo16333 ай бұрын
@@CodeShiba 感謝你詳細回答! 我錯誤理解為 else 的作用是,當程式出現except “以外“的未知錯誤時,就會執行的一項程式碼 如果當 `try` 區塊中的程式碼沒有引發任何異常時執行else,那我直接打在print(x/y)的下面不就行了嗎? try: x = int(input('please enter an int')) y = int(input('please enter another int')) print(x / y) print(hi) 最後我希望可以嘗試製做一個推測及香港賽馬機率的程式,功能大概如下(先不管最後會不會中😂) 1. 自動於網站內爬取賽馬資訊 2. 使用我預設的公式運算勝出機率 3. 跟據以上結果計算值博率 4. 套用以上公式回測過往賽馬結果,以改善參數 請問python 19小時的課程內容可以幫助我處理以上方向的事情嗎?還是我應該學習另一種語言 因為我不太清楚每種語言能做到的事情,感謝!
第55集字典推倒式 我是這麼照著打的 grades = [40,68,48,61,29] pass = [g for g in grades if g >= 60] print(pass) 但顯示是錯誤耶pass = [g for g in grades if g >= 60] ^ SyntaxError: invalid syntax 是要寫簡單點 條件放前面 後面放for g in grades嗎
@CodeShiba4 ай бұрын
哦,這裡出現 `SyntaxError` 的問題其實不是因為字典推導式的結構問題,而是因為 `pass` 是 Python 裡的保留字。在 Python 中,`pass` 是用來定義一個無操作的語句,所以不能用作變數名稱。 要解決這個問題,你只需要把變數名稱改成其他的名字,比如 `passed` 或者 `pass_grades` 之類的。修改後的程式碼看起來會像這樣: ```python grades = [40, 68, 48, 61, 29] pass_grades = [g for g in grades if g >= 60] print(pass_grades) ``` 這樣就沒有語法錯誤了,程式會正常運作,並且會輸出所有大於或等於 60 分的成績。希望這樣可以幫到你!