日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++ 输出二进制_Python之输入输出(input_output)

發布時間:2025/3/19 c/c++ 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++ 输出二进制_Python之输入输出(input_output) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

輸出

python兩種輸出方式:表達式語句和print()
第三種方式就是使用文件對象的write()

str.formot() 格式化輸出
repr() 輸出值轉成字符串
str() 輸出值轉成字符串
##repr()/ str() ##

s='hello,runoob'print(type(str(s)))print(str(s))print(type(repr(s)))print(repr(s))<class 'str'>hello,runoob<class 'str'>'hello,runoob'

兩種方式輸出平方和立方表:

for x in range(1,11): print(repr(x).rjust(2),repr(x*x).rjust(3),end='') #end=''不換行輸出????print(repr(x*x*x).rjust(4))1 1 1 2 4 8 3 9 27 4 16 64 5 25 125 6 36 216 7 49 343 8 64 512 9 81 72910?1001000for x in range(1,11):????print('{0:2d}?{1:3d}??{2:4d}'.format(x,x*x,x*x*x)) 1 1 1 2 4 8 3 9 27 4 16 64 5 25 125 6 36 216 7 49 343 8 64 512 9 81 72910?100??1000

rjust() 方法, 它可以將字符串靠右, 并在左邊填充空格。

還有類似的方法, 如 ljust() 和 center()。

str.format()

括號及其里面的字符 (稱作格式化字段) 將會被 format() 中的參數替換

print('{0} 和 {1}'.format('Google', 'Runoob'))Google?和?Runoob

如果在 format() 中使用了關鍵字參數, 那么它們的值會指向使用該名字的參數。

print('{name}網址:{site}'.format(name='菜鳥教程', site='www.runoob.com'))菜鳥教程網址:www.runoob.com

位置及關鍵字參數可以任意的結合

print('站點列表 {0}, {1}, 和 {other}。'.format('Google', 'Runoob', other='Taobao'))站點列表 Google, Runoob, 和 Taobao。

‘!a’ (使用 ascii()), ‘!s’ (使用 str()) 和 ‘!r’ (使用 repr()) 可以用于在格式化某個值之前對其進行轉化

print('常量 PI 的值近似為:{}。'.format(math.pi))常量 PI 的值近似為:3.141592653589793。print('常量 PI 的值近似為:{!r}。'.format(math.pi))常量 PI 的值近似為:3.141592653589793。

可選項 ‘:’ 和格式標識符可以跟著字段名。這就允許對值進行更好的格式化。下面的例子將 Pi 保留到小數點后三位

rint('常量 PI 的值近似為 {0:.3f}。'.format(math.pi))常量?PI?的值近似為?3.142

在 ‘:’ 后傳入一個整數, 可以保證該域至少有這么多的寬度。用于美化表格時很有用

>>> table = {'Google': 1, 'Runoob': 2, 'Taobao': 3}>>> for name, number in table.items():... print('{0:10} ==> {1:10d}'.format(name, number))...Runoob ==> 2Taobao ==> 3Google?????==>??????????1

如果你有一個很長的格式化字符串, 而你不想將它們分開, 那么在格式化時通過變量名而非位置會是很好的事情。

最簡單的就是傳入一個字典, 然后使用方括號 ‘[]’ 來訪問鍵值 :

table = {'Google': 1, 'Runoob': 2, 'Taobao': 3} print('Runoob: {0[Runoob]:d}; Google: {0[Google]:d}; Taobao: {0[Taobao]:d}'.format(table))Runoob:?2;?Google:?1;?Taobao:?3

也可以通過在 table 變量前使用 ‘**’ 來實現相同的功能:

table = {'Google': 1, 'Runoob': 2, 'Taobao': 3} print('Runoob: {Runoob:d}; Google: {Google:d}; Taobao: {Taobao:d}'.format(**table))Runoob:?2;?Google:?1;?Taobao:?3

輸入

input()

讀寫文件

open(filename,mode)
filename:filename 變量是一個包含了你要訪問的文件名稱的字符串值。
mode:mode決定了打開文件的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個參數是非強制的,默認文件訪問模式為只讀?

模式\描述
r
以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。
rb
以二進制格式打開一個文件用于只讀。文件指針將會放在文件的開頭。這是默認模式。
r+
打開一個文件用于讀寫。文件指針將會放在文件的開頭。
rb+
以二進制格式打開一個文件用于讀寫。文件指針將會放在文件的開頭。
w
打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
wb
以二進制格式打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
w+
打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
wb+
以二進制格式打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
a
打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。
ab
以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。
a+
打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用于讀寫。
ab+
以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用于讀寫。

f=open(r'C:\Users\17854\Desktop\open.txt','r') #打開str=f.read() print(str)f.close

f.readline() 會從文件中讀取單獨的一行

f=open(r'C:\Users\17854\Desktop\open.txt','r')str=f.readline()print(str)f.close

f.readlines() 將返回該文件中包含的所有行,不會自動換行

f=open(r'C:\Users\17854\Desktop\open.txt','r')str=f.readlines()print(str)f.close

另一種方式是迭代一個文件對象然后讀取每行:

f=open(r'C:\Users\17854\Desktop\open.txt','r')for line in f: print(line)f.close

f.write(string) 將 string 寫入到文件中,?然后返回寫入的字符數

f=open(r'C:\Users\17854\Desktop\open.txt','w')num=f.write('afdshiafwhfwhf\njkashfkjdshfdshafipu')print(num)f.close()

如果要寫入一些不是字符串的東西, 那么將需要先進行轉換

f=open(r'C:\Users\17854\Desktop\open.txt','a')s=('\nafdsaf',23)s=repr(s)f.write(s)f.close()

f.seek(offset, from_what) 函數

from_what 的值, 如果是 0 表示開頭, 如果是 1 表示當前位置, 2 表示文件的結尾,例如:
seek(x,0) :從起始位置即文件首行首字符開始移動 x 個字符
seek(x,1) :表示從當前位置往后移動x個字符
seek(-x,2):表示從文件的結尾往前移動x個字符
from_what 值為默認為0,即文件開頭。下面給出一個完整的例子

f=open(r'C:\Users\17854\Desktop\open.txt','rb+')num=f.write(b'afdshiafwhfwhfjkashfkjdshfdshafipu')f.seek(5)print(num)print(f.read()) #從i開始f.close()34b'iafwhfwhfjkashfkjdshfdshafipu'

Pickle模塊:

在機器學習中,我們常常需要把訓練好的模型存儲起來,這樣在進行決策時直接將模型讀出,而不需要重新訓練模型,這樣就大大節約了時間。Python提供的pickle模塊就很好地解決了這個問題,它可以序列化對象并保存到磁盤中,并在需要的時候讀取出來,任何對象都可以執行序列化操作。
Pickle模塊中最常用的函數為:
(1)pickle.dump(obj, file, [,protocol])
函數的功能:將obj對象序列化存入已經打開的file中。
參數講解:
obj:想要序列化的obj對象。
file:文件名稱。
protocol:序列化使用的協議。如果該項省略,則默認為0。如果為負值或HIGHEST_PROTOCOL,則使用最高的協議版本。
(2)pickle.load(file)
函數的功能:將file中的對象序列化讀出。
參數講解:
file:文件名稱。
(3)pickle.dumps(obj[, protocol])
函數的功能:將obj對象序列化為string形式,而不是存入文件中。
參數講解:
obj:想要序列化的obj對象。
protocal:如果該項省略,則默認為0。如果為負值或HIGHEST_PROTOCOL,則使用最高的協議版本。
(4)pickle.loads(string)
函數的功能:從string中讀出序列化前的obj對象。
參數講解:
string:文件名稱。
【注】 dump() 與 load() 相比 dumps() 和 loads() 還有另一種能力:dump()函數能一個接著一個地將幾個對象序列化存儲到同一個文件中,隨后調用load()來以同樣的順序反序列化讀出這些對象。

import pickledatalist=[[1,1,'yes'],[1,0,'no'],[0,1,'no'],[0,0,'no']]datadic={0:[1,2,3,4],1:('a','b'),2:{'c':'yes','d':'no'}}#使用dump()將數據序列化到文件中fw=open(r'C:\Users\17854\Desktop\open.txt','wb')pickle.dump(datalist,fw,-1)pickle.dump(datadic,fw)fw.close()#使用load()將數據從文件中序列化讀出fr=open(r'C:\Users\17854\Desktop\open.txt','rb')data1=pickle.load(fr)print(data1)data2=(pickle.load(fr))print(data2)fr.close()[[1, 1, 'yes'], [1, 0, 'no'], [0, 1, 'no'], [0, 0, 'no']]{0:?[1,?2,?3,?4],?1:?('a',?'b'),?2:?{'c':?'yes',?'d':?'no'}}

dump() 與 load() 相比 dumps() 和 loads() 還有另一種能力:dump()函數能一個接著一個地將幾個對象序列化存儲到同一個文件中,但是感覺用loads()很方便,都不需要打開文件什么的

import pickledatalist=[[1,1,'yes'],[1,0,'no'],[0,1,'no'],[0,0,'no']]datadic={0:[1,2,3,4],1:('a','b'),2:{'c':'yes','d':'no'}}p=pickle.dumps(datalist)print(pickle.loads(p))[[1,?1,?'yes'],?[1,?0,?'no'],?[0,?1,?'no'],?[0,?0,?'no']]

總結

以上是生活随笔為你收集整理的c++ 输出二进制_Python之输入输出(input_output)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。