人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

Python 處理表格進行成績排序的操作代碼

發(fā)布日期:2022-02-21 16:35 | 文章來源:站長之家

一、需求分析

我們首先有一個成績表單,但是學生的成績是按照學號進行排序的,現(xiàn)在,我們希望清晰明了的知道每一個學生的名次,并且需要將學生按照成績的高低重新進行排序。

也就是說,我們將學生從按照學號排序轉(zhuǎn)變?yōu)榘凑粘煽儚母叩降瓦M行排序。

二、代碼呈現(xiàn)

這個需求其實比較簡單,于是,我們直接呈現(xiàn)代碼,主要問題是Excel表格的讀寫操作,這個解決以后就十分簡單了。

Excel讀:xlrd模塊
Excel寫:xlwt模塊

代碼以及解釋如下:

import xlwt
import xlrd
# 導入模塊
wb = xlwt.Workbook()  
# 創(chuàng)建 excel 表格
xls_0 = xlrd.open_workbook("四年級1.xls")
# 讀取表格文件
for i in range(4, 8, 1):
 # 讀取不同的表單
 new_sheet = xls_0.sheet_by_index(i)
 sh = wb.add_sheet(f'{new_sheet.name}.xls')  # 創(chuàng)建一個 表單
 # 設(shè)置空列表進行數(shù)據(jù)的存儲
 id_list = []
 name_list = []
 score_list = []
 # 讀取表格的數(shù)據(jù)
 for o in range(3):  # 3 列
  for t in range(20):  # 20 行
# 獲取學號、姓名、成績等信息
id_list.append(new_sheet.cell(t + 3, 3 * o).value)
name_list.append(new_sheet.cell(t + 3, 3 * o + 1).value)
score_list.append(new_sheet.cell(t + 3, 3 * o + 2).value)
 # 獲取數(shù)據(jù)
 # 進行一定的預處理,去除不存在的人
 # 意思是說:有些位置是空的,這些位置需要去除掉
 for number in range(len(id_list)):
  # 由于進行的是刪除操作,所以可能會出現(xiàn)下標越界的情況,為了防止這種情況的出現(xiàn),我們進行異常處理
  try:
if name_list[number] == '' or score_list[number] == '' or score_list[number] == '請假':
 # 這個實際上是去除空值
 id_list.pop(number)
 name_list.pop(number)
 score_list.pop(number)
  except:
continue
 # 去除不存在的人
 # 進行排序的操作
 for h in range(len(id_list)):
  # len(id_list) 次循環(huán)
  for s in range(len(id_list) - 1):
# 這里是進行 len(id_list) - 1 次循環(huán)
try:
 if score_list[s] >= score_list[s + 1]:
  pass
 else:
  score_list[s], score_list[s + 1] = score_list[s + 1], score_list[s]
  name_list[s], name_list[s + 1] = name_list[s + 1], name_list[s]
  id_list[s], id_list[s + 1] = id_list[s + 1], id_list[s]
except:
 continue
 # 冒泡排序
 # 將數(shù)據(jù)寫入文件
 position = 0
 
 for h in range(len(id_list)):
  # 寫入文件
  sh.write(position, 0, id_list[h])
  sh.write(position, 1, name_list[h])
  sh.write(position, 2, score_list[h])
  position += 1
 # 寫入文件中去
# 保存文件
wb.save(f'四年級1-五至八班-分數(shù)排序.xls')  
# 保存

在這里,我們使用了冒泡排序,當然,如果想要運行的更快一些,可以考慮希爾排序,堆排序,快速排序等排序方式,但是要注意,學號、姓名、分數(shù)一定要同時進行排序,就是說這三個量應(yīng)該捆綁在一起移動,而移動的原則就是分數(shù)高低。

三、成果展示

圖片1、

圖片2、


圖片3、

圖片4、

到此這篇關(guān)于Python 處理表格進行成績排序的操作代碼的文章就介紹到這了,更多相關(guān)Python成績排序內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

國外服務(wù)器租用

版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部