導航:首頁 > 編程語言 > python分數排名

python分數排名

發布時間:2023-02-06 09:33:45

Ⅰ 用python編寫學生成績分析系統

學生的數量我們並不知道有多少,有可能是1個學生,但也有可能是100000個學生
但是我們能確定的是學生的學號,因為每個學生的學號都是不一樣的(除非出現意外情況)
那麼我們可以以學生的學號來排序,比如000是小明,那麼我們把000放在list的第一位,把小明這個人的名字放在學生名的list的第一位,那麼他的所有的成績分數什麼的都會在每個list的第一位
現在我們可以開始做第一步,尋找學生。 尋找學生我們需要一個parameter,一般來說會給學號或者是名字,那麼我們可以用linear search從list的頭開始尋找到尾。如果沒有到達list的尾部而且還尋找到了學生,那麼return 他在這個list的位置,如果到達了list的底部,return一個message告訴對方系統里沒有這個學生
計算學生總成績:我們已經知道了這個學生名字或者學號在各個list的位置了,那麼這個學生所對應的成績分數都在各個list的相同的位置,那麼我們只用上個方法return的數字去尋找各個考試的分數,然後根據百分比相乘後加起來,這就是這個學生的總成績
排名:這個要根據什麼來排,如果你是根據總成績來排的話,你需要去比較所有的分數。這個就需要sorting search,至於方法有很多,應該有六種,具體的我記不清楚,不過你可以去網上找找
用字母代表成績:這個也很簡單,既然你都知道分數了,那麼就設置一個區域,比如90-100是優秀,那麼把所有在90-100的分數全部變成A然後存入list裡面就行了(記得要按照順序!!)
班級平均分:emmmm這個是咋算來著的。。。。應該是把所有學生在某一次作業或者考試的成績全部加起來後除以全部人數吧。。那麼你自己按照一個順序,把所有的分數加起來除以所有的人數後再存入list裡面就行了

Ⅱ 如何對python編程中的列表元素按成績高低進行排序呢

最簡單的辦法就是需要指定列表排序方法中的參數「key」。代碼如下:
第一種:
stu=[['john',79],['mame',96],['herry',85],['lili',95],['ziling',63]]
def takeSecond(elem):
return elem[1]
stu.sort(key=takeSecond,,reverse=True)
print(stu)
第二種:
stu=[['john',79],['mame',96],['herry',85],['lili',95],['ziling',63]]
s=sorted(stu,key=lambda student: student[1],,reverse=True)
print(s)

Ⅲ python里有一個列表,列表裡有幾個小列表,小列表裡寫的是同學的名字和成績,如何帶著列表給分數排序

#冒泡排序:
scoreList=[
['a',98],
['c',45],
['b',70],
['d',85],
['h',85],
['f',92],
['g',30],
['e',65]
];
arrLen=len(scoreList);
foriinrange(arrLen):
a=scoreList[i]
forjinrange(arrLen):
b=scoreList[j-1]
ifb[1]<a[1]:
scoreList[i],scoreList[j-1]=scoreList[j-1],scoreList[i]
print(scoreList)

冒泡排序 也可以用自帶的排序函數 scoreList.sort(key=func) func是一個自定義的函數 具體用法可以看文檔

Ⅳ 用python編寫程序輸入10名學生的成績,進行優、良、中、及格和不及格的統計

L=[]

y=0#優的人數

q=0#良的人數

z=0#中的人數

j=0#及格的人數

b=0#不及格的人數

foriinrange(10):

c=input("請輸入第{}位學生的成績:".format(i+1),)

L.append(c)

forainL:

ifint(a)>=90:

y+=1

elifint(a)>=80:

q+=1

elifint(a)>=70:

z+=1

elifint(a)>=60:

j+=1

else:

b+=1

print("這十名學生中得優的人數是{}人,得良的人數是{}人,得中的人數是{}人,得及格的人數是{}人,得不及格的人數是{}人".format(y,q,z,j,b))

Ⅳ Python實驗題目,求助大佬

以下是代碼:

all_tuple = []

sum_stu = int(input('請輸入一共有多少個學生:'))

while(sum_stu>0):

a = input('請輸入學生名字:')

class1 = float(input('第一門課的成績:'))

class2 = float(input('第二門課的成績:'))

class3 = float(input('第三門課的成績:'))

score = class1 + class2 + class3

mid = score/3

one_tuple = (a,class1,class2,class3,mid,score)

all_tuple.append(one_tuple)

sum_stu -= 1

sorted_list = sorted(all_tuple,key=lambda x:x[5],reverse=True)

sum_stu = 1

for i in sorted_list:

print('第',sum_stu,'名',i[0],':',end='')

print('平均分:',i[4],',總分:',i[5])

sum_stu += 1

Ⅵ 如何為pygame的飛機大戰增加一個分數排行榜python

import pygame
from plane_sprites import*
from Background import BackGround
from Enemy import Enemy
from Hero import Hero
from time import sleep
from Bullet import Bullet

class Plane_main(object):
def __init__(self):
print('游戲初始化')
self.screen = pygame.display.set_mode(SCREEN_RECT.size)
self.clock = pygame.time.Clock()
self.__create_sprites()

pygame.time.set_timer(CREATE_ENEMY_EVENT,1000)
pygame.time.set_timer(HERO_FIRE_EVENT, 500)
self.count = 0
self.score = 0
def __create_sprites(self):
# 背景組
self.back_group = pygame.sprite.Group()
bg1 = BackGround()
bg2 = BackGround(True)
pygame.mixer.init()
pygame.mixer.music.load("./Capo Proctions - Journey 00_00_00-00_00_59.ogg")
pygame.mixer.music.play(-1)

self.back_group.add(bg1,bg2)
# 敵機組
self.enemy_group = pygame.sprite.Group()
#敵級銷毀組
self.enemy1_down_group=pygame.sprite.Group()
# 英雄組
self.hero_group = pygame.sprite.Group()
self.hero = Hero()
self.hero_group.add(self.hero)
def start_game(self):
pygame.init()
print("開始游戲...")
# pygame.mixer.init()
# pygame.mixer.music.load("./Capo Proctions - Journey 00_00_00-00_00_59.ogg")
# pygame.mixer.music.play(-1)

# gameIcon = pygame.image.load("./name.png")

# pygame.display.set_icon(gameIcon)

while True:

self.count+=1
# 1. 設置刷新幀率
self.clock.tick(10)
# 2. 事件監聽
self.__event_handler()

# 3. 碰撞檢測
self.__check_collide()
# 4. 更新精靈組
self.__update_sprites()
# 5. 更新屏幕顯示

pygame.display.update()
def __event_handler(self):

"""事件監聽"""

for event in pygame.event.get():
if event.type == pygame.QUIT:
Plane_main.__game_over()
elif event.type == CREATE_ENEMY_EVENT:
self.enemy_group.add(Enemy())
elif event.type == HERO_FIRE_EVENT:
self.hero.fire()
keys = pygame.key.get_pressed()
if keys[pygame.K_RIGHT]:
print('向右移動')
self.hero.speed = 5
self.hero.speed1 = 0
elif keys[pygame.K_LEFT]:
print('向左移動')
self.hero.speed = -5
self.hero.speed1 = 0
elif keys[pygame.K_UP]:
print('向上移動')
self.hero.speed1 = -5
self.hero.speed = 0
elif keys[pygame.K_DOWN]:
print('向下移動')
self.hero.speed1= 5
self.hero.speed = 0
else:
self.hero.speed = 0
self.hero.speed1 = 0
if event.type == HERO_FIRE_EVENT:
self.hero.fire()
print('發射子彈!!!!!')

def __check_collide(self):

"""碰撞檢測"""
# 1. 子彈摧毀敵機
enemy_down = pygame.sprite.groupcollide(self.enemy_group, self.hero.bullets,True, True)
enemy1_down_group.add(enemy_down)
# 2. 敵機撞毀英雄
enemies = pygame.sprite.spritecollide(self.hero, self.enemy_group, True)
# 判斷列表時候有內容`
if len(enemies) > 0:
sleep(3)
# # 讓英雄犧牲
self.hero.kill()
# 結束游戲
Plane_main.__game_over()
def __update_sprites(self):
self.back_group.update()
self.back_group.draw(self.screen)
self.enemy_group.update()
self.enemy_group.draw(self.screen)
self.hero_group.update()
self.hero_group.draw(self.screen)
self.hero.bullets.update()
self.hero.bullets.draw(self.screen)
self.drawText(str(self.score),SCREEN_RECT.width - 50,50)
for enemy1_down in enemy1_down_group:
self.screen.blit(enemy1_down_surface[enemy1_down.down_index],enemy1_down.rect)
if self.count % 5 ==0:
enemy1_down.down_index += 1
if enemy1_down.down_index ==3:
# pygame.mixer.music.load("./baozha.ogg")
# pygame.mixer.music.play()
self.score+=5
enemy1_down_group.remove(enemy1_down)
print(self.score)

#更新精靈組
# for group in [self.back_group, self.enemy_group, self.hero_group,self.hero.bullets]:
# group.update()
# group.draw(self.screen)
@staticmethod
def __game_over():
"""游戲結束"""
print("游戲結束")
pygame.quit()
exit()
def drawText(self,text,posx,posy,textHeight=48,fontColor=(0,0,0),backgroundColor=(111,225,1)):
fontObj = pygame.font.Font('freesansbold.ttf',textHeight)
textSurfaceObj = fontObj.render(text,13,fontColor,backgroundColor)
textRectObj = textSurfaceObj.get_rect()
textRectObj.center = (posx,posy)
self.screen.blit(textSurfaceObj,textRectObj)

#判斷當前執行的文件是否是主文件
#如果不是 則if下的代碼不會執行
if __name__ == '__main__':
game = Plane_main()
game.start_game()

Ⅶ python排序問題,給出一個txt文件,怎樣按分數高低進行排序

把你每條數據的格式發出來看下。
不然不好弄。

其實就是通過正則表達式等方式,把分數提取出來,然後排序就行了。

給你兩個函數,你自己組合吧

#構建一個列表,filename是你txt文件的路徑,構建的列表,按照分數進行排序並返回,參數reverse為False則為升序,為True則為降序

def build_list(filename):
import re

reslist = []

fp = open(filename)
textlist = fp.readlines()
fp.close()

pattern = re.compile("(\\d*)\\.\\s*(\\d*\\.\\d*)\\s*([\\s\\S]*(?=\\(\\d*\\)))\\((\\d*)\\)\\s*([\\w,]*)")

for text in textlist:
pr = pattern.search(text)
if pr:
reslist.append((pr.group(1),pr.group(2),pr.group(3),pr.group(4),pr.group(5)))

reslist.sort(key = lambda x:float(x[1]))
return reslist

#根據輸入的year參數,返回year年度的電影資料的列表,year為字元串,movielist為使用上面的build_list函數生成的列表
def list_movie_by_year(movielist,year):
return [x for x in movielist if x[3] == year]

如,你數據的路徑為d:\data.txt

sorted_list = build_list('d:/data.txt')

想找1993年的數據,
則調用函數
list_movie_by_year(sorted_list,'1993')

Ⅷ python可以實現對中小學期末成績排名,分析嗎

閱讀全文

與python分數排名相關的資料

熱點內容
連漲啟動源碼 瀏覽:159
小奔運動app網路異常怎麼回事 瀏覽:447
php開啟壓縮 瀏覽:303
伺服器主機如何設置啟動 瀏覽:282
linux配置網路命令 瀏覽:774
一張照片怎麼製作視頻app 瀏覽:908
pythonweb和php 瀏覽:976
電腦伺服器地址ip地址 瀏覽:823
對矩陣壓縮是為了 瀏覽:910
setfacl命令 瀏覽:172
linux子系統中斷 瀏覽:342
linux查看進程ps 瀏覽:224
知識庫系統php 瀏覽:623
小波變換壓縮圖像python 瀏覽:151
阿里巴巴程序員怎麼月入百萬 瀏覽:173
如何使用國外伺服器 瀏覽:188
燃燈者pdf 瀏覽:468
編譯器用數學嗎 瀏覽:7
圖形化apk反編譯工具 瀏覽:48
考勤表加密怎麼辦 瀏覽:736