python大牛的成長之路

1.用and語句出現警告 如:elif weight > 60 and weight < 180: //需要簡寫 60<weight<180,不報警告

2.一行代碼過長出現警告 // 可以用\放到你想放的位置

3.名字問題出現警告 如:isDaShenMa

4.開始導入random工具包爲灰色 //可能因爲沒調用裏面的屬性

5.面試題
a = 2
b = 4
print(a and b) # 輸出b 打印a可以看成bool(a),a是有值的,所以bool(a)爲True,True and b的話需要看b的真假,才能判斷
print(a or b) # 輸出a 打印a可以看成bool(a),a是有值的,所以bool(a)爲True,True or b的話,a爲真,後面就不需要看了

6.ctrl + f10 run的時候應該注意是否是當前的.py文件

7.card_list.append(card_dict) /名片管理項目部分
del find_dict # 使用del只能刪除find_dict這個變量,並不能刪除card_list裏面的內容

8.for a in range(4): # 輸出0,1,2,3
print(a)
print(random.randint(0, 4)) # 可以隨機到4

9.test_tuple = (1, 2, 3)
test_dict = {“name”: “ss”}
print(“元祖的佔位符%s” % test_tuple) // 會報錯,列表或者字典用%s佔位可以

10.A類繼承自一個單例類B,A類自身的屬性、方法不能調用

11.類名:大駝峯命名法 函數/變量:數字.字母.下劃線

12.list列表除了pop有返回值,其他方法沒有返回值,所以不能直接打印方法,如:print(list.append)輸出爲None, print(str_list.pop(0)) pop方法輸出的是被刪除的那個元素

13.ubuntu中ifconfig -a只有lo的問題 // 在VMware上方編輯中虛擬網絡編輯器設置一下,然後重啓即可

14.IndentationError:縮進錯誤

15.unresolved reference 導入包的問題,未定參考 // 在下面使用模塊名拼寫錯誤

16.# 直接寫入出現 FileNotFoundError:
# [Errno 2] No such file or directory: ‘hm_05_h函數進階.py’
# // 原因是路徑拼寫有誤, file = open(file_name, “rb”),沒加上文件夾的名字,
# 應該是file = open(old_folder_name + “/” + file_name, “rb”)

17.PermissionError: [Errno 13] 權限不夠: '/usr/local/lib/python3.5/dist-packages/PyMySQL-0.8.1.dist-info’或者OSError: [Errno 13] 權限不夠: ‘/usr/bin/pip3’
//我要用pip安裝一些軟件如pymysql,用的是pip3 install pymysql,一直報上面的這種錯誤,遇到這種問題,可以在命令前加個sudo,在ubuntu下安裝要確保先有網

18.new_list = []
user_list = User.query.all()
# print(type(user_list))
for user in user_list:
# 這個字典放在外面定義會導致每次遍歷都會把字典更新掉
new_dict = dict()

    new_dict['name'] = user.name
    new_dict['email'] = user.email
    new_dict['password'] = user.password

    # print(new_dict)
    new_list.append(new_dict)

19.pycharm scanning files to index
// 網上的解決辦法:in pycharm, go to the “File” on the left top, then select “invalidate caches/restart…”, and press “invalidate and restart”. 貌似沒什麼用
// 最後解決辦法:重啓pycharm

20.ValueError: urls must start with a leading slash // 查看路由路徑或者創建路由時的url_prefix是否加斜槓/

21.字典中知識點
對列表去重,可用dict.fromkeys(列表).keys(),輸出dict_keys類型
dict().setdefault(key, value),相當於對字典中的鍵值進行修改,若key存在不修改

22.哈希 (hash)簡單理解:
Python 中內置有一個名字叫做 hash(o) 的函數
接收一個 不可變類型 的數據作爲 參數
返回 結果是一個 整數
哈希 是一種 算法,其作用就是提取數據的 特徵碼(指紋)
In [7]: hash((1))
Out[7]: 1

In [8]: hash((1,2))
Out[8]: 3713081631934410656

23.給一個類創建出來的對象,設置屬性,如
t1 = Test()
t1.name = ‘haha’
再用這個類創建一個對象,在調用name這個屬性,會報錯,
所以對象應該包含有哪些屬性,應該 封裝在類的內部

24.is 與 == 區別
is 用於判斷 兩個變量 引用對象是否爲同一個
== 用於判斷 引用變量的值 是否相等

25.單例設計模式
目的:讓類創建的對象,在系統中只有唯一的一個實例
每一次執行類名() 返回的對象,內存地址是相同的

class MusicPlayer(object):
    # 定義類屬性記錄單例對象引用
    instance = None
    def __new__(cls, *args, **kwargs):
        1. 判斷類屬性是否已經被賦值
        if cls.instance is None:
            cls.instance = super().__new__(cls)
        2. 返回類屬性的單例引用
        return cls.instance

26.math函數

  • math.floor(5.9) ----> 5 地板:向下取整
  • math.ceil(5.3) ----> 6 天花板:向上取整

27.map()函數

  • 接收兩個參數,一個是函數,一個是序列
  • : def f(x):
    …: return x**2
    map(f,[1,2,3])—>輸出map類型
    python3中需要用list()強轉下

28.reduce()函數

  • reduce函數被放到functools中(python3.7 from functools import reduce)
  • reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
  • 把結果繼續和序列的下一個元素做累積計算

29.filter()函數

  • 和map()類似,filter()也接收一個函數和一個序列
  • filter(lambda x:x%2==1,[1,2,3,4,5,6]) ---->求奇數,也需要list()強轉下

30.sorted()函數

  • 接收一個比較函數來實現自定義的排序
def reversed_cmp(x, y):
    if x > y:
        return -1
    if x < y:
        return 1
    return 0
- sorted([36, 5, 12, 9, 21], reversed_cmp)
[36, 21, 12, 9, 5]

31.Counter()函數

  • 一個簡單的計數器,例如,統計字符出現的個數
from collections import Counter
c = Counter()
for ch in 'programming':
c[ch] = c[ch] + 1
 c
Counter({'g': 2, 'm': 2, 'r': 2, 'a': 1, 'i': 1, 'o': 1, 'n': 1, 'p': 1})

31.對字典中的鍵(值)排序
利用sorted(iterable,key,reverse)函數進行排序,key是一個函數,用來選取參與比較的元素
對值比較,sorted()函數中i[0]–>i[1]

dict1 = {'name':'haha','age':18,'city':'深圳','tel':'123456'} 
In [31]: sorted(dict1.items(), key=lambda i:i[0])                               
Out[31]: [('age', 18), ('city', '深圳'), ('name', 'haha'), ('tel', '123456')]
In [35]: {x[0]:x[1] for x in l3}                                                
Out[35]: {'age': 18, 'city': '深圳', 'name': 'haha', 'tel': '123456'}

32.angular-js中的ng-table的問題:

  • 需求是想要修改之前的項目中的分頁,嘗試解決,發現ng-table好處是一次性獲取所有數據,然後自動進行分頁,未找到分頁對應的點擊事件,需要重新找分頁插件去做,最後的解決辦法是重新寫頁面代替ng-table
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章