乙個計算機必須能做4件事:
接受輸入
產生輸出
儲存資料
執行計算
程式中的變數存放在記憶體中,可以快速的進行訪問,而像資料檔案這樣的資料一般很大存放在硬碟中,訪問速度很慢。下面顯示的是記憶體中的儲存情況,乙個格仔是乙個byte,發現短整型資料佔乙個byte,strings的每乙個字元佔乙個byte。利用id(my_var)可以獲取到該變數的記憶體位址。'''
前面提到的乙個短整型資料佔乙個byte,乙個字串的每乙個字元佔乙個記憶體,這是針對低階程式語言,比如c,它與記憶體的顯示的進行互動,當可以直接申請乙個長度的byte給乙個變數,這樣對計算機系統抽象化不夠好。而python這樣的高階程式語言,它能夠快速輕鬆的表達邏輯,那麼這種方便也帶來了一些代價,就是記憶體的利用率沒有c的高,python的strings和interger都儲存為str何int類的物件。低階程式語言有精確的記憶體管理以及在機器級別的優化。高階程式語言對於做任務來說很方便,因為他不需要知道內部優化,因為沒有記憶體的限制。對於很多任務來說,記憶體並不是最需要關心的事情,高階程式語言需要最大限度地提高開發人員的生產力。
很明顯,python的**更為簡單,而c首先**很長,其次還需要預先獲取乙個內來確保這個記憶體大小合適,而在高階語言中是不需要關心這個問題的。import sys
my_int = 200
size_of_my_int = sys.getsizeof(my_int)
print(size_of_my_int)
int1 = 10
int2 = 100000
str1 = "hello"
str2 = "hi"
int_diff = sys.getsizeof(int1) - sys.getsizeof(int2)
print(int_diff)
str_diff = sys.getsizeof(str1) - sys.getsizeof(str2)
print(str_diff)
'''2803
'''
f = open("list.csv", "r")
list = list(csv.reader(f))
import time
import csv
before_file_read = time.clock()
f = open("list.csv", "r")
list_from_file = list(csv.reader(f))
after_file_read = time.clock()
file_time = after_file_read - before_file_read
print(file_time)
before_string_parse = time.clock()
list_from_string = "1,2,3,4,5,6,7,8,9,10".split(",")
after_string_parse = time.clock()
ram_time = after_string_parse - before_string_parse
print(ram_time)
'''0.00018099999999998673
4.700000000013027e-05
'''
python資料儲存
csv以逗號分隔,但是我發現我寫的檔案裡出現多列跟逗號沒關係,就算去除了逗號也還是一樣。usr bin env python coding utf8 time 2019 5 18 13 39 author 17976 file piplines.py description import re im...
python資料儲存
列表是一種儲存大量資料的儲存模型。列表具有索引的概念,可以通過索引操作列表中的資料。列表中的資料可以進行新增 刪除 修改 查詢等操作。建立列表 變數名 資料1,資料2,獲取列表資料 變數名 索引 修改列表資料 變數名 索引 值 元組是一種儲存固定資料的儲存模型。元組具有索引的概念,可以通過索引操作元...
python爬蟲資料儲存JSON儲存
encoding utf 8 import re import requests import json from requests.exceptions import requestexception def get open page url try 請求頭 headers 使用localhos...