- 將文本打開讀取文本內八位的十六進制數值,進行分割,將其轉換爲十進制數值並輸出,並繪圖。
import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標籤 plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號 file_object = open('thefile.txt') try: file_context = file_object.read() finally: file_object.close() d =file_context.split(' ') print (d) data =list() for c in d: if (c != '\n') & (c != ''): data.append(int(c,16)) print (data) x = range(0,len(data))#傳入兩個參數時,第一個參數作爲起始位,第二個參數爲結束位,第三個參數是步進值(默認爲1) y = data plt.xlabel('時間') plt.ylabel('deal_car') plt.plot(x,y,'bo') #添加'o'則變爲散點圖,否則各點自動連線 plt.show()
- 從文本數據中依據數據幀頭提取轉換四字節16進制數據,轉換爲十進制進行繪製表。
import ctypes import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標籤 plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號 fp = open('test.txt') content = fp.read() frame_state = 0 d = content.split(' ') data = list() while len(d): #必須保證文本內最後的光標緊跟着數據,不能有空格,否者此代碼會卡死 if(frame_state == 0): if(len(d) >= 3): if (d[0] == 'FF') and (d[1] == 'A5') and (d[2] == '5A'): frame_state = 1 del d[0:3] else: del d[0] frame_state = 0 elif (len(d) >= 4): dd = d[0]+d[1]+d[2]+d[3] print(dd) data.append(int(dd,16)- 4294967296)#若是負數則需要減去2的32次方,正數則不需要 frame_state += 1 if(frame_state == 11): frame_state = 0 del d[0:4] else: break print (data) x = range(0,len(data))#傳入兩個參數時,第一個參數作爲起始位,第二個參數爲結束位,第三個參數是步進值(默認爲1) y = data plt.xlabel('時間') plt.ylabel('deal_car') plt.plot(x,y,'b*') #添加'o'則變爲散點圖,否則各點自動連線 plt.show()
- 單個數值進制轉換
ec = int(input("輸入數字:")) print("十進制數爲:", dec) print("轉換爲二進制爲:", bin(dec)) print("轉換爲八進制爲:", oct(dec)) print("轉換爲十六進制爲:", hex(dec)) print(int('110',2)) #把二進制的110輸出成十進制
- 負整數十進制轉換到十六進制
def tohex(val, nbits): return hex((val + (1 << nbits)) % (1 << nbits)) print (tohex(-28,32)) print (tohex(28,32))
- 補碼
#求補碼(1字節)代表的負數 第一步:把這個補碼當作無符號數來讀取,得到結果是255 第二步:把第一步的結果減去256,得到的差就是所求的負數。 這裏是1個字節,減去的應該是2的8次方, 如果是2個字節,減去的應該是2的16次方, 如果是4個字節,減去的應該是2的32次方。 #求負數(1字節)的補碼 第一步:負數加上256 -128+256=128 第二步:把上面的結果用二進制表示1000 0000這就是負數的補碼
- 整型與浮點型的轉換
(1)將4個字節的十進制轉換成一個float數值
(2)將4個字節的十六進制轉換成一個float數值[負數也適用]import struct x = [67, 20, 121, 71] a =struct.unpack('<f', struct.pack('4b', *x))[0]
(3)一個float變量轉成內存的4個字節十進制from ctypes import * def convert(s): #將十六進制轉換爲浮點數 i = int(s, 16) cp = pointer(c_int(i)) fp = cast(cp, POINTER(c_float)) return fp.contents.value print (convert("41499499")) #或者 import ctypes def convert(s): #將十六進制轉換爲浮點數 i = int(s, 16) # convert from hex to a Python int cp = ctypes.pointer(ctypes.c_int(i)) # make this into a c integer fp = ctypes.cast(cp, ctypes.POINTER(ctypes.c_float)) # cast the int pointer to a float pointer return fp.contents.value # dereference the pointer, get the float print (convert("41499499")) # returns 1.88999996185302734375E1
(4)將float變量轉換爲十六進制import struct byte = struct.pack('f', 523432.523424) ls = [i for i in byte] print(ls)
import struct byte = struct.pack('f', 13.4 ) byte = byte[: : -1] #反序 data =list() for i in byte: data.append(hex(i)) print (data)
- struct模塊打包二進制數據
f=open('s_data.bin','wb') import struct s=b'Allen' #/字符串前面b不可缺少 data=struct.pack('>i5si',7,s,8) print(data) f.write(data) f.close() a,b,c=struct.unpack('>i5si',data) print(a,b,c) b=b.decode('utf-8')#要將bytes字符串轉換爲unicode字符串 print(b) f2=open('b.txt','w') f2.write(b) f2.close()
- 字符轉ascii碼
pw = input(':')#輸入需轉換爲ascii碼的字符串 temp = [] #創建加密字符空列表 for i in pw: #字符轉ascii碼(因爲不能直接將字符串直接轉換爲ascii碼,所以只能一個一個轉換) x = hex(ord(i)) #將pw中的每一個字符轉換爲ascii碼[轉換爲8進制改爲oct,16進制hex] temp.append(x) #將每一個字符添加到列表中 print(temp) #ASCII輸出 print('%s '*len(temp)%tuple(temp))#字符串輸出
- 將一個字符串轉換爲相應的_進制串
def str_to_hex(s): return ' '.join([hex(ord(c)).replace('0x', '') for c in s]) str_to_hex("hello") def hex_to_str(s): return ''.join([chr(i) for i in [int(b, 16) for b in s.split(' ')]]) def str_to_bin(s): return ' '.join([bin(ord(c)).replace('0b', '') for c in s]) def bin_to_str(s): return ''.join([chr(i) for i in [int(b, 2) for b in s.split(' ')]])
- 將一個字符串轉換爲相應的_進制串
#從界面輸入框中獲取字符 data = input.get() #刪除所有空格會轉換爲list模式 data1 = data.split( ) #從list模式—>str模式 data2 = ''.join(data1) #若想str模式——>list模式 list = list(str名) #在str模式下可以將字符按照十六進制格式發送:cd -----> 0xcd binascii.a2b_hex(senddata2) #串口將十六進制格式的字符發送出 N = self.ser.write(binascii.a2b_hex(senddata2)) N爲發送字符數目
- Tkinter做界面之顏色
#FFC0CB—— Pink 粉紅
#DC143C—— Crimson 深紅/猩紅
#FFF0F5——LavenderBlush 淡紫紅
#DB7093——PaleVioletRed 弱紫羅蘭紅
#FF69B4——HotPink 熱情的粉紅
#FF1493——DeepPink 深粉紅
#C71585——MediumVioletRed 中紫羅蘭紅
#DA70D6——Orchid 暗紫色/蘭花紫
#D8BFD8——Thistle 薊色
#DDA0DD——Plum 洋李色/李子紫
#EE82EE——Violet 紫羅蘭
#FF00FF——Magenta 洋紅/玫瑰紅
#FF00FF——Fuchsia 紫紅/燈籠海棠
#8B008B——DarkMagenta 深洋紅
#800080——Purple 紫色
#BA55D3——MediumOrchid 中蘭花紫
#9400D3——DarkViolet 暗紫羅蘭
#9932CC——DarkOrchid 暗蘭花紫
#4B0082——Indigo 靛青/紫蘭色
#8A2BE2——BlueViolet 藍紫羅蘭
#9370DB——MediumPurple 中紫色
#7B68EE——MediumSlateBlue 中暗藍色/中板巖藍
#6A5ACD——SlateBlue 石藍色/板岩藍
#483D8B——DarkSlateBlue 暗灰藍色/暗板岩藍
#E6E6FA——Lavender 淡紫色/熏衣草淡紫
#F8F8FF——GhostWhite 幽靈白
#0000FF——Blue 純藍
#0000CD——MediumBlue 中藍色
#191970——MidnightBlue 午夜藍
#00008B——DarkBlue 暗藍色
#000080——Navy 海軍藍
#4169E1——RoyalBlue 皇家藍/寶藍
#6495ED——CornflowerBlue 矢車菊藍
#B0C4DE——LightSteelBlue 亮鋼藍
#778899——LightSlateGray 亮藍灰/亮石板灰
#708090——SlateGray 灰石色/石板灰
#1E90FF——DodgerBlue 閃蘭色/道奇藍
#F0F8FF——AliceBlue 愛麗絲藍
#4682B4——SteelBlue 鋼藍/鐵青
#87CEFA——LightSkyBlue 亮天藍色
#87CEEB——SkyBlue 天藍色
#00BFFF——DeepSkyBlue 深天藍
#ADD8E6——LightBlue 亮藍
#B0E0E6——PowderBlue 粉藍色/火藥青
#5F9EA0——CadetBlue 軍蘭色/軍服藍
#F0FFFF——Azure 蔚藍色
#E0FFFF—— LightCyan 淡青色
#AFEEEE——PaleTurquoise 弱綠寶石
#00FFFF——Cyan 青色
#00FFFF——Aqua 淺綠色/水色
#00CED1——DarkTurquoise 暗綠寶石
#2F4F4F——DarkSlateGray 暗瓦灰色/暗石板灰
#008B8B——DarkCyan 暗青色
#008080——Teal 水鴨色
#48D1CC——MediumTurquoise 中綠寶石
#20B2AA——LightSeaGreen 淺海洋綠
#40E0D0——Turquoise 綠寶石
#7FFFD4——Aquamarine 寶石碧綠
#66CDAA——MediumAquamarine 中寶石碧綠
#00FA9A——MediumSpringGreen 中春綠色
#F5FFFA——MintCream 薄荷奶油
#00FF7F——SpringGreen 春綠色
#3CB371——MediumSeaGreen 中海洋綠
#2E8B57——SeaGreen 海洋綠
#F0FFF0——Honeydew 蜜色/蜜瓜色
#90EE90——LightGreen 淡綠色
#98FB98——PaleGreen 弱綠色
#8FBC8F——DarkSeaGreen 暗海洋綠
#32CD32——LimeGreen 閃光深綠
#00FF00——Lime 閃光綠
#228B22——ForestGreen 森林綠
#008000——Green 純綠
#006400——DarkGreen 暗綠色
#7FFF00——Chartreuse 黃綠色/查特酒綠
#7CFC00——LawnGreen 草綠色/草坪綠
#ADFF2F——GreenYellow 綠黃色
#556B2F——DarkOliveGreen 暗橄欖綠
#9ACD32——YellowGreen 黃綠色
#6B8E23——OliveDrab 橄欖褐色
#F5F5DC——Beige 米色/灰棕色
#FAFAD2——LightGoldenrodYellow 亮菊黃
#FFFFF0—— Ivory 象牙色
#FFFFE0——LightYellow 淺黃色
#FFFF00——Yellow 純黃
#808000——Olive 橄欖
#BDB76B——DarkKhaki 暗黃褐色/深卡嘰布
#FFFACD——LemonChiffon 檸檬綢
#EEE8AA——PaleGoldenrod 灰菊黃/蒼麒麟色
#F0E68C——Khaki 黃褐色/卡嘰布
#FFD700——Gold 金色
#FFF8DC——Cornsilk 玉米絲色
#DAA520——Goldenrod 金菊黃
#B8860B——DarkGoldenrod 暗金菊黃
#FFFAF0——FloralWhite 花的白色
#FDF5E6——OldLace 老花色/舊蕾絲
#F5DEB3——Wheat 淺黃色/小麥色
#FFE4B5——Moccasin 鹿皮色/鹿皮靴
#FFA500——Orange 橙色
#FFEFD5——PapayaWhip 番木色/番木瓜
#FFEBCD——BlanchedAlmond 白杏色
#FFDEAD——NavajoWhite 納瓦白/土著白
#FAEBD7——AntiqueWhite 古董白
#D2B48C——Tan 茶色
#DEB887——BurlyWood 硬木色
#FFE4C4——Bisque 陶坯黃
#FF8C00——DarkOrange 深橙色
#FAF0E6——Linen 亞麻布
#CD853F——Peru 祕魯色
#FFDAB9——PeachPuff 桃肉色
#F4A460——SandyBrown 沙棕色
#D2691E——Chocolate 巧克力色
#8B4513——SaddleBrown 重褐色/馬鞍棕色
#FFF5EE——Seashell 海貝殼
#A0522D——Sienna 黃土赭色
#FFA07A——LightSalmon 淺鮭魚肉色
#FF7F50——Coral 珊瑚
#FF4500——OrangeRed 橙紅色
#E9967A——DarkSalmon 深鮮肉/鮭魚色
#FF6347——Tomato 番茄紅
#FFE4E1——MistyRose 淺玫瑰色/薄霧玫瑰
#FA8072——Salmon 鮮肉/鮭魚色
#FFFAFA——Snow 雪白色
#F08080——LightCoral 淡珊瑚色
#BC8F8F——RosyBrown 玫瑰棕色
#CD5C5C——IndianRed 印度紅
#FF0000——Red 純紅
#A52A2A——Brown 棕色
#B22222——FireBrick 火磚色/耐火磚
#8B0000——DarkRed 深紅色
#800000——Maroon 栗色
#FFFFFF——White 純白
#F5F5F5——WhiteSmoke 白煙
#DCDCDC——Gainsboro 淡灰色
#D3D3D3—— LightGrey 淺灰色
#C0C0C0——Silver 銀灰色
#A9A9A9——DarkGray 深灰色
#808080——Gray 灰色
#696969——DimGray 暗淡灰
#000000——Black 純黑’’’
Python之數據分析總結
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.