在Python这条路上踩过的坑(1)
(1)如果中文字符串在Python環境下遇到 UnicodeDecodeError,這是因為.py文件保存的格式有問題??梢栽诘谝恍刑砑幼⑨?/p> # -*- coding: utf-8 -*-
(2)and 和 or 運算的一條重要法則:短路計算。Python 解釋器在做布爾運算時,只要能提前確定計算結果,它就不會往后算了,直接返回結果
(3)因為()既可以表示 tuple,又可以作為括號表示運算時的優先級,結果 (1) 被 Python 解釋器計算出結果 1,導致我們得到的不是 tuple,而是整數 1。
正是因為用()定義單元素的tuple有歧義,所以 Python 規定,單元素 tuple 要多加一個逗號“,”,這樣就避免了歧義:
>>> t = (1,) >>> print t (1,)Python在打印單元素tuple時,也自動添加了一個“,”,為了更明確地告訴你這是一個tuple。
(4)注意:Python 代碼的縮進規則。具有相同縮進的代碼被視為代碼塊,上面的3,4行 print 語句就構成一個代碼塊(但不包括第5行的 print )。如果 if 語句判斷為 True,就會執行這個代碼塊。
縮進請嚴格按照 Python 的習慣寫法:4個空格,不要使用 Tab,更不要混合 Tab 和空格,否則很容易造成因為縮進引起的語法錯誤。
注意: if 語句后接表達式,然后用:表示代碼塊開始。
如果你在 Python 交互環境下敲代碼,還要特別留意縮進,并且退出縮進需要多敲一行回車
(5)冪運算**
(6)set 持有一系列元素,這一點和 list 很像(set 和 list 存的都是元素),但是 set 的元素沒有重復,而且是無序的,這點和 dict 的 key 很像(dict 的 key 也是無序且不可重復的)。
(7)set 的內部結構和 dict 很像,唯一區別是不存儲 value,因此,判斷一個元素是否在 set 中速度很快。
set 存儲的元素和 dict 的 key 類似,必須是不變對象,因此,任何可變對象是不能放入 set 中的。
最后,set 存儲的元素也是沒有順序的。
總結
以上是生活随笔為你收集整理的在Python这条路上踩过的坑(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剑指offer(Java实现) 平衡二叉
- 下一篇: 剑指offer(Java实现) 求1+2