改錯 關於Sort

2021-10-04 16:15:55 字數 1276 閱讀 9196

作為小白,在編寫**的過程中,難免會遇到很多難以理解的報錯提示,下面就是我所遇見的其中乙個

typeerror: object of type

'nonetype' has no len(

) on line 3。

scores =

[45, 23, 90, 34, 66, 87, 23]

new_scores = scores.sort(

)print(

'本次考試共有' + str(len(new_scores)) + '位同學參加'

)print(

'最高分為' + str(new_scores[-1]

))print(

'最低分為' + str(new_scores[0]

))

乍一看似乎挺對的,筆者最初的想法是:呼叫 scores.sort()方法會返回乙個排序後的列表,但實際上的返回值是 none。這時呼叫 len(new_scores) 就相當於呼叫了 len(none),所以才會收到系統的無情報錯。(見**第二排)

scores =

[45, 23, 90, 34, 66, 87, 23]

scores.sort(

)#排序

print(

'本次考試共有' + str(len(scores)) + '位同學參加'

)print(

'最高分為' + str(scores[-1]

))print(

'最低分為' + str(scores[0]

))

呼叫 scores.sort() 方法後,python 會立刻對 scores 列表本身進行排序,在實際運用中,我們直接呼叫 sort() 方法來給列表中的元素排序,不必重新賦值

scores =

[45, 23, 90, 34, 66, 87, 23]

scores.sort(

)print(scores)

# 輸出:[23, 23, 34, 45, 66, 87, 90]

筆者也得到了乙個教訓:在python學習的過程中,不僅需要知曉各函式的功能,也需要弄清它是如何實現這些功能的。唯有如此,才能更加自如的運用。

關於sort排序

include include int main sort begin,end i for i 0 i 20 i cout 20 for i 0 i 20 i cout 0 上面就是把a這個陣列公升序排列。bool compare int a,int b include int main i for...

關於sort 的疑問?

對於不同型別的資料從小到大排序可以直接用sort 函式排,但是如果是從大到小排序,就得寫乙個比較函式了,怎麼辦呢?我的第一想法就是利用函式模板寫乙個cmp 函式,如下 所示,但是這串 是通不過編譯的,include include using namespace std template bool ...

關於std list中的sort

關於std list中的sort list sort void sort template void sort pred pr 這兩個成員函式都會按下面所描述的謂詞來對被控序列中的元素排序。假設迭代器pi指向位於位置i處的元素,pj指向位於位置j處的元素,當i include struct myst...