我的程式允許您寫入時間(它們被放入串列中)并且串列的最高和最低時間被排除在外,然后計算剩余時間的平均值。
然后我告訴程式列印出串列中的時間和平均值,輸出看起來像這樣:
[1.1, 2.1, 3.1, 4.1, 5.1] average:x
我希望它在平均值的最高和最低時間(被排除的那些)周圍加上括號。如果時間在沒有周圍的情況下顯示,我也希望它[]看起來像這樣:
(1.1), 2.1, 3.1, 4.1, (5.1) average:x
我一直在網上尋找解決方案,但沒有成功,我想這是一個非常具體的問題。
誰能告訴我是否可以這樣做,如果可以,怎么做?如果可能的話,我會很感激一個非常簡單的解釋,但如果必須的話,我很樂意學習一些相對先進的東西。(idk 如果重要,但我使用的是 python 3)
uj5u.com熱心網友回復:
您想要格式化結果,如果您使用 Python 3.6 或更高版本,可能使用 f-string:
times = [ 6, 1, 8, 3, 9 ] # create list of times
mean = lambda x: sum(x) / len(x) # define average function
times = sorted(times) # sort our times
first_time = times.pop(0) # pop first time from list
last_time = times.pop() # pop last time from list
times_as_string = ", ".join(str(x) for x in times) # e.g. "3, 6, 8"
# now build and print out the string
print(f"({first_time}) {times_as_string} ({last_time}) average: {mean(times)}")
給出:
(1) 3, 6, 8 (9) average: 5.666666666666667
編輯:
如果您使用的是早期版本,則可以使用%語法,例如:
print("(%.2f) %s (%.2f) average: %.3f" % (first_time, times_as_string, last_time, mean(times)))
這將給出:
(1.00) 3, 6, 8 (9.00) average: 5.667
uj5u.com熱心網友回復:
嘗試使用 for 回圈,idk 語法對 python 來說很好,但我假設你只需要使用一個簡單的回圈,它就可以作業:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/466086.html
