Python第四次實驗作業

2021-09-29 19:36:56 字數 4583 閱讀 6054

實驗1:將字串寫入文字檔案,然後再讀取並輸出:

實驗2:假設已有乙個文字檔案sample.txt,將其中第13、14兩個字元修改為測試。

實驗3、假設檔案data.txt中有若干個整數,所有整數之間使用英文逗號分隔,編寫程式讀寫所有整數,將其按公升序排序後再寫入文字檔案data_asc.txt中。

實驗4、統計文字檔案中最長行的長度和該行的內容。

實驗5、根據當前時間建立檔案

在指定目錄中,批量建立3個檔案,檔名為%y%m%d%h%m%s格式的當前時間(精確到秒)。例如,建立檔案的時間為2023年4月18日9點18分38秒,則該檔案的檔名為20190418091838.txt。為了防止出現重名的檔案,在每建立乙個檔案後,讓執行緒休眠一秒。

實驗六、使用raise語句丟擲異常。模擬幼兒園分蘋果(每人至少分乙個蘋果)。輸入蘋果數量及小朋友數量。程式設計實現當輸入的蘋果數量小於小朋友的數量時,應用raise語句丟擲乙個valueerror異常。並進行異常處理。

file

=open

("new.txt"

,"w+"

)#使用open函式,引數一是檔名,引數二是執行模式,w+代表可讀可寫,若執行目錄下無指定檔案則自動新建檔案

ls="hello world"

file

.write(ls)

#file物件的函式之一,用於寫入文件字串,返回字串長度

file

.close(

)#編輯好儲存檔案

file

=open

("new.txt"

,"r"

)#重新開啟,r代表唯讀模式

#刪除以上最後兩步程式正常編譯執行,但輸出為空,思考一下原因?

str=

file

.read(

)#呼叫file.read()函式讀出文件內容並賦值給變數str

print

(str

)#s輸出

file

.close(

)#關閉

在這file

=open

("******.txt"

,"w+"

)ls=

'''always keep an exprising mind and take action'''

file

.write(ls)

file

.close(

)file

=open

("******.txt"

,"r"

)str1=

file

.read()l=

list

(eval

("str1"))

#把序列str1轉換為列表,否則無法給序列特定位置賦值。

#賦值l[13]

="測試"

l[14]=

'測試'

file

.close()d=

str(l)

#寫入文字檔案,把列表轉換為字串。

file

=open

("******.txt"

,"w"

)file

.write(d)

file

.close(

)#重新讀取文件內容並輸出

file

=open

("******.txt"

,"r")s=

file

.read(

)print

(s)file

.close(

)#以上程式運用了open函式的w和r這兩種執行模式,索引文件讀出的具體內容,必須先轉換為列表,寫入文件必須以字串的形式,所以用到了字串和列表的相互轉換。裡插入**片

import re #定義正規表示式模式

ls='hello 9,7,8,2,6'k=[

]#定義乙個空列表

k=re.findall(

"[\d]+"

,ls)

#通過正規表示式匹配列表ls的數字並賦值給列表k。

#使用氣泡排序演算法對序列k重新排序並輸出

for i in

range

(len

(k))

:for j in

range(0

,len

(k)-i-1)

:if k[j]

>k[j+1]

: k[j]

,k[j+1]

=k[j+1]

,k[j]

print

(k)#正規表示式匹配re.findall返回出字串裡所有匹配成功的子字串;re.match從開始處匹配字串,若開始匹配不成功,則返回none,即使後面有匹配成功的;re.search匹配字串只返回第乙個匹配成功的子字串。

f=

open

("new.txt"

,"w+"

)ls=

'''always keep an enterprising mind and take action.

why are you working so hard?

because what i want is expensive...

i want to be far away...

the people i like are excellent...

'''f.write(ls)

f.close(

)#以上兩步初始化變數longest和k

longest =0k=

0f =

open

("new.txt"

,"r"

)alllines =

[line.strip(

)for line in f.readlines()]

#f.readlines讀取所有行返回列表形式賦值給line,並用strip函式清除空白符

f.close(

)#遍歷文件內容,進行比較每行長度比較然後輸出

for line in alllines:

linelen =

len(line)

#賦值字串長度

if linelen>longest:

longest = linelen

k=line #記錄linelen字串內容

print

(longest)

#輸出字串長度

print

(k)#輸出內容

f.close(

)

import datetime #設定datetime塊

for i in

range(3

):#迴圈 path=

"d:\\py_pro\\atm_圖形化介面\\"

#定義指定目錄路徑,並在\後再加乙個\,這是用了\字元轉義的功能,最後兩個\\必須要有

k=datetime.datetime.now(

).strftime(

'%y%m%d%h%m%s')+

'.txt'

#使用time.strftime()函式接受時間元祖並返回字串形式賦值給k,datetime.datetime.now()程式執行當下時間,就是time。

txt =

open

(path+

str(k)

,"w"

)#指定目錄下建立文件

import time #time塊

time.sleep(1)

#同一目錄下檔案命名相同會出現編譯錯誤,所以在每建立乙個檔案後,呼叫time.sleep()讓執行緒休眠一秒。

class

valueerror

(exception)

:def

__init__

(self,m,n)

: self.m=m

self.n=n

def__int__

(self)

:print

(self.m+

"小於"

+self.n)

#以上自定義異常型別

deffunction()

: m=

int(

input

('<<<'))

#m為蘋果的個數

n=int(

input

('<<<'))

#n為人數

try:

if mraise valueerror(m,n)

#使用raise手動丟擲異常,raise的唯一引數必須是異常物件或exception的子類。

else

:print

("%d個小朋友每個人分得蘋果個數是%d"

%(n,m/n)

)#捕捉異常

except valueerror:

print

('m和n的大小關係應設定為m>=n'

)raise

function(

)#執行函式

第四次實驗作業

一共有 d個閏年 字母有 d個,空格有 d個,數字有 d個,其他有 d個 一共有 d個素數 1.迴圈次數已知的時候用for語句,迴圈次數未知的時候用whlie語句。2.break在迴圈語句和switch語句中,終止並跳出迴圈體或開關體。3.break只能終止並跳出最近一層的結構。4.continue...

Python 第四次作業

設計題1 設計乙個本月份日曆,輸出格式如下 要求 1.初始化start day,end day兩個日期 from datetime import datetime start day datetime 2019,4,1 end day datetime 2019,4,30 其它時間資料生成要用dat...

python第四次作業

import random 隨機函式 random.random 主要生成乙個0 1的隨機浮點數包括零 randint a,b 用來生成 a,b 之間的隨意整數,包括兩個邊界值 random.uniform a,b 用來生成 a,b 之間的隨意浮點數,包括兩個邊界值。random.sample se...