盤點Python基礎實戰
大家好,我是Python進階者。
前言
前幾天有個叫【-berry】的粉絲在Python交流群里問了一道關于大學生Python題目的問題,如下圖所示。
初步一看,還是覺得有點難的,對于剛學完基礎的小伙伴來說,這個小項目還是有點難度,這個題目主要考察的是random庫、列表、字典、open文件操作等基礎操作,運用實際生活中的例子,確實是一個練手的好題目。
一、思路
其實問題的關鍵點就是在于構造姓名,學號和成績,之后以字典的形式進行寫入文件。這里準備兩個列表,一個姓,一個名,之后使用random庫進行隨機字符串拼接,得到姓名。
二、解決方法
1)TXT文件存儲
直接上代碼,如下所示:
- # !/usr/bin/env python
- # -*- coding:utf-8 -*-
- # @FileName :test.py
- # @Time :2021/9/19 21:34
- # @Author :Cat
- import random
- xing = ['趙','錢','孫','李','周','吳','鄭','王',
- '馮','陳','褚','衛','蔣','沈','韓','楊',
- '朱','秦','尤','許','何','呂','施','張',
- '孔','曹','嚴','華','金','魏','陶','姜',
- '戚','謝','鄒','喻','柏','水','竇','章',
- '云','蘇','潘','葛','奚','范','彭','郎',
- '魯','韋','昌','馬','苗','鳳','花','方',
- '俞','任','袁','柳','酆','鮑','史','唐',
- '費','廉','岑','薛','雷','賀','倪','湯',
- '滕','殷','羅','畢','郝','鄔','安','常',
- '樂','于','時','傅','皮','卞','齊','康',
- '伍','余','元','卜','顧','孟','平','黃',
- '和','穆','蕭','尹','姚','邵','湛','汪',
- '祁','毛','禹','狄','米','貝','明','臧',
- '計','伏','成','戴','談','宋','茅','龐',
- '熊','紀','舒','屈','項','祝','董','梁',]
- ming = [
- '凡','佳','勤','珍','貞','鴻','煥','風','朗',
- '浩','亮','政','謙','振','壯','偉','剛','勇','毅','俊','峰','強','軍','平','保','東','文','輝','力','固','之','段','殿','泰',
- '利','清','飛','彬','富','順','信','子','杰','濤','昌','成','康','星','翰','誠','博','先','敬',
- '若','鳴','朋','斌','梁','棟','維','啟','克','倫','翔','旭','鵬','澤','朗','伯','彪','晉','晟',
- '誠','先','敬','震','振','壯','會','思','群','豪','心','邦','承','樂','宏','言','旲','旻','昊',
- '光','天','達','安','巖','中','茂','進','林','有','堅','和','彪','博','泰','盛','振','挺','掣',
- '明','永','健','世','廣','志','義','興','良','海','山','仁','波','寧','行','時','志','忠','思',
- '紹','功','松','善','厚','慶','磊','民','友','裕','河','哲','江','超','炎','德','彰','征','律',
- '晨','辰','士','以','建','家','致','煜','煊','炎','波','寧','貴','福','生','龍','元','全','國',
- '勝','學','祥','才','發','武','新','利','清','飛','彬','富','順','信','子','杰','濤','昌','成',
- '康','星','光','天','達','安','巖','中','茂','進','林','有','堅','和'
- ]
- with open('students.txt', 'a', encoding='utf-8') as f:
- for i in range(9):
- item = {}
- item['姓名'] = random.choice(xing) + random.choice(ming)
- item['學號'] = str(2020010001 + i)
- item['成績'] = random.randint(0, 100)
- f.write(str(item))
- f.write('\n')
運行之后,得到的結果如下所示:
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 = ['姓名', '學號', '成績']
- xing = ['趙','錢','孫','李','周','吳','鄭','王',
- '馮','陳','褚','衛','蔣','沈','韓','楊',
- '朱','秦','尤','許','何','呂','施','張',
- '孔','曹','嚴','華','金','魏','陶','姜',
- '戚','謝','鄒','喻','柏','水','竇','章',
- '云','蘇','潘','葛','奚','范','彭','郎',
- '魯','韋','昌','馬','苗','鳳','花','方',
- '俞','任','袁','柳','酆','鮑','史','唐',
- '費','廉','岑','薛','雷','賀','倪','湯',
- '滕','殷','羅','畢','郝','鄔','安','常',
- '樂','于','時','傅','皮','卞','齊','康',
- '伍','余','元','卜','顧','孟','平','黃',
- '和','穆','蕭','尹','姚','邵','湛','汪',
- '祁','毛','禹','狄','米','貝','明','臧',
- '計','伏','成','戴','談','宋','茅','龐',
- '熊','紀','舒','屈','項','祝','董','梁',]
- ming = [
- '凡','佳','勤','珍','貞','鴻','煥','風','朗',
- '浩','亮','政','謙','振','壯','偉','剛','勇','毅','俊','峰','強','軍','平','保','東','文','輝','力','固','之','段','殿','泰',
- '利','清','飛','彬','富','順','信','子','杰','濤','昌','成','康','星','翰','誠','博','先','敬',
- '若','鳴','朋','斌','梁','棟','維','啟','克','倫','翔','旭','鵬','澤','朗','伯','彪','晉','晟',
- '誠','先','敬','震','振','壯','會','思','群','豪','心','邦','承','樂','宏','言','旲','旻','昊',
- '光','天','達','安','巖','中','茂','進','林','有','堅','和','彪','博','泰','盛','振','挺','掣',
- '明','永','健','世','廣','志','義','興','良','海','山','仁','波','寧','行','時','志','忠','思',
- '紹','功','松','善','厚','慶','磊','民','友','裕','河','哲','江','超','炎','德','彰','征','律',
- '晨','辰','士','以','建','家','致','煜','煊','炎','波','寧','貴','福','生','龍','元','全','國',
- '勝','學','祥','才','發','武','新','利','清','飛','彬','富','順','信','子','杰','濤','昌','成',
- '康','星','光','天','達','安','巖','中','茂','進','林','有','堅','和'
- ]
- 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['學號'] = str(2020010001 + i)
- item['成績'] = random.randint(0, 100)
- csv_writer.writerow(item)
運行之后,得到的結果如下所示:
每次運行程序之后,得到的txt和csv文件中的內容都是隨機獲取的,完成需求。
三、總結
我是Python進階者。本文基于粉絲提問,完成了一道Python基礎實戰題目,主要涉及的知識點是random庫、列表、字典、文件讀取等知識。這個題目倒不是很難,解題方法肯定還有很多種,歡迎大家積極嘗試,有好方法記得也分享給我學習下噢!