Python學習(十)

來源:互聯網
上載者:User
文章目錄
  • 1、使用者輸入
  • 2、檔案
  • 3、儲存器(pickle)
十、輸入/輸出

一些情況下你不得不讓程式與使用者進行互動。例如,你需要從使用者處得到輸入然後輸出計算結果。我們可以分別通過input()和print()函數做到這些。
對於輸出,我們還可以使用str(string)類的各種方法。例如rjust方法可以得到一個指定寬度的靠右對齊字串。詳見help(str)。
另一種常見的輸入/輸出類型為檔案處理。建立、讀和寫檔案的能力是許多程式所必需的,我們將會在這章探索如何?這些功能。

1、使用者輸入
# user_input.py def reverse(text):    return text[::-1] def is_palindrome(text):    return text == reverse(text) something = input('Enter text: ')if (is_palindrome(something)):    print("Yes, it is a palindrome")else:    print("No, it is not a palindrome")

輸出:

C:\Users\Administrator>python D:\python\user_input.py

Enter text: sir

No, it is not a palindrome C:\Users\Administrator>python D:\python\user_input.py

Enter text: racecar

Yes, it is a palindrome

工作原理:

例中我們使用切片操作反轉文本。之前我們已經學過如何通過seq[a:b](從a開始止於b)對序列切片。

對於切片操作我們還可以指定第三個參數步長,步長預設為1將返迴文本的一個連續部分。而給定一個負步長-1將返回反轉後的文本。

input()函數接收一個字串實參並將其列印給使用者,然後函數等待使用者輸入一些東西,一但使用者按下斷行符號鍵則輸入結束,input函數將返回輸入的文本。

之後我們反轉文本,如果反轉後的文本與原文本相同,則代表它是一個迴文。

2、檔案

你可以通過建立一個file類的對象來開啟一個檔案,分別使用file類的read、readline或write方法來恰當地讀寫檔案。對檔案的讀寫能力依賴於你在開啟檔案時指定的模式。最後,當你完成對檔案的操作的時候,你調用close方法來告訴Python我們完成了對檔案的使用。

例如:

# Filename: using_file.py poem = '''\Programming is funWhen the work is doneif you wanna make your work also fun:    use Python!''' f = open('poem.txt', 'w') # open for 'w'ritingf.write(poem) # write text to filef.close() # close the file f = open('poem.txt') # if no mode is specified, 'r'ead mode is assumed by defaultwhile True:    line = f.readline()    if len(line) == 0: # Zero length indicates EOF        break    print(line, end='')f.close() # close the file

輸出:

C:\Users\Administrator>python D:\python\using_file.py

Programming is fun

When the work is done

if you wanna make your work also fun:

    use Python!

工作原理:

首先,我們通過內建函數open開啟一個檔案,在函數中我們指定了被開啟檔案的檔案名稱與希望使用的開啟模式。其中開啟模式可以為讀模式(‘r’),寫入模式(‘w’)或追加模式(‘a’)。另外我們也可以處理檔案檔案(‘t’)和二進位檔案(‘b’)。實際上還有很多模式可用,詳見help(open)。預設的open將檔案對待為文字檔’t’,並以讀模式’r’開啟。

在範例中,我們首先以寫文字模式開啟檔案,使用檔案對象的write方法寫檔案,並調用close將其關閉。然後我們再次開啟相同的檔案用於讀取。這裡我們無需指定開啟模式因為’讀文字檔’是open的預設模式。

在迴圈中我們使用readline方法讀取檔案的每一行。這個方法返回一整行文本其中包括末尾的分行符號。當返回一個Null 字元串時,意味著我們已經來到檔案尾,因此使用break跳出迴圈。

預設的,print()函數將自動列印一個換行。因為從檔案讀出的文本行末尾已經包含一個換行,所以我們指定參數end=’’抑制換行。

最後我們關閉檔案。

現在,檢查poem.txt檔案內容以確定程式真的寫入並讀取了檔案。

3、儲存器(pickle)

python提供了一個名為pickle的標準模組用於將任意python對象存入檔案或從檔案中讀出。這被稱做非揮發性儲存體對象(persistently)。

例如:

# Filename: pickling.py import pickle # the name of the file where we will store the objectshoplistfile = 'shoplist.data'# the list of things to buy shoplist = ['apple', 'mango', 'carrot'] # Write to the filef = open(shoplistfile, 'wb')pickle.dump(shoplist, f) # dump the object to a filef.close() del shoplist # destroy the shoplist variable # Read back from the storagef = open(shoplistfile, 'rb')storedlist = pickle.load(f) # load the object from the fileprint(storedlist)

輸入:

C:\Users\Administrator>python D:\python\pickling.py

['apple', 'mango', 'carrot']

工作原理:

為了將Object Storage Service到檔案,我們必須首先’wb’寫二進位檔案模式開啟檔案然後調用pickle模組的dump函數。這個過程叫做封藏(pickling)對象。

接下來我們使用pickle的load函數重新找回對象。這個過程叫做解鎖(unpickling)對象。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.