眾所周知,“相親”可謂是現(xiàn)代社交的一種方式,如今隨著科技的發(fā)展,越來越多的人開始使用程序幫忙“相親”,那么Python相親程序題又是怎樣的呢?
# 需求 # 一個(gè)男生和n(n>=3)個(gè)女生相親,每個(gè)女生有三項(xiàng)特征(如顏值、性格、家境等),男生將其分別打分為整數(shù),分值范圍在[1,100]之間,求男生與某個(gè)女生匹配度最高的三個(gè)女生。 # 思路 # 遍歷每個(gè)女生,分別計(jì)算其與男生分值的歐幾里得距離,根據(jù)距離排序并返回最小的三個(gè)女生。 from math import sqrt # 女生列表,列表中每個(gè)元素為元組,元組中三個(gè)數(shù)字表示姓名、顏值、個(gè)性、家境 girl_list = [ ('小A', 90, 60, 80), ('小B', 80, 70, 75), ('小C', 70, 80, 90), ('小D', 95, 80, 85), ('小E', 60, 70, 50), ('小F', 75, 85, 95) ] # 男生特征 boy_list = [80, 85, 78] # 遍歷所有女生,計(jì)算與男生的歐幾里得距離 distance_list = [] for girl in girl_list: distance = sqrt((girl[1]-boy_list[0])**2 + (girl[2]-boy_list[1])**2 + (girl[3]-boy_list[2])**2) distance_list.append((girl[0], distance)) # 按照距離排序,取出最小的三個(gè)女生 distance_list.sort(key=lambda x:x[1]) result = distance_list[0:3] # 輸出結(jié)果 for i in range(len(result)): print("第{}匹配女生是{},匹配度為{:.2f}".format(i+1, result[i][0], 1/(1+result[i][1])))
通過上述代碼,我們可以在Python中實(shí)現(xiàn)“相親”小功能,從多個(gè)女生中篩選出匹配度最高的三個(gè),讓相親變得更加簡單和高效。