python3 輸入輸出(17)

import  math
#Python3 輸入和輸出
'''
Python兩種輸出值的方式: 表達式語句和 print() 函數。
第三種方式是使用文件對象的 write() 方法,標準輸出文件可以用 sys.stdout 引用
將輸出的值轉化成字符串形式
str(): 函數返回一個用戶易讀的表達形式。
repr(): 產生一個解釋器易讀的表達形式。
'''

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))

#rjust() 方法, 可以將字符串靠右, 並在左邊填充空格。
#還有類似的方法, 如 ljust() 和 center()  分別是靠左,居中

# zfill() 左邊以0填充
print('123'.zfill(3)) #123
print('123'.zfill(4)) #0123
print('123'.zfill(5)) #00123

#位數不夠纔會填0

# format() 的使用
print(' {0}今年{1}歲了'.format('小明',18)) #小明今年18歲了
#!a (使用 ascii()), !s (使用 str()) 和 !r (使用 repr()) 可以用於在格式化某個值之前對其進行轉化:
print('a是{}'.format('a')) #a是a
print('a是{!a}'.format('a')) #a是'a'
print('a是{!r}'.format('a')) #a是'a'
print('a是{!s}'.format('a')) #a是a

print('常量Π的值近似爲 {0:.5f}。'.format(math.pi)) #常量Π的值近似爲 3.14159。

#傳入一個字典, 然後使用方括號 [] 來訪問鍵值 :
dic={'中國':'北京','美國':'紐約','英國':'倫敦'}
print('中國的首都是{0[中國]},美國的首都是{0[美國]},英國的首都是{0[英國]}'.format(dic))

#也可以通過在 dic 變量前使用 ** 來實現相同的功能:
print('中國的首都是{中國:},美國的首都是{美國:},英國的首都是{英國:}'.format(**dic))

#還可以使用;類似於c語言的處理方式
name='小明'
age=18
print('%s今年%d歲了'%(name,age))

#讀取鍵盤輸入
#Python提供了 input() 內置函數從標準輸入讀入一行文本,默認的標準輸入是鍵盤。
#input 可以接收一個Python表達式作爲輸入,並將運算結果返回。

print("請輸入:")
str=input()
print('你輸入的是:{}'.format(str))



'''
讀和寫文件
open() 將會返回一個 file 對象,基本語法格式如下:
open(filename, mode)
fileName:你將要讀取的文件名稱
mode:
r	以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。
rb	以二進制格式打開一個文件用於只讀。文件指針將會放在文件的開頭。
r+	打開一個文件用於讀寫。文件指針將會放在文件的開頭。
rb+	以二進制格式打開一個文件用於讀寫。文件指針將會放在文件的開頭。
w	打開一個文件只用於寫入。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
wb	以二進制格式打開一個文件只用於寫入。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
w+	打開一個文件用於讀寫。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
wb+	以二進制格式打開一個文件用於讀寫。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
a	打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。
ab	以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。
a+	打開一個文件用於讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用於讀寫。
ab+	以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用於讀寫。
'''

#我在F:/python/pythonTest.txt 文件中寫如下內容:
'''
1234bcd
dgfghfg
'''
fp=open("F:/python/pythonTest.txt",'r')
text=fp.read()
print("你讀取的數據是:{}".format(text))
fp.close()
#輸出如下內容
#你讀取的數據是:1234bcd
#dgfghfg


#讀取一行
fp=open("F:/python/pythonTest.txt",'r')
text=fp.readline()
print("讀取一行內容是:{}".format(text))
fp.close()
#輸出內容:讀取一行內容是:1234bcd

#寫文件
fp=open("F:/python/pythonTest.txt",'a+')
fp.write("\ntest Write")
fp.close()

fp=open("F:/python/pythonTest.txt",'r')
text=fp.read()
print("追加了內容之後:{}".format(text))
fp.close()
'''
輸出的內容是:
追加了內容之後:1234bcd
dgfghfgtest Write
test Write
'''


'''
文件的相關函數還有:
f.tell() 返回文件對象當前所處的位置, 它是從文件開頭開始算起的字節數。
f.seek() 如果要改變文件當前的位置, 可以使用 f.seek(offset, from_what) 函數。
from_what 的值, 如果是 0 表示開頭, 如果是 1 表示當前位置, 2 表示文件的結尾,例如:
seek(x,0) : 從起始位置即文件首行首字符開始移動 x 個字符
seek(x,1) : 表示從當前位置往後移動x個字符
seek(-x,2):表示從文件的結尾往前移動x個字符
'''


'''
python的pickle模塊實現了基本的數據序列和反序列化。
通過pickle模塊的序列化操作能夠將程序中運行的對象信息保存到文件中去,永久存儲。
通過pickle模塊的反序列化操作,能夠從文件中創建上一次程序保存的對象。
pickle.dump(obj, file, [,protocol])

x = pickle.load(file)
'''

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章