盤點(diǎn)Python基礎(chǔ)實(shí)戰(zhàn)
大家好,我是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ī)字符串拼接,得到姓名。
二、解決方法
1)TXT文件存儲
直接上代碼,如下所示:
- # !/usr/bin/env python
- # -*- coding:utf-8 -*-
- # @FileName :test.py
- # @Time :2021/9/19 21:34
- # @Author :Cat
- import random
- xing = ['趙','錢','孫','李','周','吳','鄭','王',
- '馮','陳','褚','衛(wèi)','蔣','沈','韓','楊',
- '朱','秦','尤','許','何','呂','施','張',
- '孔','曹','嚴(yán)','華','金','魏','陶','姜',
- '戚','謝','鄒','喻','柏','水','竇','章',
- '云','蘇','潘','葛','奚','范','彭','郎',
- '魯','韋','昌','馬','苗','鳳','花','方',
- '俞','任','袁','柳','酆','鮑','史','唐',
- '費(fèi)','廉','岑','薛','雷','賀','倪','湯',
- '滕','殷','羅','畢','郝','鄔','安','常',
- '樂','于','時','傅','皮','卞','齊','康',
- '伍','余','元','卜','顧','孟','平','黃',
- '和','穆','蕭','尹','姚','邵','湛','汪',
- '祁','毛','禹','狄','米','貝','明','臧',
- '計','伏','成','戴','談','宋','茅','龐',
- '熊','紀(jì)','舒','屈','項(xiàng)','祝','董','梁',]
- ming = [
- '凡','佳','勤','珍','貞','鴻','煥','風(fēng)','朗',
- '浩','亮','政','謙','振','壯','偉','剛','勇','毅','俊','峰','強(qiáng)','軍','平','保','東','文','輝','力','固','之','段','殿','泰',
- '利','清','飛','彬','富','順','信','子','杰','濤','昌','成','康','星','翰','誠','博','先','敬',
- '若','鳴','朋','斌','梁','棟','維','啟','克','倫','翔','旭','鵬','澤','朗','伯','彪','晉','晟',
- '誠','先','敬','震','振','壯','會','思','群','豪','心','邦','承','樂','宏','言','旲','旻','昊',
- '光','天','達(dá)','安','巖','中','茂','進(jìn)','林','有','堅','和','彪','博','泰','盛','振','挺','掣',
- '明','永','健','世','廣','志','義','興','良','海','山','仁','波','寧','行','時','志','忠','思',
- '紹','功','松','善','厚','慶','磊','民','友','裕','河','哲','江','超','炎','德','彰','征','律',
- '晨','辰','士','以','建','家','致','煜','煊','炎','波','寧','貴','福','生','龍','元','全','國',
- '勝','學(xué)','祥','才','發(fā)','武','新','利','清','飛','彬','富','順','信','子','杰','濤','昌','成',
- '康','星','光','天','達(dá)','安','巖','中','茂','進(jì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é)果如下所示:
2)CSV文件存儲
代碼如下所示:
- # !/usr/bin/env python
- # -*- coding:utf-8 -*-
- # @FileName :test_csv.py
- # @Time :2021/9/26 21:01
- # @Author :Cat
- import random
- import csv
- headers = ['姓名', '學(xué)號', '成績']
- xing = ['趙','錢','孫','李','周','吳','鄭','王',
- '馮','陳','褚','衛(wèi)','蔣','沈','韓','楊',
- '朱','秦','尤','許','何','呂','施','張',
- '孔','曹','嚴(yán)','華','金','魏','陶','姜',
- '戚','謝','鄒','喻','柏','水','竇','章',
- '云','蘇','潘','葛','奚','范','彭','郎',
- '魯','韋','昌','馬','苗','鳳','花','方',
- '俞','任','袁','柳','酆','鮑','史','唐',
- '費(fèi)','廉','岑','薛','雷','賀','倪','湯',
- '滕','殷','羅','畢','郝','鄔','安','常',
- '樂','于','時','傅','皮','卞','齊','康',
- '伍','余','元','卜','顧','孟','平','黃',
- '和','穆','蕭','尹','姚','邵','湛','汪',
- '祁','毛','禹','狄','米','貝','明','臧',
- '計','伏','成','戴','談','宋','茅','龐',
- '熊','紀(jì)','舒','屈','項(xiàng)','祝','董','梁',]
- ming = [
- '凡','佳','勤','珍','貞','鴻','煥','風(fēng)','朗',
- '浩','亮','政','謙','振','壯','偉','剛','勇','毅','俊','峰','強(qiáng)','軍','平','保','東','文','輝','力','固','之','段','殿','泰',
- '利','清','飛','彬','富','順','信','子','杰','濤','昌','成','康','星','翰','誠','博','先','敬',
- '若','鳴','朋','斌','梁','棟','維','啟','克','倫','翔','旭','鵬','澤','朗','伯','彪','晉','晟',
- '誠','先','敬','震','振','壯','會','思','群','豪','心','邦','承','樂','宏','言','旲','旻','昊',
- '光','天','達(dá)','安','巖','中','茂','進(jìn)','林','有','堅','和','彪','博','泰','盛','振','挺','掣',
- '明','永','健','世','廣','志','義','興','良','海','山','仁','波','寧','行','時','志','忠','思',
- '紹','功','松','善','厚','慶','磊','民','友','裕','河','哲','江','超','炎','德','彰','征','律',
- '晨','辰','士','以','建','家','致','煜','煊','炎','波','寧','貴','福','生','龍','元','全','國',
- '勝','學(xué)','祥','才','發(fā)','武','新','利','清','飛','彬','富','順','信','子','杰','濤','昌','成',
- '康','星','光','天','達(dá)','安','巖','中','茂','進(jì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í)下噢!