零基礎 Python3學習課後練習題(二十六)

2021-08-28 19:28:47 字數 3982 閱讀 2636

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