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
1
2
3
4
5
6
>>> 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

.128013ita;,nD2R*7+14 f08Uelor=[à]/m3dv.S5éwbcyq:A-upB)_9NhxPs6(gk050F0u0c0d0b0v0%0p0N0v0d0%0%0y010c0b0U010406050%0T0D0D0d0x0O040I0w0v0T0 0w0g0p020d0D0U0e0p0j0u190x0P0T0u0%050C16181a1c140U04051H1A1K0C1H140F0b0G0@0_0{0}0_0g0*0T0d0*0u0S0U0O0c0!1j0p0!0b0*0!0v1:0!0c12050/0M0v0u1T0`0|011/1;1?1;0c1|1~1`0c0x1I1+0@1f0%0U0d0g0}0i01201V010q0;0u0g1n0u1`2i2k2p222s1~2v0D2x040a0p0$0x0w0U0w0%0b1i1k0-2g0x0x0u0N2S1A2z0g1I0C1+2(2c2e2d1{0F2B1W0b0g2u2P1`1Q1S0^212=2@0g0w2{1`0U2X1I2$2(38152j1k2}2q310x190v1`0d1.2X0q0}030X0X0N320u1?300w0S0i0S0n120p0n1A0d393c133b2A3e223g3i3k3m0u3o013q3s3u3w2^3z3z3D0i3G3I2k3K2$2;013P0d3j1I3l0!3n3p3r3t0-3Z313#0E3D0E3)2#3J143-3N0}3:3=053@3_3V3{3Y2?3!3A0o3D0o441B463L3d1U3O0w3h3;3R3^3T3`3X3}4j3 3A0J3D0J4p38473c3.4b4z4f3W3|3v4F3y3A0(3D0(4L4r484u4a4w3Q3?3S3U4T4i3x3#0l3D0l4$3+4N3M4)3/4+4y4-4A4/4h4E4=3A0s3D0s4`2%4|4t2~4 4x4c4e4B4g4D4V570S0Y3D0Y5c3,4O495h4,4d4.4C4U3~4X3B0r120n0r5u5e4P505j5B5m5D4W3#0n3C045V5L4s5N5i4R5l4:564k3B2n5X3(0C3H454{5!5x4Q524S555o5+0n415X435:3*5d5@4~5_5A535C4;5~4m5X4o635=654(5g685k545n5E5U4I5X4K6h4q5?6k3f5O5%6o5S5p0n4Z5X4#6v4M666l6A5`5(5|6q3A0n4@5X4_6J4%5w676N695{6p5T6S595X5b6X6x6Z6M5$6O6C6c4G3B5r5X5t6.2%1L361A2{2+0F2e2:5x4U2`1R1I350u373J6i1I4U7f2A0b0F0}3r2$5U3R7m7o6(6E2o2F0u7u6D5~1`6h6y220+0g120q2M0D7h6L2q0L3D7N7F4a7I04191+7S6:7P7R6w6 7T017H120b1o4w0c7h0p7O3O120%0P0x7:7%3K7}5!7t017p3c3#5-5A816Q6)3$0p7y7A6^5F8663147 3-880X7q3A60877n827v5+418c2w8e5*6_8q8i7Z7l8s832k3#6e8r8z5}6_4m8x2G8M6R0S8K7E7!7G120-0q8E5f7#047=8k8X4a0q8Z0b0%0/0g0N0u8$3.11040)8_5^122O2?0c0X0R8~4~8{0f7;7?4a900w920X0V965g8{0W0Q7h8j3a8l8G8n844H7s9r7B6_4I8Q7z8t9x5F6s3)0p9H7=7)7V0#949i2q989a9K120O9N7}9J8,010w120y9R9Y7V910g93957}9o7g9q7u8o0S6G8L9C8f3#4Z9A8S8a9^639I9X4}6l129M9h8+a59P12999W9b3/9T9g9%ab229!049$af9S049*93a96Kaa1k8m9?6U9_895p4@9~9`8A5FaBa29Iag0+122X0c0T0x0gak8%7@047_7{9O228{0)8}ax4Pa7ajaq9Yan0SaVa+049M9-9p9Y9ka=5xan0k0ka}4~0D0b125/38a4aW0}an0mb29j12a)a`al9c049Uav3Jb93.a:be3faia_9:a{120Wbsam12b0bA0}b4b6a#0}a|9.8_az9t0S6+aC8u6_59aGaD5+bQ8Da*bN8I3A6{bR9D3#5rbVbS5Fb(bZbiay9r9?5J9v9 6E5Hb-b*6S5H2(5;7)aO048!bI017Q8)c80g8.as1g0%0X350w0N0!8^a*5xa%cc9d921zco97adbEahc60u2ja!cvbf049l9nbMb@bO5Vb`aH8N5FcMb~9{6S5W9GaMaratci2Mclcnb8aganapc(cY9e9+cub=8`120zc8bG045KcEac040BcIb!cKb$5,cNbW6_0n2ncSaI5U8h3Ha3ag7V1Q8;0Xb40g7-3;c%boc)9#cydh8:8=8@c8cqc|aXcZcjc$dycxa.bjcz0-cC7|c;cpbyd0c;b#0g5U8q3l8mb 3B8w8dcO8T5 7DdecX9Yc50q4wdt7,cy0wca2?dt0MaP2k1$dF8|c^b55Xd~aec,9(d`042Ed~bhbwdI9)c.0cc:ecba019kcHbLd19=cL8KdW9wcT3B8Pd#d6cQ8Vd*a39Hdgcs9+d=dsdHejeectd~c@dAbk0bd~c endRd2dT6S9Fesb{5~9zexb.6rd)8)eCeDardi933taS2k0cdp3+bpa~eIe5ed8/8;2kdxePekbgcrasefe3d:cAdLd~bzeUei0pdS5U9^e!d$8a6F7x8yfn6Ea1eBeCaN7,8#eJa?e:3Xe?9+e_2%e{4~an020v0c0efbfCdldn1~d~9mfg3+80eW5UaBfmeyf!fq8Rfs5~aKfve-e.9(eF93dDcmeHaofbatdQfhfj6*d5e)g0dacP5UbYf.f/eEc6dvdk2?fSfGcb7)c*fPgce=0xe@gg9/fX9;8tb^b(f$g26`f)9Bf%6Sb:fvfx04aQaSaUfA8 f89ff@gp7N0C7j707e727b1A0c75gX2.2)0d1}gU0C731G7kej2X0D0X0q0d0+0u0X0!601s1u1w1y0pfV3a1N3K1H0t2@0p0d1h2X0p2O0{0b0M0;2R0K0p2ufidm0 3;8:e@0p0_0pe:f21 fR3i1 0AfI5g1a2R0!7X0u0#12090)0m092?0q0c0O09ffb80.hk1kg=hq9+0p0Th70M0w0T0^1 160xhsg 0K0v0K2Gc/hu0T0p290uh9hk0c8c1-h.h:0?2?1Q8@0%0H1Lh4040h00h92c1 dL0f2g181 8@0p1w0bi20Ti69+0K2X0{1 0b0Nis1yi12U3t1o1a0uh/1~0?hv8?1yil31iuhch*0G1j0?iS0?3tfFfFh/iG3;0N0T1~iLio1a0xhj2UhtiOip0uh+1?1Q2u2@0H0p0Zh*0?0K0G2RiKiXh82?2Qhs3l19dm0Ui,0d2Shug 310D0Miy0p0q0v0w28e@iaic1P1R3.1X1Z1#1%1)1+1-241=1@1_2eg%1~3.jJ261^h}2b2.2f3t0=3c2m2o5x2D2u2w2y9Yj(7y120$1*1,gJh22*g!2-76jB4W0%7a2|4~5E337c71h2dN6!6=6$6Pe)0E3B3D3F6~5ved6#6n6bdbkd5-0p5/5;bL9Kkk5Q5)g5kd600p62ks6Kkuk9kl5R9{kd6e0p6gkD6YkjkGkwf%kd6s0p6ukO6/kQ5zkHkx6qkd6G0p6IkY6j9(kv6akIkn0S6U0p6Wk-kieKk:6%b*kd6+0p6-k{5M5^k~kbl05q5s5ZkFk#kSkc5G5Ic{l5dgl86@k?cM5Xkgllle51kalokyd45.ldk/kRk;k%5Tkdd(61lBk!lvk$kTev5IkN642(7d2(73gXgZgY3.791IlWlU4slS05gSgs8HdTlHg1la3Cg4k(kec2g-3.c5c7f4ca8*k76lcei^g^0Ni:0uggagdzm2btgM9+9Vmda$dGe~eKf=a-mibJbyh14reogt84kol;kJ8be(ladde,f:e a@mhfhdO04e4dqar9Ubve`drf`gK67mnmQ65mul.0Skzmyk?d!frlO8CgEara8famUa6blmomNa/e}m^mGcZbn5?mZ9s8IkKm%lyewm*lheAmEhC2qc5gHaTcymcmJmVmHm~fHmSa;m;mea^fef_bDnp22c_b7m{ejbcngf6f47Vbmf_nomla?mPnsnvbbbCb1nN01nxf}gr4OfjkUn4l^e%n7la9Fb;f~fZk)nZlG9@gze#3 n,l`gFl~mpc97$n`cd90cgc!ckf^f4nhnVm|efeho6ej9QnRdhcB1adMnicFemaweVepn2k@n-4=kdaFmBmzf-nagadCc#o3nJe|mToC4~0+0N12j22@nU7(nWn+bPoq3!l1n:f+n=oQl`dfe/gchydof_c+nz4Pe7js0wjjeac80%5W02030E0Y0ehPo@o_fOo4dPfWoN8Fonl/lb4-dXmzb,ouk?gDoxc47Jd/odf=d=d@j?o*gLato9p3ob12msm ommvoob_p8etlpb}pclypAcWe-gafCgmgoo(gkf1iP3sm8ma7)o5psa?f|p0mLfPofcDn`bKoln*p5m#3BcVgwl=l?pFl^lqpIfwpg040bfzoFm=pLh*gnfFf_fLfNpP93o$fTp!pvmYpxm!lH86p;mzd8oUlOqmoYf/oZf;mff?oAggnbbBoEponjpZp+oafioPlIb)qlm)f*qom,naqrpKo#gehzpOpjgbdjpMq5p2l{nXlPpBn;3ylHn6qMlh0nn9qsdInd0.gIf{efo1dEq#1AgS1N71g*gW2)gZ2)g#h}lV7b8j0-0/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

.128013ita;,nD2R*7+14 f08Uelor=[à]/m3dv.S5éwbcyq:A-upB)_9NhxPs6(gk050F0u0c0d0b0v0%0p0N0v0d0%0%0y010c0b0U010406050%0T0D0D0d0x0O040I0w0v0T0 0w0g0p020d0D0U0e0p0j0u190x0P0T0u0%050C16181a1c140U04051H1A1K0C1H140F0b0G0@0_0{0}0_0g0*0T0d0*0u0S0U0O0c0!1j0p0!0b0*0!0v1:0!0c12050/0M0v0u1T0`0|011/1;1?1;0c1|1~1`0c0x1I1+0@1f0%0U0d0g0}0i01201V010q0;0u0g1n0u1`2i2k2p222s1~2v0D2x040a0p0$0x0w0U0w0%0b1i1k0-2g0x0x0u0N2S1A2z0g1I0C1+2(2c2e2d1{0F2B1W0b0g2u2P1`1Q1S0^212=2@0g0w2{1`0U2X1I2$2(38152j1k2}2q310x190v1`0d1.2X0q0}030X0X0N320u1?300w0S0o0S0n120p0n1A0d393c133b2A3e223g3i3k3m0u3o013q3s3u3w2^3z0S2n040p0i3G3I2k3K2$2;013P0d3j1I3l0!3n3p3r3t0-3Z313#0E3D0E3+2#3J143/3N0}3=3@053_3{3V3}3Y2?3!3A0o3D0o461B483L3d1U3O0w3h3?3R3`3T3|3X3 4l413A0J3D0J4r38493c3:4d4B4h3W3~3v4H3y3A0(3D0(4N4t4a4w4c4y3Q3^3S3U4V4k3x3#0l3D0l4(3-4P3M4+3;4-4A4/4C4;4j4G4@3A0s3D0s4|2%4~4v2~514z4e4g4D4i4F4X590S0Y3D0Y5e3.4Q4b5j4.4f4:4E4W404Z3B0r120n0r5w5g4R525l5D5o5F4Y3#0n3C045X5N4u5P5k4T5n4=584m3B3%0n3*0C3H474}5$5z4S544U575q5-0n435Z455=3,5f5_505{5C555E4?604o5Z4q655@674*5i6a5m565p5G5W4K5Z4M6j4s5^6m3f5Q5)6q5U5r0n4#5Z4%6x4O686n6C5|5*5~6s3A0n4_5Z4{6L4)5y696P6b5}6r5V6U5b5Z5d6Z6z6#6O5(6Q6E6e4I3B5t5Z5v6:2%1L361A2{2+0F2e2:5z4W2`1R1I350u373J6k1I4W7h2A0b0F0}3r2$5W3R7o7q6*6G2o2F0u7w6F601`6j6A220+0g120q2M0D7j6N2q0L3D7P7H4c7K04191+7U6=7R7T6y717V017J120b1o4y0c7j0p7Q3O120%0P0x7=7)3K7 5$7v017r3c3#3%5C836S6+3$7z2w7C6`5H886514813/8a0X7s3A62897p847x5-430p7A8g5,6{8s8k7#7n8u852k3#6g8t8B5 6{4o8z8f8v7D8Q7F5?7+0+120-0q8G5h7%3(8(4R0q8#0b0%0/0g0N0u8,5z11040)8_69122O2?0c0X0R8~5i8{0f7?7^4c900w920X0V962q8{0W0Q7j8l3a8n8I8p864J7u9r8V5H4K8S2G8O6T0S6u3+0p9H7@7+7X0#949i22989a9K120O9N7 9J7$220w120y9R9Y9c04910g93957 9o7i9q7w8q0S6I8N8U8h3#4#9A7B9{8C5H9_659I9X4 6n129M9h8m9(019Q9W9b3;9T9g9%a82q9!049$ah9S9*9e9,al9/8,8o9@6W9`8b5r4_9 9C8caCa59Iai8!042X0c0T0x0gam8)7_047{7}9O0}8{0)8}adanaXabaV3:ap0Sa.5`aa9V9pae9ka=50ap0k0ka|5i0D0b125;38a7aW0}ap0mb19j12a)a_a+9)9Uacb7aia:bdaX9U9.bhb9af120Wbpba12a by01b3b5a#bv04bxaya*1kaA9t0S6-aD8w6{5baHa18P5HbQ8FbL0pbN8K3A6}bR9x3#5tbVaE5-b*b!btb$9r9@5L9vaI6G5Jb/bS5Hb{2(8YaeaO8$bG7S8+b#5`8.9*1g0%0X350w0N0!8^cc50a%bG7X9+0c1zco971299asae7X0-2ja!cwbebI9mbKb@b%0g5W5Yb+9|6U3Cc0b,cS8X3(aMatctci2Mclcnbm7+aparc*cB9d92cvb@8`120zbGbE045McG9P120B9nazb_bO5:b|bW9Dd6cUcR5.cXa6aicC8:93b30g7/3?c)3Jb8a/9#bCdh8;2k8@bGcqc~9)c#cjc(dycydt8#0ucE7~c?cpbwd2b#cM5W8s3l8ocV3B8y8Ad88c61decZc67L4ydH040bbC0wca2?dt0M120x2k1$dF8|c`b45Zd|czc.bi3;d@042Ed|bg9;c/auc;d|0W9ldPcLd4b(3B8MdU9wdc0n8RdZb:6{erd%a69Hdgc:9,d/dscAe4csavcud|c_dAajd-d|d1cKeb8H9?d59Feob}609zetc16texeyeA041Q8;3XaS2k0cdo3-dq5zc,d,e,8=dxeMdzdMa9edeCe~dGeFbucCdJ1adLeSbua{eR3-82ekcN6U9_eXd!6G9~e#dW6He(df8Z7.8%f64R8/e-3te/9,e=2%e@a}12020v0c0ee`di0Xdkdm1~d|cJ6MdQfi5WaCfmeuc2aGfqeqaK3Heyf-fHf1dCc%cmeDaqd,cteifcb^eUel0nbQf#e$6,8e9Bfn60bZf,f.fuece{fQ2?fSfF8+c+eEe3f7fA93fCd_fEf{fg9=8vb`b*g2frb.f)a25Wb=gaezfvaP0.aSaUfya?f293dDf?ff710C7l727g747d1A0c77g#2.2)0d1}gY0C751G7mbu2X0D0X0q0d0+0u0X0!621s1u1w1y0pfV7i1N3K1H0t2@0p0d1h2X0p2O0{0b0M0;2R0K0p2ub$dl0 3?8:e:0p0_0pe{dw1 fR3i1 0Af/2q1a2R0!7Z0u0#12090)0m092?0q0c0O09bJb70.ho1kg_hu9,0p0Thb0M0w0T0^1 160xhwh30K0v0K2G9,0?0F0T0p290uhdho0c8z1-h=h@0?2?1Q8@0%0H1Lh8040h00hd2c1 dK0f2g181 8@0p1w0bi70Tib9,0K2X0{1 0b0Nix1yi62U3t1o1a0uh?1~h~dihA0%iq31izhgh.0G1j0?iX0?3tfEfEh?iL3?0N0T1~iQit1a0xhn2Uhxhz8?1 0uh/1?1Q2u2@0H0p0Zh.0?0K0G2RiPi$hc2?2Qhw3l19dl0Ui;0d2Shyh3310D0MiD0p0q0v0w28e:ifih1P1R3:1X1Z1#1%1)1+1-241=1@1_2eg+1~3:jP261^i22b2.2f3t0=3c2m2o5z2D2u2w2yaej.7A120$1*1,gM3a2)0!2+j$j$79505G0%7c2|k44Y337e73j}f06B6@6(6Re$0J3B3D3F705xeG6%6p6dgDkl3%3)5#9Kks5S5+bX9E0S620p645?aykAkhkt5T9|kl6g0p6ikK6MkM5BkOkD6skl6u0p6wkV6!krkNkCf$kF6I0p6Kk*6;k,kYk.kk0S6W0p6Yk@6lcBkB6ckPkvbP5ckzl3k-l5k!5Vkl6}0p6 l1kqf7l46)b,klc35Llak_53ki6_l75X5Kkolk5O5`lnkjlpdd5Z5;lCdglFlxkElq6261ltlmlclokQem5KkU662(7f2(75g#g%g$3:7b1Il)l%4ul#05gWgv8JcNlqd7k/l|dblycXaNdIfxkf22ca7@eM0gcei}8@3si^0ugiaie f|gOc#bsmldN04e2dpe*c#blmpcxcIgt7*4QdRkwl}k|2nm0lP8dc4cYgHec9Mmogua`f5gmfz04brf@c-mtc!eIa^4tfXf~l{kGmFlHdY8Tl~m,mLgceGa@mwmRe4agmUgObkmYf_m$m`67m)gw86kRm-lXesm:k|8MaLmNe4aOaQgLbCmkm{gn04a-gNfI04a;nsf1mPeff@bBnw2qc{b6m!aebbnmbfcrakn4gjnH12nvm~8 mWm%no3:fenS5ia~b0nC22nEmAg;f}n78Kk$nal7e!ndlH9Fb?f|mD9^n:mJfpn?lXa4c5nim4c97(m64cce0Ucgc$ckgSo8bHeanWmmeIc=mxcHmse?e*cDfaefh55^n6l`kFf!n,m;f(o0l7f+mMhGaXf;oegioIbzf^n%0}0+0N12j82@n*fhm*kFg1oBk|bUgCmJg9oHorfPhCdnn1oQe57Ljzjpe9bG0%5Y02030E0Y0ehTo~p0fNf4bIoXl_9sn.5sn}k#pdmIpfgFo,gI0qd+o=eH92d/d;j|nGm^gPomojmqovn5ejoZlq5J4/dVlXb{phlf5Iftd(pvgegqe:oMbnglpunpmdg|0Nmgmi7+nnmBpvf`p7opfGorf9cFognYm(pCn-m+lzpGeplycTo)pfp{9Gf.m3d-m5pWmVpQh.gre;f@fKfMfOe-o/fTp7pA80p^oylq88gzpImHq0pLd6m?gbpOnpoKdEo=e_poeBfbowqopbp`dTo$lHd$pK4@lQpNf-o-qigghDo;nZ3fgoe.qcgi9:nWn{ewp|eY41lqncg6m;q.q3nhbunjgKaTn29fgRq*7PgV3ul$73g.g!2)g%2)g)i2l(7d8l0-0/0;0%04.