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

歡迎訪問 生活随笔!

生活随笔

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

python

python学习笔记系列----(五)输入和输出

發布時間:2025/5/22 python 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python学习笔记系列----(五)输入和输出 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? 這一章主要是講述程序展示其數據的一些方法,一般都是直接按照一定的格式輸出在屏幕,或者寫入到文件以便以后使用。按照一定格式的輸出,在python中實際就是對str的操作,主要就是介紹了formart()的靈活使用。然后就是基本的打開文件,內置的函數open()后,可以對文件進行簡單的讀取,按需讀取等,最后大致介紹了下JSON數據結構。

5.1 舊的字符串格式輸出方式

? ? ? 使用%輸出字符串,這是我未看文檔前知道的,也以為是唯一的print輸出字符串方式,看完之后才知道這種方式已經在2.7.11中被稱為old的了。? ??

>>> import math >>> print 'The value of PI is approximately %5.3f.' % math.pi The value of PI is approximately 3.142.

5.2 ?友好的格式化輸出

? ? ? 如果你想更好的控制你的輸出而不是簡單的打印一些空格,通常有2種方式,一種是自己處理所有的字符串,使用string的切片和連接操作,字符串類型有一些方法,用于執行將字符串填充到指定列寬度的有用操作,第二種方法是使用str的format()方法。

? ? ? 要使用str的format()方法,當然首先要保證當前對象的類型就是string類型,string模塊提供了2個方法,可以講任何對象都轉換成string對象。str()和repr()。他們之間區別如下:str()返回一個人類可讀性強的字符串,而repr()返回式解釋器可讀的字符串;對于數字,列表,字段這些數據結構,使用這2個方法得到的是同樣的結果,但是對字符串和浮點數的使用是不相同的:

s = 'hello\n'print sprint str(s)print repr(s)print str(math.pi)print repr(math.pi)

? ? ? 結果如下:

??可以看到:repr()在操作string字符串的時候增加了引號和反斜杠,而str是沒有的。

? ? ?現需要打印出1-10的1次方,2次方,3次方的值,如下所示:

1 1 12 4 83 9 274 16 645 25 1256 36 2167 49 3438 64 5129 81 729 10 100 1000

? ? ?按照以前的思維會怎么做呢?以我c++剛入門的功力寫,貌似更搓,需要打印數值,再打印空格。。。。

? ? ?python單純的使用string類型的方法,可以這樣實現:

for x in range(1,11):print str(x).ljust(2),str(x*x).ljust(3),str(x*x*x).ljust(4)

? ? ?ljust()是str模塊內的一個方法,函數原型是:?S.ljust(width[,?fillchar])?->?string,在字符串的左邊插入width個fillchar,默認fillchar是space。巧妙的實現了字符串后面空N格的需求,當然有左邊,肯定有右邊,也有中間,對應的方法是?str.ljust()?and?str.center(),具體使用就不舉例了。

? ? 如果使用str的format方法,貌似更簡潔了:

for x in range(1,11):print '{0:10d} {1:10d} {2:10d}'.format(x,x*x,x*x*x)

? format的基本使用如下:花括號及其中的字符(稱為格式字段)將被替換為傳遞給str.format()方法的對象。括號中的數字指傳遞給str.format()方法的對象的位置。

>>> print 'We are the {} who say "{}!"'.format('knights', 'Ni') We are the knights who say "Ni!

>>> print 'The story of {0}, {1}, and {other}.'.format('Bill', 'Manfred',other='Georg')

The story of Bill, Manfred, and Georg.
>>>table = {'name':'loleina','age':25}
>>>print 'name :{name}, age:{age:d}'.format(**table)

數字后后允許可選的':'和格式指令。這樣可以更好地控制如何設置值的格式。下面的例子將 Pi 轉為三位精度。

>>> import math >>> print 'The value of PI is approximately {0:.3f}.'.format(math.pi) The value of PI is approximately 3.142.

':'后面緊跟一個整數可以限定該字段的最小寬度。

>>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678} >>> for name, phone in table.items(): ... print '{0:10} ==> {1:10d}'.format(name, phone) ... Jack ==> 4098 Dcab ==> 7678 Sjoerd ==> 4127

5.3 讀寫文件

? ? ? 調用內置函數open()可以返回一個文件對象,一般都是帶2個參數:open(filename,?mode)

>>> f = open('workfile', 'w') >>> print f <open file 'workfile', mode 'w' at 80a0960>

? ? ? ?第一個參數是一個含有文件名的字符串。第二個參數也是一個字符串,含有描述如何使用該文件的幾個字符。mode為'r'時表示只是讀取文件;w?表示只是寫入文件(已經存在的同名文件將被刪掉);'a'表示打開文件進行追加,寫入到文件中的任何數據將自動添加到末尾。?'r+'表示打開文件進行讀取和寫入。mode?參數是可選的,默認為'r'

? ? ? ?這個例子是官網的例子,運行后,在當前項目的目錄下生成了一個workfile的文件,類型為文件類型(不是文本類型),如果在文件名后加上txt,就生成了一個文本文檔類型。

? ? ? ?在 Windows 平臺上,模式后面追加?'b'表示以二進制方式打開文件,所以也有像'rb'、?'wb''r+b'這樣的模式。Python 在 Windows 平臺上區分文本文件和二進制文件;讀取或寫入文本文件中時,行尾字符會被自動地稍加改變。這種修改對 ASCII 文本文件沒有問題,但會損壞JPEGEXE這樣的二進制文件中的數據。在讀寫這些文件時一定要記得以二進制模式打開。在 Unix 平臺上,在模式后面附加一個'b'也不會有壞處,這樣可以用寫好的文件訪問代碼來讀寫任何平臺上的所有二進制文件。

? ? ? 得到文件句柄后,可以對文件進行讀寫操作,一次性讀取read();一行一行讀取readline(),不去掉換行符;寫操作write();查詢當前文件游標(偏移量)tell(),移動游標seek();read()函數內如果加整型參數,表示讀取整數個byte。舉例如下:

f = open('test.txt','r+')print fprint f.read()
f.close()
運行結果:

? ? ?<open file 'test.txt', mode 'r+' at 0x0341D1D8>
? ? ?first line
? ? ?second line

? ? ?third line

r = open('workfile','r+')r.write('0123456789abcdefg')print r.tell()print r.seek(5)print r.read(1)print r.tell()
r.close()
運行結果:

? ? ? 17
? ? ? None
? ? ? 5
? ? ? 6

? ? ? ?在python中處理文件對象時使用with關鍵字是很好的做法。這樣做的好處在于文件用完后會自動關閉,即使過程中發生異常也沒關系。它還比編寫一個等同的try-finally語句要短很多,如果需要讀取文件內每一行,可以循環遍歷文件對象來讀取文件中的每一行。這是既省內存又非常快的簡單代碼。

with open('workfile','r') as f:for line in f:print lineprint f.closed
運行結果:

? ? ?0123456789abcdefg
? ? ?True

? 5.4?使用json存儲結構化數據?

? ??從文件中讀寫字符串并不是很難。數值就要多費點兒周折,因為read ()方法只會返回字符串,應將其傳入int()這樣的函數,就可以將'123'這樣的字符串轉換為對應的數值 123。當你想要保存更為復雜的數據類型,例如嵌套的列表和字典,手工解析和序列化它們將變得更復雜。Python 允許使用常用的數據交換格式JSON(JavaScript Object Notation)。標準模塊json可以接受 Python 數據結構,并將它們轉換為字符串表示形式;此過程稱為序列化。從字符串表示形式重新構建數據結構稱為反序列化。序列化和反序列化的過程中,表示該對象的字符串可以存儲在文件或數據中,也可以通過網絡連接傳送給遠程的機器。

? ? 這一章節,之前有專門總結過,再次就不墨跡了。可以點此鏈接進行查看:?python對json的操作總結?

轉載于:https://www.cnblogs.com/loleina/p/5776564.html

總結

以上是生活随笔為你收集整理的python学习笔记系列----(五)输入和输出的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产高潮国产高潮久久久 | 亚洲色图第三页 | 国产精品久久婷婷六月丁香 | 91网在线看 | 99日精品 | 成人亚洲电影 | 麻豆激情网 | 亚洲男人的天堂网 | 全黄一级裸片视频 | 亚洲国产精品视频一区 | 欧美日韩免费看 | 国内9l自拍 | 日本三级播放 | 亚洲综合在线网 | 狠狠操狠狠操 | 美女被娇喘视频 | 国产在线观看免费播放 | 久久久国产一区二区三区 | 美女主播在线观看 | 熟女高潮一区二区三区 | 无码人妻丰满熟妇啪啪网站 | 99热网站| 老司机激情视频 | 国产伦精品一区二区三区 | 老熟女一区二区三区 | www.操操操| 外国黄色网址 | 午夜一区二区三区免费观看 | 亚洲在线资源 | 在线观看免费黄网站 | 一区二区日韩在线观看 | 女生扒开尿口让男生桶 | 男女无遮挡网站 | 亚洲少妇网| 免费在线观看黄色片 | 99re中文字幕| 成人伊人 | 天天干,夜夜操 | 三上悠亚激情av一区二区三区 | 精品人妻一区二区三区四区五区 | 91精品国产综合久久久久久 | 青青草av| 婷婷亚洲五月 | 欧美成人精品 | 亚洲国产视频一区 | 日本黄色大片网站 | 二十四小时在线更新观看 | 97久久久久久久久久 | 性做爰视频免费播放大全 | 好看的av在线 | 日本亚洲欧洲色 | 人妻丝袜一区 | 在线观看成年人网站 | 欧美三级不卡 | 男男一级淫片免费播放 | 农民工hdxxxx性中国 | 91在线网址 | 亚洲12p| 国产曰肥老太婆无遮挡 | 无码人妻黑人中文字幕 | 波多野结衣一二三区 | 精品亚洲永久免费精品 | 涩涩屋污 | 欧美性粗暴 | 日本成人三级电影 | 搡老熟女老女人一区二区 | 久久中文在线 | 天天澡天天狠天天天做 | 黄色天堂 | 国产免费小视频 | 先锋影音一区二区三区 | 中文字幕一区二区三区在线观看 | 日韩美女福利视频 | 婷婷久久久久 | 在线观看国产区 | 青青视频免费观看 | 欧美日韩电影一区 | 自拍偷拍视频在线观看 | 国精产品一区一区三区免费视频 | 91久久精品一区二区 | 蜜桃一二三区 | 日韩美一区二区 | 粗口调教gay2022.com | 亚洲黄色片子 | 欧美黄色录像视频 | 牛av在线| 成人高清网站 | 成年女人18级毛片毛片免费 | 激情插插 | 亚洲在线观看免费 | 久久综合五月天 | 久久第一页 | av一区二区不卡 | 超碰超碰 | 69视频在线 | 中文字幕日韩精品一区 | 修女也疯狂3免费观看完整版 | 内地级a艳片高清免费播放 91在线精品一区二区 | 性色av蜜臀av色欲av |