思路:用兩個變數first和scend分別存盤串列中最大的數和第二大的數(初始值默認為串列第一個數和第二數),利用for回圈遍歷整個串列(除開前兩個元素,因為已經被first和scend取走了),從第三個元素開始取,先后和scend和first比較,通過判斷大小不斷更新first的值和scend的值:
若串列中取出的數比first和scend都大,則將first賦值給scend,將該元素賦值個first;
若串列中取出的數比scend大,比first小,則將該元素賦值給scend;
否則first和scend不變,
最后輸出scend即可,
代碼如下:
#匯入隨機生成模塊
import random
#建立一個空串列,用于存盤元素
nums = []
#for回圈隨機添加0~1000之間的10個整數
for _ in range(10):
nums.append(random.randrange(1000))
#用于獲取串列中最大的數和第二大的數
first = nums[0]
scend = nums[1]
if first < scend:
t = first
first = scend
scend = t
print('原陣列:',nums)
for i in range(len(nums)):
if i == len(nums) - 1:
break
if nums[i + 1] > scend:
if nums[i + 1] > first:
scend = first
first = nums[i + 1]
else:
scend = nums[i + 1]
print('最大的兩個數',first, scend)
結果如圖(因為是隨機生成的陣列,所以每次元素都不一樣):

當然也可以使用list的內置函式sort()排序:
#匯入隨機生成模塊
import random
#建立一個空串列,用于存盤元素
nums = []
#for回圈隨機添加0~1000之間的10個整數
for _ in range(10):
nums.append(random.randrange(1000))
#使用sort對串列進行排序,True代表降序, False代表升序
nums.sort(reverse=True)
print('使用內置函式排序',nums)
print('排序后輸出第二個元素',nums[1])
結果如下:

是不是比前者方便很多
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/290091.html
標籤:python
上一篇:python 實作21根火柴游戲
下一篇:python實作猜數字游戲
