學一些python:
1, 代碼中帶有中文的需要在頭部加上# coding=utf-8
2, python 創建變量不需要聲明變量類型, 直接賦值就可以了, 還可以 a, b, c = 1, 2, "henry"; 這樣
3, 可以刪除一個創建的變量, 例如 a=100, del a; 此時a就不可以用了
4, 截取字符串, s="henry", s=s[1:3] print(s) 輸出 en; s[1] 則表示第2個字符, s[1:] 則表示從第2 個開始以後所有的
5, List 類型是[1,2,3,4,5,"henry"] 這種方式創建, tuple類型是(1,2,3,4,"henry") 這樣, 元組類型是不可以修改內部數據的,
6, ** 是指數運算, 5**3 就相當於是5的3次方
7, / 和// 都是得到商, 但是/是得到真實的接過, // 是如果得到小數會向下取整;
8, python中沒有, !, &,| 變成了, not, and, or
9, is 用於判斷兩個對象的地址是否相等
10, id 函數用於獲取對象的地址
11, 沒有else if 改成了elif, 沒有switch 語句
12, python 中的代碼塊是通過 空格或者tab 來確定的, 同樣的
13, 還有while else 的寫法, 同理也有for else 的寫法, 當循環正常結束, 而不是通過break 結束的時候會執行
14, 沒有for(i=0;i<10;i++) 這種寫法, 變成了 for i in range(0,10); range()函數用於創建一個迭代序列, 從0到10, 包左不包右
15, 使用def 定義一個函數, def love(who):
print who;
16, 函數不可以重載, 後面的會直接覆蓋前面的
17, 在Python 中, 數字也成了, 不可變的了, 跟字符串一樣, 也就是說, a=10; a=20, 調用a=10之後, 10的那個地址就被丟棄了, 然後創建了一個新的地址, 設置值爲20, a1=10, b=10, a和b 指向的是同一塊內存, 所以a is b 是返回true 的
18, def print(name, value) print(value="huy",name="may") 這樣也是可以的
19, 跟c# 及ts 一樣都可以設置默認參數, def print(name="henry");
20, 可以聲明參數不定長的方法
21, 跟php 類似 局部使用全局變量可以使用global 關鍵字
22, 引入另一個文件, 可以用import lib. 然後可以調用lib.love() 這樣;
23, 還可以 from lib import love. 之引入lib 模塊下的love 方法
24, 如果是要引用另一個文件夾裏面的代碼, 那個文件夾必須要有一個文件名叫做__init__.py的文件
25, 異常是try except else
26, python的構造函數是, def __init__(self,...)
27,一個標準的python類
class Animal:
name = ""
def __init__(self, name):
self.name = name;
print "創建了一個對象"
def eat(self, sth):
print "i am" + self.name + "i eat " + sth;
28, 創建對象, 不需要用new 直接Animal("狗") 就好了
29, python的對象可以跟js 一樣自由的添加屬性, 也可以刪掉屬性用del, 但是刪除之後不可以訪問了, 直接報錯. js 是隻會得到undefined 而已
30, 析構函數def __del__(self):
31, 子類調用父類構造函數
Animal.__init__(self,"狗"); #Animal 是父類
__開頭是是私有屬性, 不能直接訪問
_開頭的是protected 的屬性
32, 參數的強制類型轉換, def fun(arg:list); 意思就是arg 必須是list類型的
33, python3.7 安裝pyinstaller的方式, 首先是要在github上下載https://github.com/pyinstaller/pyinstaller
直接用pip install pyinstaller 是沒有用的, 下載直接拷貝到本地, 在set_up.py 這個文件那裏 執行
pyhon set_up.py install 就好了. 如果出現pefile的問題, 那就 pip install pefile.
34, 如果是引入一個文件的話, 就可以用from 文件 import *.
如果是引入一個包, 也就是一個單獨的文件夾的話, 就只能是from 包 import 文件
35, 一個函數如果返回的是一個是元組的話, 那麼可以這樣接收. 例如一個函數返回值是(1,2,3);
a,b,c= fun(); 那麼a=1,b=2,c=3
36, request.urlopen()返回的對象是可以通過get("Content-Length") 獲取返回的長度.
37, 用python 下載ts視頻速度特別慢, 改用c#下載會快很多, 可以用python調用c#
通過 os.popen("命令") 這個方法可以獲取到真正有意義的返回值, 在c#中通過Console.Write("1") 輸出結果, 那麼前面的命令就可以接收這個結果.