盤點(diǎn)一道Python基礎(chǔ)實(shí)戰(zhàn)題目
回復(fù)“書籍”即可獲贈Python從入門到進(jìn)階共10本電子書
????大家好,我是Python進(jìn)階者。
前言
????前幾天有個叫【-berry】的粉絲在Python交流群里問了一道關(guān)于大學(xué)生Python題目的問題,如下圖所示。

? ? 初步一看,還是覺得有點(diǎn)難的,對于剛學(xué)完基礎(chǔ)的小伙伴來說,這個小項(xiàng)目還是有點(diǎn)難度,這個題目主要考察的是random庫、列表、字典、open文件操作等基礎(chǔ)操作,運(yùn)用實(shí)際生活中的例子,確實(shí)是一個練手的好題目。
一、思路
????其實(shí)問題的關(guān)鍵點(diǎn)就是在于構(gòu)造姓名,學(xué)號和成績,之后以字典的形式進(jìn)行寫入文件。這里準(zhǔn)備兩個列表,一個姓,一個名,之后使用random庫進(jìn)行隨機(jī)字符串拼接,得到姓名。
二、解決方法
直接上代碼,如下所示:
# !/usr/bin/env python# -*- coding:utf-8 -*-# @FileName :test.py# @Time :2021/9/19 21:34# @Author :Catimport randomxing = ['趙','錢','孫','李','周','吳','鄭','王','馮','陳','褚','衛(wèi)','蔣','沈','韓','楊','朱','秦','尤','許','何','呂','施','張','孔','曹','嚴(yán)','華','金','魏','陶','姜','戚','謝','鄒','喻','柏','水','竇','章','云','蘇','潘','葛','奚','范','彭','郎','魯','韋','昌','馬','苗','鳳','花','方','俞','任','袁','柳','酆','鮑','史','唐','費(fèi)','廉','岑','薛','雷','賀','倪','湯','滕','殷','羅','畢','郝','鄔','安','常','樂','于','時','傅','皮','卞','齊','康','伍','余','元','卜','顧','孟','平','黃','和','穆','蕭','尹','姚','邵','湛','汪','祁','毛','禹','狄','米','貝','明','臧','計(jì)','伏','成','戴','談','宋','茅','龐','熊','紀(jì)','舒','屈','項(xiàng)','祝','董','梁',]ming = ['凡','佳','勤','珍','貞','鴻','煥','風(fēng)','朗','浩','亮','政','謙','振','壯','偉','剛','勇','毅','俊','峰','強(qiáng)','軍','平','保','東','文','輝','力','固','之','段','殿','泰','利','清','飛','彬','富','順','信','子','杰','濤','昌','成','康','星','翰','誠','博','先','敬','若','鳴','朋','斌','梁','棟','維','啟','克','倫','翔','旭','鵬','澤','朗','伯','彪','晉','晟','誠','先','敬','震','振','壯','會','思','群','豪','心','邦','承','樂','宏','言','旲','旻','昊','光','天','達(dá)','安','巖','中','茂','進(jìn)','林','有','堅(jiān)','和','彪','博','泰','盛','振','挺','掣','明','永','健','世','廣','志','義','興','良','海','山','仁','波','寧','行','時','志','忠','思','紹','功','松','善','厚','慶','磊','民','友','裕','河','哲','江','超','炎','德','彰','征','律','晨','辰','士','以','建','家','致','煜','煊','炎','波','寧','貴','福','生','龍','元','全','國','勝','學(xué)','祥','才','發(fā)','武','新','利','清','飛','彬','富','順','信','子','杰','濤','昌','成','康','星','光','天','達(dá)','安','巖','中','茂','進(jìn)','林','有','堅(jiān)','和']with open('students.txt', 'a', encoding='utf-8') as f:for i in range(9):item = {}item['姓名'] = random.choice(xing) + random.choice(ming)item['學(xué)號'] = str(2020010001 + i)item['成績'] = random.randint(0, 100)f.write(str(item))????????f.write('\n')
運(yùn)行之后,得到的結(jié)果如下所示:
# !/usr/bin/env python# -*- coding:utf-8 -*-# @FileName :test_csv.py# @Time :2021/9/26 21:01# @Author :Catimport randomimport csvheaders = ['姓名', '學(xué)號', '成績']xing = ['趙','錢','孫','李','周','吳','鄭','王','馮','陳','褚','衛(wèi)','蔣','沈','韓','楊','朱','秦','尤','許','何','呂','施','張','孔','曹','嚴(yán)','華','金','魏','陶','姜','戚','謝','鄒','喻','柏','水','竇','章','云','蘇','潘','葛','奚','范','彭','郎','魯','韋','昌','馬','苗','鳳','花','方','俞','任','袁','柳','酆','鮑','史','唐','費(fèi)','廉','岑','薛','雷','賀','倪','湯','滕','殷','羅','畢','郝','鄔','安','常','樂','于','時','傅','皮','卞','齊','康','伍','余','元','卜','顧','孟','平','黃','和','穆','蕭','尹','姚','邵','湛','汪','祁','毛','禹','狄','米','貝','明','臧','計(jì)','伏','成','戴','談','宋','茅','龐','熊','紀(jì)','舒','屈','項(xiàng)','祝','董','梁',]ming = ['凡','佳','勤','珍','貞','鴻','煥','風(fēng)','朗','浩','亮','政','謙','振','壯','偉','剛','勇','毅','俊','峰','強(qiáng)','軍','平','保','東','文','輝','力','固','之','段','殿','泰','利','清','飛','彬','富','順','信','子','杰','濤','昌','成','康','星','翰','誠','博','先','敬','若','鳴','朋','斌','梁','棟','維','啟','克','倫','翔','旭','鵬','澤','朗','伯','彪','晉','晟','誠','先','敬','震','振','壯','會','思','群','豪','心','邦','承','樂','宏','言','旲','旻','昊','光','天','達(dá)','安','巖','中','茂','進(jìn)','林','有','堅(jiān)','和','彪','博','泰','盛','振','挺','掣','明','永','健','世','廣','志','義','興','良','海','山','仁','波','寧','行','時','志','忠','思','紹','功','松','善','厚','慶','磊','民','友','裕','河','哲','江','超','炎','德','彰','征','律','晨','辰','士','以','建','家','致','煜','煊','炎','波','寧','貴','福','生','龍','元','全','國','勝','學(xué)','祥','才','發(fā)','武','新','利','清','飛','彬','富','順','信','子','杰','濤','昌','成','康','星','光','天','達(dá)','安','巖','中','茂','進(jìn)','林','有','堅(jiān)','和']with open('students.csv', 'a', encoding='utf-8', newline='') as f:csv_writer = csv.DictWriter(f, headers)csv_writer.writeheader()for i in range(9):item = {}item['姓名'] = random.choice(xing) + random.choice(ming)item['學(xué)號'] = str(2020010001 + i)item['成績'] = random.randint(0, 100)csv_writer.writerow(item)
運(yùn)行之后,得到的結(jié)果如下所示:

每次運(yùn)行程序之后,得到的txt和csv文件中的內(nèi)容都是隨機(jī)獲取的,完成需求。
三、總結(jié)
??? 我是Python進(jìn)階者。本文基于粉絲提問,完成了一道Python基礎(chǔ)實(shí)戰(zhàn)題目,主要涉及的知識點(diǎn)是random庫、列表、字典、文件讀取等知識。這個題目倒不是很難,解題方法肯定還有很多種,歡迎大家積極嘗試,有好方法記得也分享給我學(xué)習(xí)下噢!

????小伙伴們,快快用實(shí)踐一下吧!如果在學(xué)習(xí)過程中,有遇到任何問題,歡迎加我好友,我拉你進(jìn)Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。
-------------------?End?-------------------
往期精彩文章推薦:

歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學(xué)習(xí)群請?jiān)诤笈_回復(fù)【入群】
萬水千山總是情,點(diǎn)個【在看】行不行
/今日留言主題/
隨便說一兩句吧~~
