La classe Chien⚓︎

On souhaite dans cet exercice créer une classe Chien ayant deux attributs :

  • un nom nom de type str,

  • un poids poids de type float.

Cette classe possède aussi différentes méthodes décrites ci-dessous (chien est un objet de type Chien) :

  • chien.donne_nom() qui renvoie la valeur de l'attribut nom ;

  • chien.donne_poids() qui renvoie la valeur de l'attribut poids ;

  • chien.machouille(jouet) qui renvoie son argument, la chaine de caractères jouet, privée de son dernier caractère ;

  • chien.aboie(nb_fois) qui renvoie la chaine 'Ouaf' * nb_fois, où nb_fois est un entier passé en argument ;

  • chien.mange(ration) qui modifie l'attribut poids en lui ajoutant la valeur de l'argument ration (de type float).

classDiagram
class Chien{
       nom : str
       poids : float
       donne_nom() str
       donne_poids() float
       machouille(jouet : str) str
       aboie(nombre : int) str
       mange(ration : float) bool
}

On ajoute les contraintes suivantes concernant la méthode mange :

  • on vérifiera que la valeur de ration est comprise entre 0 (exclu) et un dixième du poids du chien (inclus),
  • la méthode renverra True si ration satisfait ces conditions et que l'attribut poids est bien modifié, False dans le cas contraire.
Exemples
>>> medor = Chien('Médor', 12.0)
>>> medor.donne_nom()
'Médor'
>>> medor.donne_poids()
12.0
>>> medor.machouille('bâton')
'bâto'
>>> medor.aboie(3)
'OuafOuafOuaf'
>>> medor.mange(2.0)
False
>>> medor.mange(1.0)
True
>>> medor.donne_poids()
13.0
>>> medor.mange(1.3)
True

Compléter le code de la classe Chien.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
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
.128013lS]et-d5f18umaèg,_F/çR=in 6)yàqPhcDL[(bsx.p;r4jC'90"ov+Tw73Ok:é *2I030b08090i0s050I0)0C050i0I0I0r0U090s0L0U020u030I0g0h0h0i0N0x02060V050g100V0t0)000i0h0L0M0)0q081a0N0z0g080I030o17191b1d150L02031I1B1L0o1I150b0s0W0^0`0|0~0B0s0k0B051Z0B0913030:0H05081U0{0}0U1Y1!1$1!091+1-1)090N1J090B0^1g0I0L0i0t0~0+0U1/1W0U0d0=080t1o081)25272c1;2f1-2i0h2k02040)0A0N0V0L0V0I0s1j1l0.230N0N080C2F1B2m0t1J0o212R1~201 1*0b2o0~1$0t2h2C1)1R1T0_1:2#0s2%0t0V2*1)0L2K1J2P2R2{16261l2,2d2;0N1a05130)0e2O2 142~2n311;3335370+3a273c2P2!0U3h0i36020)0#3l2Q153o3f0~3r3t0)0O3x3n2 3p3D370c3H3z3J3B3q0V343s370v3O3d301V3g3T3i3u0!3Y3A3#3C3%3V3u0f3*3Q3,3S3U3E0S3=3e3@3L020e0T3|3!2-3^3'0e391C3b3P3}453 0e3k4a3m4c44323.3t0e3w4i3y3Z3K4n130e3G4r3I4d4m3_4w3N4z4k4u4D403X4G4t3R4f3)4M3+4e4v403;4R3?4T4J0e3{4X4B3$4J0+424%4l4(3'0+492{4H4O4U0+4h4=4N3~4^4q4{4S4C4/4y504Y523/0+4F554'3-4)4L2}1O2_1B2*2U0b202Z3R0C2=2u0-1S1J2^082`3b3H035q0.5y5c0U0%133f3H0)4|4e0C130Q1Y2h5A511;12020'3O0)5!5L5U0~5H020.0d5K5M2d0d0h130m0m2/2E5=5T565V130G5`5F0H5W0I08055+4z5-5|020l5,5%3q132;0h5 4-0~5W6b4z5$5{3C132B0s0b1A676d5W0w5Y4G5#6C6o606264662}6d0V130K6i3K6f0V6h6n680~6L020r6c6p6e026g5Z6D5!6U0U611363656O3R6W6N6w6!0t6r0V6t6v2{6E6j0U6W6Y6T6d6_026s6u3O0u6C6*5(5*6Z5F0t0d130b1k2%0m6%6@5F5W5~7q706,026.6I5z6x136z6'6(7d132K090g0N0t7g7v6G6/7u3p6=6:3~6Q6S4=7b5#7G5)087z3m6 3K7j5)7m080m786}7A6!7s7U457w7y7^2d6y6A4=6(6)6d5(7I7K7M746!7`6H7|1;7T7R4O6`6|7a7c837k7%7N7*131a0C0B0V0g0=1-8c6k5}8y6+7P7'2Q6*6l8o8g020P8u0/8B7~7E6D6*762K17050:098I3@728Z450I2a02001x0V090M8*0g8,0M8Q8k6!5(0d3T8$32130s8|8d0Z8~876~8S0H7H270k088O8A8f3~97022r9c027t6J6^138L1y8Y9e456y906V130a9v0U0h0s4w9j7D6B818@7h7H1z0g8W0i9r956K130X739Q9n8K8M9P7=7r130F8B768 9s7}13078?7!8l02857L9z8T9L9N9Z4j7Z828^8m8E3u8S7+0i0H6{9b9*699l9!7O6-8ba98z6a9@7W0H2K9E7 4b9H7#9=943b7)3R8'138/8;0$0g0i0daz8-9z6W0*aj6$6Rala87Y9I707e8n887h7+1a0t9a9jab3m6*8a7Q9m9#aiaU708T9O0s1kan9.9~5F5(0sa1av3@9B134+9V5F6W008W8=a,6P9;a/a;b76;ayb59Uaua%8D8B8ea)a-8h79bc8!130o9za~40b0ac3p5Wao4j9HaQ3pa'a16*blby8J7:aH9Sbg7(8S982N9GbDa|45840/869z0%5O020Y0N1ya?bW2d5(64639jbB3ybVa@aR9K7J9?bqbXb%0n3sb:4M0o5C5x1M5i0o5k1B095mcb2X2Sa51-2R5k1H5E702K0h0m0d0i0%7.0B0#131t1v1x1z0)b=2R1P1K020EcB1~6{0@5w9B0j8U0)0h0(215r0@5~c5025=5@095_c45r6a5LcY7l0t7n7pcY0)0/c*c(c,7nbMc'5D0w0)2%0)2^0(630t092h09d00{0)2H1R0d2f0C9M09d20K0)0$1l2;d50N0i0^080L2h0b27d7050R1i0=0s0Iba2G1.dy1b0k18d6c?5D7{c{5x0)1x0sd00834c=0b0R2/1RcA0NdR1ydr1`1.cScU2H0I0R0i0L0L1$cA0)0y0)dy0V0H0Pc=5q0t0CdV0t0(d8d%dHd=64dj0E3T0@2HdydA1$dD2Fda1.e30@d,8t0.0@1k0)6Re01.26dp0h0j1~1.0'dM5x8s0s2h0Kc^7.6g0G0w1Bc:ezc;0J1ud?080lc;1l7%0dc=0=c;0Id7260|e60i0W2LeG02eI5SdP026?cF1IcI0@cKdC0)0i1icQeqcV0)cXc(8r8t8v058xe_eZ5Bc(a5a7eRc(c;d7fi5DaXaZe_c}5wc-dL0.0g0Jf20NdJ2td40@eFfq5xdOc:0GeidCe6d12f0J0(c}c=0g1lez1oeC2Kd_0)8`860sd%2Be*fSe605eeemd{d:ea05e{3c1I0D270@1-0^d9egdqf62HfJ02fsa8cYeZeu0W0(0Na`eJd'1.g7dpbTc:ekdCcr2Ed{cBe11R2F0@d`dH6t1.dYfX0)d5e*e=a`0)0T1mb50)gma:1lb48-0r0)7y0K7:0)0o380T6AcYdj0,05gVdV0;d7f30|dTf,2D1,gCdz10ejdV0)gE2Agf9O087Ke=270bfm5DcCgI0dgKgM8-gOdEf20t2ZgPeugS0MgUgWgYg!41g%c(f`cldld08u2Jg-e!2f1lfO63d%fX1.1:dVelg7hK0Nd7gLhmhfelhmho6HgX6{6ugZg#ht5Ddj0Y8ud58`dCeZe3d*f'0i0peu2H2^0V0C0(0.d%0k0(0tcPg,gshIc;2Jh2d%2Dd{dqgv2EgQc~0R1ze+d98Udt2M0(08ecg_dBgph@0ggFii2o0sd^dtdWd72Hh 2Kf+0N0(0CfPfFdxcBfzfB0Cg21.2fdJf$dX1.2K0t0W0V0xg|g7c00?gafn2hg1ef0RiJ0Be;0bivgG09hv5j0/0;0?02.
Aide pour machouille

Pour la méthode machouille on pourra recopier toutes les lettres de jouet sauf la dernière en parcourant les indices à l'aide de la boucle for i in range(len(jouet) - 1):