Chien en POO

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)
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 : 10/10
.128013çD1wsqT_iRt*/pn.PC5=u;-2][0(evSrLc7è )a:àj4+Ff3,o6hgm8éyxOkld9Ib050-0D0l0N0j0,0f0L0I0,0N0f0f0u010l0j0o010406050f0v0#0#0N0G0(040F0X0,0v140X0p0L020N0#0o0w0L0k0D1e0G0g0v0D0f050n1b1d1f1h190o041F1M051P0n1P1R1M190-0j0E0|0~10120Z0j0!0Z0,1)0Z0l17050@0:0,0D1!0 11011(1*1,1*0l1=1@1:0l0:0X0-1h1;0G1N0l0Z0|1k0f0o0N0p120y011_1$010U0_0D0p1s0D1:2h2j2o1{2r1@2u0#2w040a0L0r0G0X0o0X0f0j1n1p0=2f0G0G0D0I2R1F2y0p1N0n2d2%0l2b2a2c0-2A121,0p2t2O1:1X1Z0}1`2;0j2?0p271Y1:0o2W1N2#2%381a2i1p2|2p310G1e0,170L0d2!3c183b2z3e1{3g3i3k0y3n2j3p2#2:013u0N3j040L0V3y2$193B3s123E3G0L0R3K3A3c3C3Q3k0t3U3M3W3O3D0X3h3F3k0Y3#3q3d1#3t3*3v3H0J3/3N3=3P3@3,3H0$3{3%3}3)3+3R0.433r453Y040d0B4a3;2}463^0d3m1G3o3$4b4j4d0d3x4o3z4q4i3f3 3G0d3J4w3L3:3X4B170d3T4F3V4r4A474K3!4N4y4I4R4e3.4U4H3(4t3`4!3|4s4J4e424)444+4X0d494/4P3?4X0y4g4^4z4`3^0y4n384V4$4,0y4v544#4c574E5a4*4Q514M5f4:5h400y4T5k4_3~4{4Z3a1S361F2`2*0-2.3C0I272G0;1Y1N350D373o3U055E0=5M5r010+173s5O5g1{0e3k5Y5l3t0I170s1(2t5%5T16040O3#0L5^0L5b4j5V040=0U5/4 125#3H613C0U0#170i0i2 2Q6b663(5;0C6g450:5;0f0D0,604N5{2p5;0W3U5`5Z3P17310#6k4j6v6x6t3t172N0j0-1E6s6z015;0M5?4U5_6W6y5(126m176o6q6E2p0X170q6)6J046C6H6Q6+040u6=6Z3D6B0X6D6V6X5^6I6!6n6p6r3a6?6,6.6A046L6N6`5T6@6_4N6Y5T0p6K0X6M6O54066W735U175 7b01645`6P6{0p0U7x1o2?0i6;7D5:176j7M62016#046%775N6Q6S6U5471726Q5}2W0l0v0G0p7g7R7T7V7z6@6-7Q3X6}6 7s7u7(7x0D7W3z7v7B7z7F7H0p7J7e7r7X6{6i7z7;767z7Z5@7$7v7)0?7,7.7k7v8h6(7_3(7@867o7q3#7t5_8n80822$845$8w4c7G041e0I0Z0X0v0_1@8j7O8g758v788e176w8s6Q7n040Q8S0?8W046T8l717v8+2W1b0,0@0l7/3C7i8 3(0f2m0401018?6X8F040U3*924c170j9f4j0X642 9j3f0:170G2j0!0D8:7P8#7m9q042D9w8z8,8.8~8L6F170M9o1{6@0x9M120#0j4K8:8=707$8E8*9r1D0v8|0N9H387l7R6@0S7j9+8^178-1C9*8d7N040A9E9i9I6u170z997~6{8o7+7-9Q6|048`9%8}8Ca55T5}7ya05!8K9y7R87040N260j9val128faw7S8Z8H5S7R6G8)7E7{0:2W9V7!4p9Y9b7*8qaa9417010*0v0N7Gaa6@0maa8+6CaJav7}9Za68G7z85azaq1e0p9u9Daz8uaC7vaF9;9!ac9)0j1oaLa4a-ai9haC9,3C9S174}b06{6@028|0wa%9rb3b5aG7h17bk0l0w9:3obc3(a|7?7aa=8A7fbr9-170naabe4ebg9`aE17aM4x9Yah7:aBbC047^ao7`7d7pbGbhbs049/bnb22Z9XbUaP8pa9bH3C0+5*040h0G1Cb77%a.046p6o8:bS3LbUb87Ra7aRb_3(b{170T3Fc64!0n5Q5L1O5x0n5z1F0l5Bcu2,2(26282*as1@2%5z1LaD3C2W0#0i0U0N0+0D0i0Z0V171x1z1B1D0Lc82%1V1Q040HcY2+7p0{5K9S0K8`0L0#0%2d5F0{6jco046b6d0l6fcn5F040W5`c|0-7IcQ7Lc|0L0?d6d3d889cQ8b1Fc|0M0L2?0L350%6o0p0l2t0ldq0 0L2T1X0U2r0Iaeds0q0L0*1p31dv9s0|0D0o2t0-2jdx0,001m0_0j0fbp2S1^dW1f0!1cdwdf5R7=d25R0L1B0jdq0D3hde0-002 1XcX0Gd?1CdP211^c?c^2T0f000N0o0o1,cX0L0P0LdW0X0:0Qde5E0p0Id`0p0%dye2d)ee6pdI0H3*0{2TdWdY1,d#2RdA1^es0{e88R0=0{1o0L6~ep1^2i9s0#0K2+1^0Od.5L8Qau0p0qdh7J6C0C9Ld;5Lewdd0)1yef0Dd52tdddDde0_dd0fdx2i10ev0N0E2Xe)04e+5.e@bZ1O3p1Mc)0{c+d!0L0N1mc;ePc_0Lc{d38P8R8T0,8Vfid55Pd3as7pavdcdefH5Ra@a_fidn5KdidueL0v0)fr0Gd+2Fdu0{e(fO5Ld:dc0CeHd!evdr2r0)0%dnde0v1peY1se#2Wei0L9d8q0je22Nf6f@ev0,eDeLekecez0,7^c$1M0c2j0{1@0|dzeF0Nc=c@eQ1^f+8O9tfLd3d5eT0E0%0G0j2r1^ehgy9sb:dceJd!cN2QekcYeq1X2R0{ejd)6M1^d}f|0Ldvf6fegI0L0B1qbl0LgNb41pbubw0L7V0q8b0L0n3l0B6Uc|dI0/0,g|d`0^dxfs10d^g82P1?g%dX14eId`0Lg)2MgG9)0D7,fe2j0-dld3cZg-0Ug/g;bvg?d$fr0p2/g@eTg`0uh96qg~b(0{h14fh4d3gjfl04dKdq8S2Vhbdd7F2 hohld!hnf|1^1`d`eKgyh?0Gdxg:g`hGeKhNhP0UhR7qh0h2hW5RdI0h8Sdv9dd!d5ese6g30N0beT2T350X0I0%0=e20!0%0pc:hagTh;dd2Vhte22PekgtgW2Qg^do001Df7dz8`dR2Y0%0DeBhkdZgQim0vg*iN2A0jehdRd{dx2Tiu2Wg70G0%0If;f%dVcY0=fYgqeE1^2rd+g1d|1^2W0p0E0X0(hngycj0`gBd=f00Igr00i=0Zfd0-i!g+0lhY19cs0?0^0`04.
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):