iT邦幫忙

0

Python的max語法

  • 分享至 

  • xImage
  •  

題目
2. 設計說明:
請撰寫一程式,首先要求使用者輸入正整數k(1 <= k <= 100),代表有k筆測試資料。每一筆測試資料是一串數字,每個數字之間以一空白區隔,請找出此串列數字中最大值和最小值之間的差。

提示:差值輸出到小數點後第二位。

  1. 輸入輸出:
    輸入說明
    先輸入測試資料的筆數,再輸入每一筆測試資料(一串數字,每個數字之間以空白區隔)

輸出說明
每個串列數字中,最大值和最小值之間的差

範例
輸入與輸出會交雜如下,輸入的部份以粗體字表示
4
94 52.9 3.14 77 46

90.86
-2 0 1000.34 -14.4 89 50
1014.74
87.78 33333 29.3
33303.70
9998 9996 9999
3.00

我的程式碼
n= eval(input())
for i in range(n):
x = input()
list_x = x.split()
big = max(list_x)
small = min(list_x)
ans = float(big)-float(small)
print(list_x)
print(big, small)
print("%.2f" %ans)

我的輸入輸出
輸入與輸出會交雜如下,輸入的部份以粗體字表示
4
94 52.9 3.14 77 46

['94', '52.9', '3.14', '77', '46']
94 3.14
90.86
-2 0 1000.34 -14.4 89 50
['-2', '0', '1000.34', '-14.4', '89', '50']
89 -14.4
103.40
87.78 33333 29.3
['87.78', '33333', '29.3']
87.78 29.3
58.48
9998 9996 9999
['9998', '9996', '9999']
9999 9996
3.00

請問為什麼使用max函數出來的不是最大值(斜體字的部分)?


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
Lin2602
iT邦新手 5 級 ‧ 2021-09-04 12:39:54

因為你沒有轉成數值
請用 float(xxx) 把字串轉換成數值再比大小

13329 iT邦新手 5 級 ‧ 2021-09-04 16:41:57 檢舉

謝謝!!

我要留言

立即登入留言