例題10-2 C語言學習筆記
描述:讀取你剛創建的文件learning_python.txt中的每一行,
將其中的Python都替換爲另一門語言的名稱,如C。
將修改後的各行都打印到屏幕上。
代碼:
with open('learning_python.txt') as file_object:
lines = file_object.readlines()
message = ''
for line in lines:
message += line.replace('python', 'C')
print(message)
結果:
例題10-4 訪客名單
描述:編寫一個while 循環,提示用戶輸入其名字。
用戶輸入其名字後,在屏幕上打印一句問候語,
並將一條訪問記錄添加到文件guest_book.txt中。
確保這個文件中的每條記錄都獨佔一行。
代碼:
prompt = 'Please enter your name.'
prompt += 'Enter "q" if you want to quit: '
while True:
name = input(prompt)
if name == 'q':
break
print('Hello ' + name + '!')
with open('guest_book.txt', 'a') as file_object:
file_object.write(name + ' visited.\n')
結果:
例題10-6 加法運算
描述:提示用戶提供數值輸入時,常出現的一個問題是
,用戶提供的是文本而不是數字。在這種情況下,
當你嘗試將輸入轉換爲整數時,將引發TypeError 異常。
編寫一個程序,提示用戶輸入兩個數字,再將它們相加並打印結果。
在用戶輸入的任何一個值不是數字時都捕獲TypeError 異常,
並打印一條友好的錯誤消息。對你編寫的程序進行測試:
先輸入兩個數字,再輸入一些文本而不是數字。
代碼:
print('Plese enter two numbers and we will add them up.')
print('Enter "q" if you want to quit.')
while True:
first_number = input('First number: ')
if first_number == 'q':
break
second_number = input('Second number: ')
if second_number == 'q':
break
try:
first = int(first_number)
second = int(second_number)
except ValueError:
print('You did not enter a number.Please enter again!')
else:
print('Results: ' + str(first+second))
結果:
發現的問題:
- 在Windows系統中,在文件路徑中使用反斜槓(\ )而不是斜槓(/ ):
- rstrip() 刪除(剝除)字符串末尾的空白
- open(filename要加單引號/雙引號)
- 因爲read() 返回一個長長的字符串到達文件末尾時返回一個空字符串,而將這個空字符串顯示出來時就是一
個空行。要刪除多出來的空行,可在print 語句中使用rstrip() :掌握打印文件的三種方法 - 在read()後再用file_object會爲空?
- Replace是字符串的方法
- 時,可指定讀取模式 (’r’ )、寫入模式 (’w’ )、附加模式 (’a’ )或讓你能夠讀取和寫入文件的模式(’r+’
- 如果你要寫入的文件不存在,函數open() 將自動創建它。然而,以寫入(’w’ )模式打開文件時千萬要小心,因爲如果指定的文件已經存在,Python將在返回文件對象前清空
- 該文件。
- Python只能將字符串寫入文本文件。要將數值數據存儲到文本文件中,必須先使用函數str() 將其轉換爲字符串格式。
- Input函數
- Content = file_object.read()後content也可以在with外使用
- TypeError和ValueError
- 字符串的方法count()