Python程序設(shè)計(jì)-從基礎(chǔ)到應(yīng)用 課件 第7、8章 文件、Python常用標(biāo)準(zhǔn)庫_第1頁
Python程序設(shè)計(jì)-從基礎(chǔ)到應(yīng)用 課件 第7、8章 文件、Python常用標(biāo)準(zhǔn)庫_第2頁
Python程序設(shè)計(jì)-從基礎(chǔ)到應(yīng)用 課件 第7、8章 文件、Python常用標(biāo)準(zhǔn)庫_第3頁
Python程序設(shè)計(jì)-從基礎(chǔ)到應(yīng)用 課件 第7、8章 文件、Python常用標(biāo)準(zhǔn)庫_第4頁
Python程序設(shè)計(jì)-從基礎(chǔ)到應(yīng)用 課件 第7、8章 文件、Python常用標(biāo)準(zhǔn)庫_第5頁
已閱讀5頁,還剩89頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第7章文件文件的打開、關(guān)閉知識(shí)CONTENT要點(diǎn)文件的讀寫操作CSV格式文件的讀寫操作文件概述文件是存儲(chǔ)在輔助存儲(chǔ)器上的信息集合。按照文件內(nèi)容的形式,包括兩種類型:文本文件二進(jìn)制文件文本文件是基于字符編碼的文件,如unicode編碼,文件內(nèi)容就是字符。二進(jìn)制文件是基于值編碼的文件,如0、1,存儲(chǔ)的是二進(jìn)制數(shù)據(jù)。文件的打開open()函數(shù),打開文件并返回一文件對象。<文件對象名>=open(<文件路徑及文件名>,<打開模式>)f=open("D:\\a.txt","r")打開模式含義'r'只讀方式打開文本文件'w'只寫方式打開或創(chuàng)建一個(gè)文本文件'a'追加打開一個(gè)文本文件,在文件末尾寫數(shù)據(jù)'rb'只讀方式打開二進(jìn)制文件'wb'只寫方式打開或創(chuàng)建一個(gè)二進(jìn)制文件'ab'追加打開一個(gè)二進(jìn)制文件,在文件末尾寫數(shù)據(jù)+在原功能基礎(chǔ)上增加同時(shí)讀寫功能,如r+,w+,a+等f文件的關(guān)閉文件使用結(jié)束后,就應(yīng)該關(guān)閉它。關(guān)閉文件是斷開文件對象與文件之間的關(guān)聯(lián)。用close()方法關(guān)閉,語法形式如下:<文件對象名>.close()f.close()文件的讀寫文件的讀文件打開成功后,可以根據(jù)打開文件的模式對文件進(jìn)行讀寫操作。方法含義f.read(size)從文件中讀取指定size字節(jié)的數(shù)據(jù),省略size,則讀取整個(gè)文本。f.readline()從文件中讀入一行內(nèi)容。f.readlines()從文件中讀入多行內(nèi)容,返回一個(gè)列表。文件的讀:一次性讀入f.read()函數(shù)一次性讀入文件,其結(jié)果是一個(gè)字符串。夫君子之行,靜以修身,儉以養(yǎng)德,非淡泊無以明志,非寧靜無以致遠(yuǎn)。>>>1234f=open("D:\\a.txt","r")s=f.read()print(s)f.close()f文件的讀:讀入一行f.readline()函數(shù)讀入文件的一行,其結(jié)果是一行字符串。f夫君子之行,>>>1234f=open("D:\\a.txt","r")s=f.readline()print(s)f.close()文件的讀:讀入多行f.readlines()函數(shù)讀入文件的多行,其結(jié)果是一個(gè)列表。['夫君子之行,\n','靜以修身,\n','儉以養(yǎng)德,\n','非淡泊無以明志,\n','非寧靜無以致遠(yuǎn)。\n']1234f=open("D:\\a.txt","r")ls=f.readlines()print(ls)f.close()f文件的讀:逐行讀取文本文件可以使用遍歷循環(huán)逐行遍歷文件,并進(jìn)行處理。使用方法如下:f=open(<文件路徑及名稱>,"r")forlineinf:#處理當(dāng)前行數(shù)據(jù)linef.close()文件的讀:逐行讀取夫君子之行,靜以修身,儉以養(yǎng)德,非淡泊無以明志,非寧靜無以致遠(yuǎn)。>>>1234f=open("D:\\a.txt","r")forlineinf:print(line,end="")f.close()f文件的寫文本文件的寫入,通常使用write()和writelines()方法。方法含義f.write(字符串)在文件當(dāng)前位置寫入字符串,并返回寫入的字符的個(gè)數(shù)。f.writelines(字符串列表)從文件中當(dāng)前位置一次寫入列表中的所有元素文件的寫:寫字符串f.write()把字符串內(nèi)容寫入文件。1234f=open("D:\\b.txt","wt")f.write("夫君子之行,\n")f.write("靜以修身,\n")f.write("儉以養(yǎng)德,\n")f.write("非淡泊無以明志,\n")f.write("非寧靜無以致遠(yuǎn)。\n")f.close()567文件的寫:寫字符串列表f.writelines()把字符串列表寫入文本文件。1234f=open("D:\\c.txt","wt")ls=["夫君子之行,\n","靜以修身,\n","儉以養(yǎng)德,\n","非淡泊無以明志,\n","非寧靜無以致遠(yuǎn)。\n"]f.writelines(ls)f.close()文件指針文件打開后,由文件指針指向文件開端,伴隨著讀寫的進(jìn)行,指針不斷后移,這是順序存取。>>>f=open("D:\\a.txt","r")>>>s=f.read()>>>print(s)夫君子之行,靜以修身,儉以養(yǎng)德,非淡泊無以明志,非寧靜無以致遠(yuǎn)。>>>s=f.read()>>>print(s)>>>f文件指針的定位f.seek(offset,[from])方法定位文件指針的位置,實(shí)現(xiàn)隨機(jī)存取。offset表示偏移量。from表示起始位置。0:文件起始處開始1:文件當(dāng)前位置開始2:文件末尾位置開始文件指針的定位>>>f=open("D:\\a.txt","r")>>>s=f.read()>>>print(s)夫君子之行,靜以修身,儉以養(yǎng)德,非淡泊無以明志,非寧靜無以致遠(yuǎn)。>>>f.seek(12,0)12>>>s=f.read()>>>print(s)f靜以修身,儉以養(yǎng)德,非淡泊無以明志,非寧靜無以致遠(yuǎn)。>>>實(shí)例解析:

文本內(nèi)容大小寫轉(zhuǎn)換有一個(gè)英文文本文件birds1.txt,是泰戈?duì)柕娘w鳥集詩句內(nèi)容,編寫一個(gè)程序讀取其內(nèi)容,并將大寫改小寫,小寫改大寫,寫入原文本文件。分析定義一個(gè)文件對象f,以讀寫的方式打開文件。讀入文件到字符串s,進(jìn)行大小寫轉(zhuǎn)換。文件指針重定位到文件開頭,將更改后的字符串s,寫入原文件。假設(shè)有一個(gè)英文文本文件,編寫一個(gè)程序讀取其內(nèi)容,并將大寫改小寫,小寫改大寫,寫入原文本文件。1234f=open("d:\\birds.txt","r+")s=f.read()s=s.swapcase()f.seek(0,0)f.write(s)f.close()56CSV格式文件的讀寫CSV格式文件

CSV格式文件(Comma-SeparatedValues),是一種以逗號(hào)分隔數(shù)值的文件類型,通常以純文本的方式存儲(chǔ)數(shù)據(jù)表。在數(shù)據(jù)庫或電子表格中,常見的導(dǎo)入導(dǎo)出文件格式就是CSV格式。CSV格式文件與列表列表,是對CSV格式文件讀寫時(shí),存放數(shù)據(jù)的結(jié)構(gòu)。一維列表,存放一維數(shù)據(jù)。ls=['1001','劉麗','86','97','90']CSV格式文件與列表列表,是對CSV格式文件讀寫時(shí),存放數(shù)據(jù)的結(jié)構(gòu)。二維列表,存放二維數(shù)據(jù)。ls=[['1001','劉麗','86','97','90'],[‘1001’,‘李陽’,‘78’,‘79’,‘65’],[‘1001’,‘張宇','89',‘87',‘85'],[‘1001’,‘趙俊',‘96','95','94']]CSV格式:一維數(shù)據(jù)的讀將讀入的字符串,以逗號(hào)分隔,生成列表。fls=['1001','劉麗','86','97','90']1234f=open("d:\\score2.txt","r",encoding="utf-8")s=f.read().strip(“\n”)#去除換行符ls=s.split(“,”)#以逗號(hào)分隔,生成列表print(ls)f.close()5split()方法CSV格式:一維數(shù)據(jù)的寫將將元素為字符串形式的列表,以逗號(hào)相連,形成一個(gè)長字符串,寫入文件。ls=['1001','劉麗','86','97','90']fjoin()方法234561f=open("d:\\score3.txt","w",encoding="utf-8")ls=['1001','劉麗',86,97,90]foriinrange(2,len(ls)):ls[i]=str(ls[i])f.write(“,”.join(ls))f.close()#將列表元素處理成字符串#將列表元素通過逗號(hào)連接成大字符串,寫入文件CSV格式:二維數(shù)據(jù)的讀逐行遍歷文件內(nèi)容,將每行字符串line按逗號(hào)分隔,生成子列表lt。將子列表lt添加到二維列表ls中。linels=[['1001','劉麗','86','97','90'],[‘1001’,‘李陽’,‘78’,‘79’,‘65’],[‘1001’,‘張宇','89',‘87',‘85'],[‘1001’,‘趙俊',‘96','95','94']]ItCSV格式:二維數(shù)據(jù)的讀逐行遍歷文件內(nèi)容,將每行字符串line按逗號(hào)分隔,生成子列表lt。將子列表lt添加到二維列表ls中。1234f=open("d:\\score1.txt","r",encoding="utf-8")ls=[]forlineinf:lt=line.strip(“\n”).split(“,”)ls.append(lt)print(ls)f.close()567#子列表添加到二維列表ls中#將文件當(dāng)前行的字符串去除換行符,以逗號(hào)分隔生成子列表ltCSV格式:二維數(shù)據(jù)的寫將逐行遍歷二維列表內(nèi)容,將每個(gè)子列表row的元素,以逗號(hào)相連,形成字符串,加上換行符,寫入到文件中l(wèi)s=[['1001','劉麗','86','97','90'],[‘1001’,‘李陽’,‘78’,‘79’,‘65’],[‘1001’,‘張宇','89',‘87',‘85'],[‘1001’,‘趙俊',‘96','95','94']]rowfCSV格式:二維數(shù)據(jù)的寫1234f=open("d:\\score4.txt","w",encoding="utf-8")ls=[['1001','劉麗','86','97','90'],['1001','李陽','78','79','65'],['1001','張宇','89','87','85'],['1001','趙俊','96','95','94']]forrowinls:f.write(“,”.join(row)+"\n")f.close()5#遍歷二維列表的每個(gè)子列表#將子列表內(nèi)容,用逗號(hào)連接,形成字符串,寫入文件將逐行遍歷二維列表內(nèi)容,將每個(gè)子列表row的元素,以逗號(hào)相連,形成字符串,加上換行符,寫入到文件中CSV格式文件,數(shù)據(jù)項(xiàng)的遍歷forlineinf:foriteminline:<對當(dāng)前item數(shù)據(jù)項(xiàng)進(jìn)行處理>由于CSV格式數(shù)據(jù)是規(guī)則的用逗號(hào)隔開的數(shù)據(jù)項(xiàng),因此可以通過遍歷循環(huán),處理各數(shù)據(jù)項(xiàng)。在各行,逐項(xiàng)遍歷當(dāng)前行數(shù)據(jù):對當(dāng)前數(shù)據(jù)項(xiàng)進(jìn)行處理。逐行循環(huán)遍歷文件fCSV格式數(shù)據(jù)的讀取對CSV格式數(shù)據(jù),按行列方式進(jìn)行讀入、輸出。工號(hào),姓名,日期,交易額,柜臺(tái)1001,張三,20190301,2000,化妝品1002,李四,20190301,1800,化妝品1003,王五,20190301,800,食品1004,趙六,20190301,1100,食品1005,周七,20190301,600,日用品1006,錢八,20190301,700,日用品1006,張三,20190301,850,蔬菜水果1001,張三,20190301,600,蔬菜水果1001,張三,20190301,1300,化妝品1002,李四,20190301,1500,化妝品1003,王五,20190301,1000,食品1004,趙六,20190301,1050,食品1005,周七,20190301,580,日用品1006,錢八,20190301,720,日用品1002,李四,20190301,680,蔬菜水果1003,王五,20190301,830,蔬菜水果CSV格式數(shù)據(jù)的讀入對CSV格式數(shù)據(jù),按行列方式進(jìn)行讀入、輸出。1234f=open("D:\\a.csv","r",encoding="utf-8")forlineinf:foriteminline:print(item,end="")f.close()5實(shí)例解析:

超市銷售額統(tǒng)計(jì)超市銷售額統(tǒng)計(jì)已知文件a.csv,記錄了某超市1天的營業(yè)額,現(xiàn)在要求編程,統(tǒng)計(jì)每個(gè)員工的銷售總額,以及每個(gè)柜臺(tái)的銷售總額。統(tǒng)計(jì)每個(gè)員工銷售總額問題分析如何讀入CSV格式二維數(shù)據(jù)?如何匯總同一個(gè)員工的銷售記錄?用于計(jì)算

銷售總額?統(tǒng)計(jì)每個(gè)員工銷售總額將CSV格式二維數(shù)據(jù),讀入到二維列表ls;下標(biāo)方式遍歷二維列表,用字典統(tǒng)計(jì)員工銷售總額,字典鍵值對為“姓名:

銷售總額”;遍歷字典,輸出各員工銷售總額。實(shí)現(xiàn)思路統(tǒng)計(jì)每個(gè)員工銷售總額12345f=open("d:\\a.csv","r",encoding="utf-8")d={}ls=[]forlineinf:lt=line.strip("\n").split(",")ls.append(lt)foriinrange(1,len(ls)):d[ls[i][1]]=d.get(ls[i][1],0)+int(ls[i][3])678實(shí)現(xiàn)代碼91011foritemind:print("{}:{}".format(item,d[item]))f.close()二維列表ls統(tǒng)計(jì)每個(gè)員工銷售總額12345f=open("d:\\a.csv","r",encoding="utf-8")d={}ls=[]forlineinf:lt=line.strip("\n").split(",")ls.append(lt)foriinrange(1,len(ls)):d[ls[i][1]]=d.get(ls[i][1],0)+int(ls[i][3])678實(shí)現(xiàn)代碼91011foritemind:print("{}:{}".format(item,d[item]))f.close()趙六:2150王五:2630李四:3980周七:1180張三:4750錢八:1420>>>統(tǒng)計(jì)每個(gè)柜臺(tái)銷售總額12345f=open("d:\\a.csv","r",encoding="utf-8")d={}ls=[]forlineinf:lt=line.strip("\n").split(",")ls.append(lt)foriinrange(1,len(ls)):d[ls[i][4]]=d.get(ls[i][4],0)+int(ls[i][4])678實(shí)現(xiàn)代碼91011foritemind:print("{}:{}".format(item,d[item]))f.close()二維列表ls統(tǒng)計(jì)每個(gè)柜臺(tái)銷售總額12345f=open("d:\\a.csv","r",encoding="utf-8")d={}ls=[]forlineinf:lt=line.strip("\n").split(",")ls.append(lt)foriinrange(1,len(ls)):d[ls[i][1]]=d.get(ls[i][4],0)+int(ls[i][4])678實(shí)現(xiàn)代碼91011foritemind:print("{}:{}".format(item,d[item]))f.close()食品:3950蔬菜水果:2960日用品:2600化妝品:6600>>>實(shí)例解析:

總評成績計(jì)算編寫程序,讀入scores.csv文件數(shù)據(jù),包括學(xué)號(hào)、平時(shí)成績、期末成績3列。根據(jù)平時(shí)成績占40%,期末成績占60%的比例計(jì)算總評成績,并按學(xué)號(hào)、總評成績兩列寫入另一個(gè)文件scored.csv文件中。scores.csvscored.csv問題分析逐行遍歷源數(shù)據(jù)文件,如何計(jì)算總評成績?如何將學(xué)號(hào)、總評成績,作為記錄,逐行寫入

目標(biāo)數(shù)據(jù)文件?實(shí)現(xiàn)思路文件對象f1讀入scores.csv數(shù)據(jù),文件對象f2寫scored.csv數(shù)據(jù)逐行遍歷f1文件內(nèi)容,根據(jù)第2、3兩列數(shù)據(jù),計(jì)算出總評成績f2f1實(shí)現(xiàn)思路形成[學(xué)號(hào),總評成績]子列表,逐行加入二維列表ls中遍歷列表ls,逐行將數(shù)據(jù)寫入f2文件f2f1實(shí)現(xiàn)代碼f1=open("D:\\scores.csv","r")f2=open("D:\\scored.csv","w")ls=[]forlineinf1:lt=line.strip("\n").split(",")

s=eval(lt[1])*0.4+eval(lt[2])*0.6ls.append([lt[0],str(s)])forrowinls:f2.write(",".join(row)+"\n")f1.close()f2.close()1234567891011CSV格式文件讀寫總結(jié)line二維列表ls=[[..,..,..,…],[..,..,..,…],[..,..,..,…],[..,..,..,…],……]ltrowlt=line.strip(“\n”).split(“,”)將文件內(nèi)容讀取到列表將列表內(nèi)容寫入到文件f.write(“,”.join(row)+”\n”)文件f《春江花月夜》——字頻統(tǒng)計(jì)應(yīng)用實(shí)例這里給出《春江花月夜》文本,保存在“春江花月夜.txt”文件中。請編寫程序,對《春江花月夜》文本中出現(xiàn)的漢字及標(biāo)點(diǎn)符號(hào)進(jìn)行統(tǒng)計(jì),字符與出現(xiàn)次數(shù)之間用冒號(hào):分隔,輸出保存到“字頻統(tǒng)計(jì).txt”文件中,該文件要求采用CSV格式存儲(chǔ)。參考格式如下(注意,不統(tǒng)計(jì)空格和回車字符):春:4,江:12,花:2,月:15,夜:2應(yīng)用實(shí)例分析定義兩個(gè)文件對象,f1用于讀文件,f2用于寫文件s保存f1讀入的字符串,并去除換行和空格遍歷字符串s,將各字符及字頻用字典進(jìn)行統(tǒng)計(jì)將字典內(nèi)容按指定格式寫入CSV格式文件應(yīng)用實(shí)例《春江花月夜》字頻統(tǒng)計(jì)

f1=open("D:\\春江花月夜.txt","r")f2=open("D:\\字頻統(tǒng)計(jì).txt","w")s=f1.read()s=s.strip("\n").strip()d={}forchins:d[ch]=d.get(ch,0)+1foriind:f2.write("{}:{},".format(i,d[i]))f1.close()f2.close()單元小結(jié)

本單元講解了文件的基本使用方法,包括文件的打開、關(guān)閉、讀取和寫入。進(jìn)一步講解了CSV格式文件數(shù)據(jù)的表示、存儲(chǔ)和處理方法。通過總評成績計(jì)算的實(shí)例幫助大家理解數(shù)據(jù)處理的基本方法。第8章Python常用標(biāo)準(zhǔn)庫turtle庫知識(shí)CONTENT要點(diǎn)Random庫turtle庫turtle(海龜)是Python的圖形繪制庫。原理控制一只小海龜,以不同的方向和速度進(jìn)行位移,而得到的運(yùn)動(dòng)軌跡。知識(shí)要點(diǎn)turtle庫的導(dǎo)入turtle庫的函數(shù)與應(yīng)用random庫的函數(shù)與應(yīng)用導(dǎo)入turtle庫importturtle,函數(shù)調(diào)用turtle.<函數(shù)名>()形式。fromturtleimport*,函數(shù)調(diào)用<函數(shù)名>()形式。importturtleast,將turtle庫賦予別名t。函數(shù)調(diào)用t.<函數(shù)名>()形式。設(shè)置窗體的函數(shù)setup()函數(shù),用于初始化畫布窗口大小和位置。setup(640,480,300,200),表示在桌面屏幕(300,200)位置開始創(chuàng)建640×480大小的畫布窗體。turtle庫角度坐標(biāo)體系(絕對角度)(0,0)0?/-360?90?/-270?180?/-180?270?/-90?xy設(shè)置畫筆狀態(tài)的函數(shù)函數(shù)功能pensize(width)設(shè)置畫筆線條的粗細(xì)pencolor()設(shè)置畫筆的顏色fillcolor()設(shè)置填充顏色color(color1,color2)同時(shí)設(shè)置畫筆顏色和填充顏色begin_fill()開始填充圖形end_fill()結(jié)束填充圖形pendown()放下畫筆penup()提起畫筆setx()移動(dòng)x軸到指定位置sety()移動(dòng)y軸到指定位置goto(x,y)移動(dòng)畫筆到坐標(biāo)(x,y)繪制同切圓importturtleturtle.setup(600,480)turtle.circle(50)turtle.circle(75)turtle.circle(100)設(shè)置顏色的函數(shù)pencolor()設(shè)置畫筆顏色、fillcolor()設(shè)置填充顏色、color()同時(shí)設(shè)置畫筆和填充顏色。表示顏色的字符串,例如:“red”、“blue”等。也可以是(r,g,b):顏色對應(yīng)[0,1]數(shù)值,例如:(1,0,0)繪制同切圓fromturtleimport*setup(600,480)color("red","blue")begin_fill()circle(100)end_fill()pencolor(0.5,0.5,0.5)fillcolor(0.5,0.9,0.8)begin_fill()circle(50)end_fill()控制畫筆運(yùn)動(dòng)的函數(shù)方法功能forward()沿畫筆方向前進(jìn)指定距離,簡寫fd()backward()沿畫筆方向后退指定距離,簡寫bk()left()畫筆方向左轉(zhuǎn)指定角度right()畫筆方向右轉(zhuǎn)指定角度setheading(angle)設(shè)置畫筆方向絕對角度,簡寫seth()home()畫筆返回原點(diǎn)circle(r,e)繪制一個(gè)指定半徑r和角度e的圓或圓弧write(text,align,font)輸出文本text,可設(shè)置對齊方式、字體等speed()設(shè)置畫筆的繪制速度,參數(shù)為0-10之間實(shí)例解析:turtle庫繪圖繪制同心圓,半徑30、60、90以原點(diǎn)(0,0)作為圓心設(shè)置海龜起始點(diǎn),坐標(biāo)(0,-30),(0,-60),(0,-90)變化逆時(shí)針繪制半徑分別是30,60,90的圓importturtleastforiinrange(3):t.penup()t.goto(0,-30*i)t.pendown()t.circle(30*i+30)123456繪制邊長為200的五角星海龜前進(jìn)200像素改變前進(jìn)角度:right(144?)重復(fù)上述步驟,5次fromturtleimport*setup(640,480,300,200)pensize(3)foriinrange(5):fd(200)right(144)123456繪制半徑為100的四瓣花一個(gè)花瓣可以看作是兩個(gè)圓相交的部分構(gòu)成繪制圓弧1:從原點(diǎn)(0,0)出發(fā),繪制90?圓弧結(jié)束。此刻坐標(biāo)(100,100)處,小海龜朝向:絕對角度90?修改小海龜?shù)某?,向左旋轉(zhuǎn)90?繪制圓弧2:從該點(diǎn)出發(fā),繪制90?圓弧結(jié)束。此刻,坐標(biāo)(0,0),小海龜朝向:絕對角度270?繪制半徑為100的四瓣花importturtleastt.pensize(5)t.pencolor("red")t.seth(0)t.circle(100,90)t.left(90)t.circle(100,90)(0,0)(100,100)繪制半徑為100的四瓣花將初始的絕對角度,0?、90?、180?、270?幅度遞增,重復(fù)4次,繪制一朵四瓣花圖形。修改代碼如下:importturtleastt.pensize(5)t.pencolor("red")foriinrange(4):t.seth(i*90)t.circle(100,90)t.left(90)t.circle(100,90)繪制半徑為100的五瓣花設(shè)置海龜前進(jìn)絕對角度:以72?增幅變化海龜逆時(shí)針繪制圓弧,半徑100,角度108?。改變海龜朝向:left(72?)海龜逆時(shí)針繪制圓弧,半徑100,角度108?。重復(fù)上述步驟,5次。繪制半徑為100的五瓣花importturtleastt.pensize(3)t.color("red")t.fillcolor("yellow")t.begin_fill()foriinrange(5):t.seth(i*72)t.circle(100,108)t.left(72)t.circle(100,108)t.end_fill()五瓣花圖形目前僅產(chǎn)生指定顏色、大小、位置的一朵花。若要產(chǎn)生顏色、大小、位置隨機(jī)的花朵,該如何實(shí)現(xiàn)呢?random庫random庫函數(shù)random庫主要用于產(chǎn)生隨機(jī)數(shù)。導(dǎo)入庫:importrandom函數(shù)功能seed()設(shè)置隨機(jī)數(shù)種子,可以在調(diào)用其他隨機(jī)函數(shù)之前使用random()生成一個(gè)[0.0,1.0)之間的隨機(jī)小數(shù)randint(a,b)生成一個(gè)[a,b]之間的整數(shù)randrange(m,n[,k])生成一個(gè)[m,n)之間以k為步長的隨機(jī)整數(shù)uniform(a,b)生成一個(gè)[a,b]之間的隨機(jī)小數(shù)>>>importrandom>>>random.random()0.48614923936820276>>>random.randint(6,10)6>>>random.uniform(4,6)5.739520964102294random庫函數(shù)random庫主要用于產(chǎn)生隨機(jī)數(shù)。導(dǎo)入庫:importrandom>>>ls=[1,2,3,4,5]>>>random.choice(ls)4>>>random.shuffle(ls)>>>ls[1,4,5,2,3]>>>random.sample(ls,3)[1,2,5]>>>函數(shù)功能choice(seq)從序列類型中隨機(jī)選擇一個(gè)元素返回shuffle(seq)將序列元素次序隨機(jī)打亂sample(seq,n)從序列中隨機(jī)取出n個(gè)元素,組成新的列表random庫函數(shù)>>>importrandom>>>random.seed(100)>>>random.random()0.1456692551041303>>>random.random()0.45492700451402135>>>random.seed(100)>>>random.random()0.1456692551041303>>>random.random()0.45492700451402135>>>random.seed(90)>>>random.random()0.20367044742105156>>>random.random()0.09269342184833151>>>實(shí)例解析:生成隨機(jī)驗(yàn)證碼生成隨機(jī)驗(yàn)證碼隨機(jī)驗(yàn)證碼由4個(gè)字符構(gòu)成每個(gè)字符取自0~9的數(shù)字字符和大小寫字母分析大小寫字母的ASCII碼值在65~123之間每個(gè)密碼取自數(shù)字字符和字母,且固定4位,可使用random庫的sample()函數(shù)生成隨機(jī)驗(yàn)證碼1importrandoms="0123456789"foriinrange(65,124):s=s+chr(i)ls=random.sample(s,4)print("".join(ls))qN35>>>生成隨機(jī)驗(yàn)證碼2importrandoms="0123456789"c=""foriinrange(65,124):s=s+chr(i)forjinrange(4):c=c+random.choice(s)print(c)cCH9>>>實(shí)例解析:簡易發(fā)紅包程序簡易發(fā)紅包程序小李打算發(fā)100元紅包,人數(shù)不限,每個(gè)紅包小于等于10元的金額。編寫程序,要求每發(fā)一個(gè)紅包,輸出一行內(nèi)容,直到發(fā)完為止。例如:第*人,收到*元,剩余*元。簡易發(fā)紅包程序分析循環(huán)處理隨機(jī)生成一個(gè)紅包金額,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論