0.編寫乙個程式,接受使用者的輸入並儲存為新的檔案,程式實現如圖:
答:
def file_write(file_name):
print("請輸入內容【單獨輸入':w'儲存退出】:")
new_file = open(file_name,'w')
while true:
neirong = input()
if neirong != ':w':
new_file.write('%s\n' % neirong)
else:
break
new_file.close
file_name = input('請輸入檔名:')
file_write(file_name)
1.編寫乙個程式,比較使用者輸入的兩個檔案,如果不同,顯示所有不同處的行號與第乙個不同字元的位置,程式實現如圖:
答:
def file_compare(file_name_1,file_name_2):
file_1 = open(file_name_1,'r')
file_2 = open(file_name_2,'r')
count = 0
different =
for each_line in file_1.readline():
if each_line == file_2.readline():
count += 1
else:
file_1.close()
file_2.close()
return different
file_name_1 = input('請輸入需要比較的第乙個檔名:')
file_name_2 = input('請輸入需要比較的第二個檔名:')
file_compare(file_name_1,file_name_2)
if len(different) == 0:
print('兩個檔案完全一樣')
else:
print('兩個檔案有【%d】處不一樣' % len(different))
for each in different:
print('第%d行不一樣' % each)
2.編寫乙個程式,當使用者輸入檔名和行數(n)後,將該檔案的前n行中內容列印到螢幕上,程式實現如圖:
答:
def file_print(file, num):
f = open(file)
print('''檔案%s的前%d行的內容如下:''' % (file, num))
for i in range(num):
print(f.readline())
f.close()
file_name = input('請輸入要開啟的檔案(c:\\test.txt):')
num = int(input('請輸入需要顯示該檔案前幾行:'))
file_print(file_name, num)
3.呃,不得不說我們的使用者越來越來刁鑽了。要求在上一題的基礎上擴充套件,使用者可以隨意輸入需要顯示的行數。(如輸入13:21列印13行到21行,輸入:21列印前21行,輸入21:就列印從21行開始到檔案結尾左右內容)
答:
def file_print(file, paragraph):
(start, end) = paragraph.split(':')
if start == '':
start = 1
else:
start = int(start)
if end == '':
end = -1
else:
end = int(end)
f = open(file)
if start == 1:
if end == -1:
print('''檔案%s的從開頭到結束的內容如下:''' % file)
else:
print('''檔案%s的從開頭到第%d行的內容如下:''' % (file, end))
else:
if end == -1:
print('''檔案%s的從%d行到結束的內容如下:''' % (file, start))
else:
print('''檔案%s的從第%d行到第%d行的內容如下:''' % (file, start, end))
for i in range(start - 1):
f.readline()
num = end - start + 1
if num < 0:
print(f.read())
else:
for i in range(num):
print(f.readline())
f.close()
file_name = input(r'請輸入要開啟的檔案(c:\\test.txt):')
paragraph = input('請輸入需要顯示的行數【格式如13:21或:21或21:】:')
while paragraph == '':
paragraph = input('輸入有誤,請重新輸入:')
file_print(file_name, paragraph)
4.編寫乙個程式,實現「全部替換」功能,程式實現如圖
答:
def file_replace(file_name, rep_word, new_word):
f_read = open(file_name)
content =
count = 0
for each_line in f_read:
if rep_word in each_line:
count += each_line.count(rep_word) # count感覺應該用這個
each_line = each_line.replace(rep_word, new_word)
decide = input('\n檔案 %s 中共有%s個【%s】\n您確定要把所有的【%s】替換為【%s】嗎?\n【yes/no】:' \
% (file_name, count, rep_word, rep_word, new_word))
if decide in ['yes', 'yes', 'yes']:
f_write = open(file_name, 'w')
f_write.writelines(content)
f_write.close()
f_read.close()
file_name = input('請輸入檔名:')
rep_word = input('請輸入需要替換的單詞或字元:')
new_word = input('請輸入新的單詞或字元:')
file_replace(file_name, rep_word, new_word)
零基礎 Python3學習課後練習題(四)
0.請問以下 會列印多少次 我愛魚c!while c print 我愛魚c 答 會一直列印下去,死迴圈。1.請問以下 會列印多少次 我愛魚c!i 10 while i print 我愛魚c i i 1 答 會列印10次。2.請寫出與 10 cost 50 等價的表示式。答 10 cost and c...
零基礎 Python3學習課後練習題(八)
0.下面的迴圈會列印多少次 i love fishc for i in range 0,10,2 print i love fishc 答 列印 5 次,因為在range閾中以 2 為步徑,即有五個結果,所以可以列印五次。for i in range 0,10,2 print i love fish...
零基礎 Python3學習課後練習題(十六)
0.請問以下哪個是形參哪個是實參?def myfun x return x 3 y 3 print myfun y 答 x是形式引數,y是實際引數。函式定義過程中的引數是形參,呼叫函式過程中的引數是實參。1.函式文件和直接用 為函式寫注釋有什麼不同?答 函式文件是對函式的解釋和描述,可以呼叫 doc...