如何打印出 python 中使用字符串数组的最小数字?
How do I print out the lowest number that uses a string array in python?
我正在尝试让 lowRain 函数打印出数组中的最小数字以及月份。
例如,当我 运行 通过 rainInput 函数中的循环并输入这些数字(4、3、10、10、10、10、10、10、10、8、23、10)时,它将通过低雨功能。当我尝试 return 降雨最少的月份时,我得到 "The lowest rainfall for December was 10 inches."
def main():
rainfall = rainInput()
low, lowMonth = lowRain(rainfall)
print("The lowest rainfall for " + str(low) + " was " + str(lowMonth) + " inches.")
def rainInput():
rainfall = ["January", "Febuary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
for month in range(len(rainfall)):
rainfall[month] = (int(input("Please enter the amount of rain for " + str(rainfall[month]) + " :")))
return rainfall
def lowRain(rainfall):
month = ['January','Febuary','March','April','May','June','July','August','September','October','November','December']
lowMonth = min(month)
print(lowMonth)
for m, n in enumerate(rainfall):
if lowMonth:
lowMonth = n
low = m
return month[low], lowMonth
main()
您正在对之前 1 行定义的月份名称数组使用 lowMonth = min(month)
,这将始终导致 April
。我猜你想检查之前输入的哪个月的降雨量最少,在这种情况下你可以这样做:
def lowRain(rainfall):
lowest = min(rainfall)
index_of_lowest = rainfall.index(lowest)
month = ['January','Febuary','March','April','May','June','July','August','September','October','November','December']
lowest_month = month[index_of_lowest]
return lowest_month, lowest
如果将降雨量和月份名称放在一起,则可以使用 min
函数:
>>> data
[(4, 'January'),
(3, 'Febuary'),
(10, 'March'),
(10, 'April'),
(10, 'May'),
(10, 'June'),
(10, 'July'),
(10, 'August'),
(10, 'September'),
(8, 'October'),
(23, 'November'),
(10, 'December')]
>>> min(data)
(3, 'Febuary')
这是因为当min
比较序列时,它会按顺序比较序列组件,在这种情况下,首先是降雨量,然后是月份名称。结果将始终具有最小降雨量,如果有多个月份的最小降雨量相同,您将获得按字母顺序排序的第一个月份。
我正在尝试让 lowRain 函数打印出数组中的最小数字以及月份。 例如,当我 运行 通过 rainInput 函数中的循环并输入这些数字(4、3、10、10、10、10、10、10、10、8、23、10)时,它将通过低雨功能。当我尝试 return 降雨最少的月份时,我得到 "The lowest rainfall for December was 10 inches."
def main():
rainfall = rainInput()
low, lowMonth = lowRain(rainfall)
print("The lowest rainfall for " + str(low) + " was " + str(lowMonth) + " inches.")
def rainInput():
rainfall = ["January", "Febuary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
for month in range(len(rainfall)):
rainfall[month] = (int(input("Please enter the amount of rain for " + str(rainfall[month]) + " :")))
return rainfall
def lowRain(rainfall):
month = ['January','Febuary','March','April','May','June','July','August','September','October','November','December']
lowMonth = min(month)
print(lowMonth)
for m, n in enumerate(rainfall):
if lowMonth:
lowMonth = n
low = m
return month[low], lowMonth
main()
您正在对之前 1 行定义的月份名称数组使用 lowMonth = min(month)
,这将始终导致 April
。我猜你想检查之前输入的哪个月的降雨量最少,在这种情况下你可以这样做:
def lowRain(rainfall):
lowest = min(rainfall)
index_of_lowest = rainfall.index(lowest)
month = ['January','Febuary','March','April','May','June','July','August','September','October','November','December']
lowest_month = month[index_of_lowest]
return lowest_month, lowest
如果将降雨量和月份名称放在一起,则可以使用 min
函数:
>>> data
[(4, 'January'),
(3, 'Febuary'),
(10, 'March'),
(10, 'April'),
(10, 'May'),
(10, 'June'),
(10, 'July'),
(10, 'August'),
(10, 'September'),
(8, 'October'),
(23, 'November'),
(10, 'December')]
>>> min(data)
(3, 'Febuary')
这是因为当min
比较序列时,它会按顺序比较序列组件,在这种情况下,首先是降雨量,然后是月份名称。结果将始终具有最小降雨量,如果有多个月份的最小降雨量相同,您将获得按字母顺序排序的第一个月份。