最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 處理表格進(jìn)行成績(jī)排序的操作代碼

 更新時(shí)間:2021年07月26日 10:59:29   作者:hhh_Moon_hhh  
這篇文章主要介紹了Python 處理表格進(jìn)行成績(jī)排序,也就是說將學(xué)生從按照學(xué)號(hào)排序變?yōu)榘凑粘煽?jī)從高到低進(jìn)行排序,具體實(shí)現(xiàn)代碼跟隨小編一起看看吧

一、需求分析

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

也就是說,我們將學(xué)生從按照學(xué)號(hào)排序轉(zhuǎn)變?yōu)榘凑粘煽?jī)從高到低進(jìn)行排序。

二、代碼呈現(xiàn)

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

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

代碼以及解釋如下:

import xlwt
import xlrd
# 導(dǎo)入模塊

wb = xlwt.Workbook()  
# 創(chuàng)建 excel 表格
xls_0 = xlrd.open_workbook("四年級(jí)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)建一個(gè) 表單

    # 設(shè)置空列表進(jìn)行數(shù)據(jù)的存儲(chǔ)
    id_list = []
    name_list = []
    score_list = []

    # 讀取表格的數(shù)據(jù)
    for o in range(3):  # 3 列
        for t in range(20):  # 20 行
            # 獲取學(xué)號(hào)、姓名、成績(jī)等信息
            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ù)

    # 進(jìn)行一定的預(yù)處理,去除不存在的人
    # 意思是說:有些位置是空的,這些位置需要去除掉
    for number in range(len(id_list)):
        # 由于進(jìn)行的是刪除操作,所以可能會(huì)出現(xiàn)下標(biāo)越界的情況,為了防止這種情況的出現(xiàn),我們進(jìn)行異常處理
        try:
            if name_list[number] == '' or score_list[number] == '' or score_list[number] == '請(qǐng)假':
                # 這個(gè)實(shí)際上是去除空值
                id_list.pop(number)
                name_list.pop(number)
                score_list.pop(number)
        except:
            continue
    # 去除不存在的人

    # 進(jìn)行排序的操作
    for h in range(len(id_list)):
        # len(id_list) 次循環(huán)
        for s in range(len(id_list) - 1):
            # 這里是進(jìn)行 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'四年級(jí)1-五至八班-分?jǐn)?shù)排序.xls')  
# 保存

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

三、成果展示

圖片1、

在這里插入圖片描述

圖片2、

在這里插入圖片描述
圖片3、

在這里插入圖片描述

圖片4、

在這里插入圖片描述

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

相關(guān)文章

  • python實(shí)現(xiàn)自動(dòng)清理重復(fù)文件

    python實(shí)現(xiàn)自動(dòng)清理重復(fù)文件

    這篇文章主要介紹了python如何實(shí)現(xiàn)自動(dòng)清理重復(fù)文件,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • Python中函數(shù)的創(chuàng)建與調(diào)用你了解嗎

    Python中函數(shù)的創(chuàng)建與調(diào)用你了解嗎

    這篇文章主要為大家詳細(xì)介紹了Python中函數(shù)的創(chuàng)建與調(diào)用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 分享5個(gè)數(shù)據(jù)處理更加靈活的pandas調(diào)用函數(shù)方法

    分享5個(gè)數(shù)據(jù)處理更加靈活的pandas調(diào)用函數(shù)方法

    這篇文章主要介紹了分享5個(gè)數(shù)據(jù)處理更加靈活的pandas調(diào)用函數(shù)方法,文章基于python的相關(guān)內(nèi)容展開詳細(xì)介紹,需要的小伙伴可以參考一下
    2022-04-04
  • python使用itchat實(shí)現(xiàn)手機(jī)控制電腦

    python使用itchat實(shí)現(xiàn)手機(jī)控制電腦

    這篇文章主要為大家詳細(xì)介紹了python使用itchat實(shí)現(xiàn)手機(jī)控制電腦,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python讀寫及備份oracle數(shù)據(jù)庫(kù)操作示例

    Python讀寫及備份oracle數(shù)據(jù)庫(kù)操作示例

    這篇文章主要介紹了Python讀寫及備份oracle數(shù)據(jù)庫(kù)操作,結(jié)合實(shí)例形式分析了Python針對(duì)Oracle數(shù)據(jù)庫(kù)操作的相關(guān)庫(kù)安裝,以及使用cx_Oracle與pandas庫(kù)進(jìn)行Oracle數(shù)據(jù)庫(kù)的查詢、插入、備份等操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-05-05
  • python寫入已存在的excel數(shù)據(jù)實(shí)例

    python寫入已存在的excel數(shù)據(jù)實(shí)例

    下面小編就為大家分享一篇python寫入已存在的excel數(shù)據(jù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python中的shutil標(biāo)準(zhǔn)庫(kù)用法解析

    Python中的shutil標(biāo)準(zhǔn)庫(kù)用法解析

    這篇文章主要介紹了Python中的shutil標(biāo)準(zhǔn)庫(kù)用法解析,shutil模塊提供了許多關(guān)于文件和文件集合的高級(jí)操作,特別提供了支持文件復(fù)制和刪除的功能,需要的朋友可以參考下
    2023-09-09
  • python爬蟲爬取bilibili網(wǎng)頁(yè)基本內(nèi)容

    python爬蟲爬取bilibili網(wǎng)頁(yè)基本內(nèi)容

    這篇文章主要介紹了python爬蟲爬取bilibili網(wǎng)頁(yè)基本內(nèi)容,用爬蟲爬取bilibili網(wǎng)站排行榜游戲類的所有名稱及鏈接,下面來看看具體的實(shí)現(xiàn)過程吧,需要的朋友可以參考一下
    2022-01-01
  • python中解析json格式文件的方法示例

    python中解析json格式文件的方法示例

    這篇文章主要給大家介紹了python中解析json格式文件的相關(guān)資料,解析json文件就是編碼和解碼,本文還介紹了在解析中可能遇到的問題與解決方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-05-05
  • Linux下升級(jí)安裝python3.8并配置pip及yum的教程

    Linux下升級(jí)安裝python3.8并配置pip及yum的教程

    這篇文章主要介紹了Linux下升級(jí)安裝python3.8并配置pip及yum的教程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01

最新評(píng)論

绥芬河市| 称多县| 滦南县| 徐汇区| 丘北县| 永善县| 泊头市| 象山县| 永安市| 勐海县| 榆中县| 洛阳市| 泊头市| 固阳县| 靖安县| 鹤山市| 泽库县| 莒南县| 隆尧县| 鄢陵县| 凤庆县| 宝清县| 顺义区| 甘洛县| 武胜县| 乐昌市| 南陵县| 阿巴嘎旗| 蒲城县| 中西区| 富源县| 乡城县| 济源市| 台北县| 晋江市| 安西县| 天等县| 宣威市| 崇义县| 盈江县| 柳林县|