Le plus proche

Nous souhaitons programmer une fonction qui, étant donnée une liste de points du plan, donne celui qui est le plus proche d'un point de départ.

Chaque point est donné sous la forme d'un tuple de deux entiers. La liste des points à traiter est donc un tableau de tuples.

La distance utilisée est la distance euclidienne. La distance euclidienne entre deux points du plan de coordonnées \((x_A;\,y_A)\) et \((x_B;\,y_B)\) est donnée par la formule :

\[d_{AB}=\sqrt{\left(x_B-x_A\right)^2+\left(y_B-y_A\right)^2}\]
Décompactage

Si la variable point référence notre couple de coordonnées, alors le décompactage ("unpacking" en anglais) permet de donner un nom simple aux composantes point[0] et point[1] :

Python
x, y = point

Compléter les fonctions distance et plus_proche.

La fonction distance prend en paramètres deux tuples représentant deux points et renvoie leur distance.

La fonction plus_proche prend en paramètres une liste non vide de tuples représentant des points ainsi qu'un point de départ et renvoie le tuple correspondant au point le plus proche de celui de départ.

Exemples
>>> distance((0, 3), (4, 0))
5.0
>>> plus_proche([(7, 9), (2, 5), (5, 2)], (0, 0))
(2, 5)
>>> plus_proche([(7, 9), (2, 5), (5, 2)], (7, 9))
(7, 9)

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.1280137w3pfbr42mgn5*cB8[oà;:R0],=Uyé+D)lSivPAd q96t(N.x-ka1/su_he050O0+0T0!0K0I0%0P0p0I0!0%0%0B010T0K0e010406050%0(0k0k0!0h0D040J0t0I0(0 0t0m0P020!0k0e0v0P0x0+190h0Q0(0+0%050$16181a1c140e04051H1A1K0$1H140O0K0L0@0_0{0}0_0m0l0(0!0l0+0Y0e0D0T0*1j0P0*0K0l0*0I1:0*0T12050/0g0I0+1T0`0|011/1;1?1;0T1|1~1`0T0h1I1+0@1f0%0e0!0m0}0j01201V010f0;0+0m1n0+1`2i2k2p222s1~2v0k2x040a0P0M0h0t0e0t0%0K1i1k0-2g0h0h0+0p2S1A2z0m1I0$1+2(2c2e2d1{0O2B1W0K0m2u2P1`1Q1S0^212=2@0m0t2{1`0e2X1I2$2(38152j1k2}2q310h190I1`0!1.2X0f0}030)0)0p320+1?300t0Y0j0Y0#120P0#1A0!393c133b2A3e223g3i3k3m0+3o013q3s3u3w2^3z3z3D0j3G3I2k3K2$2;013P0!3j1I3l0*3n3p3r3t0-3Z313#0d3D0d3)2#3J143-3N0}3:3=053@3_3V3{3Y2?3!3A0i3D0i441B463L3d1U3O0t3h3;3R3^3T3`3X3}4j3 3A0n3D0n4p38473c3.4b4z4f3W3|3v4F3y3A0S3D0S4L4r484u4a4w3Q3?3S3U4T4i3x3#0b3D0b4$3+4N3M4)3/4+4y4-4A4/4h4E4=3A0r3D0r4`2%4|4t2~4 4x4c4e4B4g4D4V570Y0R3D0R5c3,4O495h4,4d4.4C4U3~4X3B0y120#0y5u5e4P505j5B5m5D4W3#0#3C045V5L4s5N5i4R5l4:564k3B2n5X3(0$3H454{5!5x4Q524S555o5+0#415X435:3*5d5@4~5_5A535C4;5~4m5X4o635=654(5g685k545n5E5U4I5X4K6h4q5?6k3f5O5%6o5S5p0#4Z5X4#6v4M666l6A5`5(5|6q3A0#4@5X4_6J4%5w676N695{6p5T6S595X5b6X6x6Z6M5$6O6C6c4G3B5r5X5t6.2%1L361A2{2+0O2e2:5x4U2`1R1I350+373J6i1I4U7f2A0K0O0}3r2$5U3R7m7o6(6E2o2F0+7u6D5~1`6h6y220Z0m120f2M0k7h6L2q0c3D7N7F4a7I04191+7S6:7P7R6w6 7T017H120K1o4w0T7h0P7O3O120%0Q0h7:7%3K7}5!7t017p3c3#5-5A816Q6)3$0P7y7A6^5F8663147 3-880)7q3A60877n827v5+418c2w8e5*6_8q8i7Z7l8s832k3#6e8r8z5}6_4m8x2G8M6R0Y8K7E7!7G120-0f8E5f7#047=8k8X4a0f8Z0K0%0/0m0p0+8$3.11040U8_5^122O2?0T0)0N8~4~8{0A7;7?4a900t920)0q965g8{0H0w7h8j3a8l8G8n844H7s9r7B6_4I8Q7z8t9x5F6s3)0P9H7=7)7V0X949i2q989a9K120D9N7}9J8,010t120B9R9Y7V910m93957}9o7g9q7u8o0Y6G8L9C8f3#4Z9A8S8a9^639I9X4}6l129M9h8+a59P12999W9b3/9T9g9%ab229!049$af9S049*93a96Kaa1k8m9?6U9_895p4@9~9`8A5FaBa29Iag0Z122X0T0(0h0mak8%7@047_7{9O228{0U8}ax4Pa7ajaq9Yan0YaVa+049M9-9p9Y9ka=5xan0o0oa}4~0k0K125/38a4aW0}an0Fb29j12a)a`al9c049Uav3Jb93.a:be3faia_9:a{120Hbsam12b0bA0}b4b6a#0}a|9.8_az9t0Y6+aC8u6_59aGaD5+bQ8Da*bN8I3A6{bR9D3#5rbVbS5Fb(bZbiay9r9?5J9v9 6E5Hb-b*6S5H2(5;7)aO048!bI017Q8)c80m8.as1g0%0)350t0p0*8^a*5xa%cc9d921zco97adbEahc60+2ja!cvbf049l9nbMb@bO5Vb`aH8N5FcMb~9{6S5W9GaMaratci2Mclcnb8aganapc(cY9e9+cub=8`120sc8bG045KcEac040zcIb!cKb$5,cNbW6_0#2ncSaI5U8h3Ha3ag7V1Q8;0)b40m7-3;c%boc)9#cydh8:8=8@c8cqc|aXcZcjc$dycxa.bjcz0-cC7|c;cpbyd0c;b#0m5U8q3l8mb 3B8w8dcO8T5 7DdecX9Yc50f4wdt7,cy0tca2?dt0gaP2k1$dF8|c^b55Xd~aec,9(d`042Ed~bhbwdI9)c.0Tc:ecba019kcHbLd19=cL8KdW9wcT3B8Pd#d6cQ8Vd*a39Hdgcs9+d=dsdHejeectd~c@dAbk0Kd~c endRd2dT6S9Fesb{5~9zexb.6rd)8)eCeDardi933taS2k0Tdp3+bpa~eIe5ed8/8;2kdxePekbgcrasefe3d:cAdLd~bzeUei0PdS5U9^e!d$8a6F7x8yfn6Ea1eBeCaN7,8#eJa?e:3Xe?9+e_2%e{4~an020I0T0vfbfCdldn1~d~9mfg3+80eW5UaBfmeyf!fq8Rfs5~aKfve-e.9(eF93dDcmeHaofbatdQfhfj6*d5e)g0dacP5UbYf.f/eEc6dvdk2?fSfGcb7)c*fPgce=0he@gg9/fX9;8tb^b(f$g26`f)9Bf%6Sb:fvfx04aQaSaUfA8 f89ff@gp7N0$7j707e727b1A0T75gX2.2)0!1}gU0$731G7kej2X0k0)0f0!0Z0+0)0*601s1u1w1y0PfV3a1N3K1H0C2@0P0!1h2X0P2O0{0K0g0;2R0E0P2ufidm0 3;8:e@0P0_0Pe:f21 fR3i1 0ufI5g1a2R0*7X0+0X12090U0F092?0f0T0D09ffb80.hk1kg=hq9+0P0(h70g0t0(0^1 160hhsg 0E0I0E2Gc/hu0(0P290+h9hk0T8c1-h.h:0?2?1Q8@0%0W1Lh4040G00h92c1 dL0A2g181 8@0P1w0Ki20(i69+0E2X0{1 0K0pis1yi12U3t1o1a0+h/1~0?hv8?1yil31iuhch*0L1j0?iS0?3tfFfFh/iG3;0p0(1~iLio1a0hhj2UhtiOip0+h+1?1Q2u2@0W0P0Vh*0?0E0L2RiKiXh82?2Qhs3l19dm0ei,0!2Shug 310k0giy0P0f0I0t28e@iaic1P1R3.1X1Z1#1%1)1+1-241=1@1_g-3.2D2u2w120M1*1,gJ3a7dg-647i3ujNfj0d3Bg1b*j)3Cg46qj-2o6a5R9{j;c2jN5xc5c7f4ca8*dN67cei^g^0pi:0+ggagdzk2a6gM9+9Vkdc}e4dqc-9fbngrbxcGh14reogt84j)86gwj,8be(kAd9j?5)g5kxe+dfara^fagK67buf_c+klf;kf9,f}kp8Fep8Ij)dVfietdbk$gze#3 k+5QkGj:0Y8CgEkLa-kia$dGe~eKaikofHdrf`kOkecZl17~eVk!dTj)erk(k-3yldk,f+k.8Uj=6%kAeAe,f:dIc5gHaTcykcfhgLa8f_a;l5bta@khlzcwcGf_bDlE22c_b7kTdIbclxf6f47VbmlCfb9UbvkYejbKk~bqbCb1lNbFe1lQ5?ku8Hlc0YeZlflklhl_ljf%j)9zkFm0l~j`gq7(4Oj(9@j+j^mbj/5Tj)9}m3e)mhe+gFj~k{0}k0ccce0ecgc!ckf^f4lyl%a?atehmBdO04kke`gadK1adMlIcFemawlakvk#0Yf#l{m4aFkCmdaFmjkAf-lrhClFdCc#myl*e|l4m:4~0Z0p12j22@kXm8kZmTl^bQkzmdbUm!k*bPln6Pmkn8j`kKkUfQgehzkRd_7Jjtjjeac80%5W02030d0R0vhPnsnufOmzdPfWm~b?lbk?5qmcn7b,n6kHnIk:m4gDm*gFd.0hf{f9l.9Zd@jWlRk kVmEnEc=04ksl=mSl@nHb_4-dXmdb_mf4=j-b}m%n^c1cWe-mKglh*gnfFnjnYduf1iP3sk8ka7)mAn*gLf|nBmHfPcBmMfem}j%fZj-cVn3n7cRnMk=cRn~oxcVaLo2c4fygkdjgmgof_fLfNoJ93hydofUorfYnGj-kymXnbd8l o#kElon^ddm*f/m+dBefmwdEnYgjo9f=oVgsn:j-k%n@oxd!frm4d(nPo#k@o-g9e/gcoSfTo@e}n$fBo4fEe^o{m9otevnJnN0#ewp3o#8PoCprlqneltaP0.gInWgNm.gP7 gRj$gT2(g+720.0:0=04.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5

.1280137w3pfbr42mgn5*cB8[oà;:R0],=Uyé+D)lSivPAd q96t(N.x-ka1/su_he050O0+0T0!0K0I0%0P0p0I0!0%0%0B010T0K0e010406050%0(0k0k0!0h0D040J0t0I0(0 0t0m0P020!0k0e0v0P0x0+190h0Q0(0+0%050$16181a1c140e04051H1A1K0$1H140O0K0L0@0_0{0}0_0m0l0(0!0l0+0Y0e0D0T0*1j0P0*0K0l0*0I1:0*0T12050/0g0I0+1T0`0|011/1;1?1;0T1|1~1`0T0h1I1+0@1f0%0e0!0m0}0j01201V010f0;0+0m1n0+1`2i2k2p222s1~2v0k2x040a0P0M0h0t0e0t0%0K1i1k0-2g0h0h0+0p2S1A2z0m1I0$1+2(2c2e2d1{0O2B1W0K0m2u2P1`1Q1S0^212=2@0m0t2{1`0e2X1I2$2(38152j1k2}2q310h190I1`0!1.2X0f0}030)0)0p320+1?300t0Y0i0Y0#120P0#1A0!393c133b2A3e223g3i3k3m0+3o013q3s3u3w2^3z0Y2n040P0j3G3I2k3K2$2;013P0!3j1I3l0*3n3p3r3t0-3Z313#0d3D0d3+2#3J143/3N0}3=3@053_3{3V3}3Y2?3!3A0i3D0i461B483L3d1U3O0t3h3?3R3`3T3|3X3 4l413A0n3D0n4r38493c3:4d4B4h3W3~3v4H3y3A0S3D0S4N4t4a4w4c4y3Q3^3S3U4V4k3x3#0b3D0b4(3-4P3M4+3;4-4A4/4C4;4j4G4@3A0r3D0r4|2%4~4v2~514z4e4g4D4i4F4X590Y0R3D0R5e3.4Q4b5j4.4f4:4E4W404Z3B0y120#0y5w5g4R525l5D5o5F4Y3#0#3C045X5N4u5P5k4T5n4=584m3B3%0#3*0$3H474}5$5z4S544U575q5-0#435Z455=3,5f5_505{5C555E4?604o5Z4q655@674*5i6a5m565p5G5W4K5Z4M6j4s5^6m3f5Q5)6q5U5r0#4#5Z4%6x4O686n6C5|5*5~6s3A0#4_5Z4{6L4)5y696P6b5}6r5V6U5b5Z5d6Z6z6#6O5(6Q6E6e4I3B5t5Z5v6:2%1L361A2{2+0O2e2:5z4W2`1R1I350+373J6k1I4W7h2A0K0O0}3r2$5W3R7o7q6*6G2o2F0+7w6F601`6j6A220Z0m120f2M0k7j6N2q0c3D7P7H4c7K04191+7U6=7R7T6y717V017J120K1o4y0T7j0P7Q3O120%0Q0h7=7)3K7 5$7v017r3c3#3%5C836S6+3$7z2w7C6`5H886514813/8a0)7s3A62897p847x5-430P7A8g5,6{8s8k7#7n8u852k3#6g8t8B5 6{4o8z8f8v7D8Q7F5?7+0Z120-0f8G5h7%3(8(4R0f8#0K0%0/0m0p0+8,5z11040U8_69122O2?0T0)0N8~5i8{0A7?7^4c900t920)0q962q8{0H0w7j8l3a8n8I8p864J7u9r8V5H4K8S2G8O6T0Y6u3+0P9H7@7+7X0X949i22989a9K120D9N7 9J7$220t120B9R9Y9c04910m93957 9o7i9q7w8q0Y6I8N8U8h3#4#9A7B9{8C5H9_659I9X4 6n129M9h8m9(019Q9W9b3;9T9g9%a82q9!049$ah9S9*9e9,al9/8,8o9@6W9`8b5r4_9 9C8caCa59Iai8!042X0T0(0h0mam8)7_047{7}9O0}8{0U8}adanaXabaV3:ap0Ya.5`aa9V9pae9ka=50ap0o0oa|5i0k0K125;38a7aW0}ap0Fb19j12a)a_a+9)9Uacb7aia:bdaX9U9.bhb9af120Hbpba12a by01b3b5a#bv04bxaya*1kaA9t0Y6-aD8w6{5baHa18P5HbQ8FbL0PbN8K3A6}bR9x3#5tbVaE5-b*b!btb$9r9@5L9vaI6G5Jb/bS5Hb{2(8YaeaO8$bG7S8+b#5`8.9*1g0%0)350t0p0*8^cc50a%bG7X9+0T1zco971299asae7X0-2ja!cwbebI9mbKb@b%0m5W5Yb+9|6U3Cc0b,cS8X3(aMatctci2Mclcnbm7+aparc*cB9d92cvb@8`120sbGbE045McG9P120z9nazb_bO5:b|bW9Dd6cUcR5.cXa6aicC8:93b30m7/3?c)3Jb8a/9#bCdh8;2k8@bGcqc~9)c#cjc(dycydt8#0+cE7~c?cpbwd2b#cM5W8s3l8ocV3B8y8Ad88c61decZc67L4ydH040KbC0tca2?dt0g120h2k1$dF8|c`b45Zd|czc.bi3;d@042Ed|bg9;c/auc;d|0H9ldPcLd4b(3B8MdU9wdc0#8RdZb:6{erd%a69Hdgc:9,d/dscAe4csavcud|c_dAajd-d|d1cKeb8H9?d59Feob}609zetc16texeyeA041Q8;3XaS2k0Tdo3-dq5zc,d,e,8=dxeMdzdMa9edeCe~dGeFbucCdJ1adLeSbua{eR3-82ekcN6U9_eXd!6G9~e#dW6He(df8Z7.8%f64R8/e-3te/9,e=2%e@a}12020I0T0ve`di0)dkdm1~d|cJ6MdQfi5WaCfmeuc2aGfqeqaK3Heyf-fHf1dCc%cmeDaqd,cteifcb^eUel0#bQf#e$6,8e9Bfn60bZf,f.fuece{fQ2?fSfF8+c+eEe3f7fA93fCd_fEf{fg9=8vb`b*g2frb.f)a25Wb=gaezfvaP0.aSaUfya?f293dDf?ff710$7l727g747d1A0T77g#2.2)0!1}gY0$751G7mbu2X0k0)0f0!0Z0+0)0*621s1u1w1y0PfV7i1N3K1H0C2@0P0!1h2X0P2O0{0K0g0;2R0E0P2ub$dl0 3?8:e:0P0_0Pe{dw1 fR3i1 0uf/2q1a2R0*7Z0+0X12090U0F092?0f0T0D09bJb70.ho1kg_hu9,0P0(hb0g0t0(0^1 160hhwh30E0I0E2G9,0?0O0(0P290+hdho0T8z1-h=h@0?2?1Q8@0%0W1Lh8040G00hd2c1 dK0A2g181 8@0P1w0Ki70(ib9,0E2X0{1 0K0pix1yi62U3t1o1a0+h?1~h~dihA0%iq31izhgh.0L1j0?iX0?3tfEfEh?iL3?0p0(1~iQit1a0hhn2Uhxhz8?1 0+h/1?1Q2u2@0W0P0Vh.0?0E0L2RiPi$hc2?2Qhw3l19dl0ei;0!2Shyh3310k0giD0P0f0I0t28e:ifih1P1R3:1X1Z1#1%1)1+1-241=1@1_g;3:2D2u2w120M1*1,gM3a7fg;667k3ujTdR0n3Bd7f$9Ej:dbgDj/cT6c5T9|j`cXaNdIfxf08*7@eM0mcei}8@3si^0+giaie f|gOc#bskidN04e2dpe*c#blkmcxcIgt7*4Qj.8d4/dVj~8dj^bXj?2n5S5+kHj/8jgGhGa,a^kucHkpe?e*brf@c-kqc!eIkS5^fXf~cNj/dTf}g741k-g5a0j=k=kKk^0Y8EkPe*a-f4kod,bkkZf_k%ktk)ejk+j?enk/k{es8Tlf2oj|kL6sj/8MaLgHd)gJaRaTbCkhguecl0gmdr04a;gN8 049Mkllxe4felAe^bAb0lEb2d b6k#aebblvbfcrakl8fGbn12lDlMlFkYl1hYlUe4a~lPl*lRbFgTj-fYj/eWlee$l|k?eYk;9Elj6)b,m0c480lagw86j/fll~m79^m1k:3ymem56Rl mim9k1e+3Tc97(k43Oce0ecgc$ckgSmxa$lYk7eBeJl1kVl$atcDfaefh5l9f|kAf!mgkEf(lhmpaGlkk{f+cYlqeGmJmCdElQaogll/bu0Z0p12j82@kxl`lbj/g1mXj_bPmjk{bUm%mpg9m*kQ9)gehCdnl5m:3Oe6jy0tjpe9bG0%5Y02030d0R0vhTnsnufNl-m}fhm 5sj;mpgBm!mhb.n8nKe(ms0fd+nidBeId/d;j$m?fzgPc=kTc 04mS67k*mc8Kj`5JkCepn3b{kGlm5Imn6_n=n/9Gf.e*gegqe:ginc01e_nSeNkag|0pkdkf7+lwkym,gPe1e`f9cFmFbHl.mTlJbMl{3BcPgzkE5Xn5mpozk`oBcPlpe)gI0Kk3nYgOo1h.gre;f@fKfMfOe-nffTl1n)mamUoud6n:m2mlddn@5Vj`kJnMoykOnbgbkrk%gRo4l%f^o8eH92nCgv8Jk,dXnGmhd$o,4@j`8yo:n=k}o?n mOfPoWo{gko}l?3fgoe.oPgi9:osl~7sj`ldkDn=lgg6k{ewoDp7lok~gIaQgLl69fo`nCgVj,gX2(g/740.0:0=04.