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,è Ow*5e(8CR0pkDojic6TS1vqd:xIFy24flnç-]93m=)rh[us;b/.àt_gLéaP+7050B0i0(0-0t0K0Y0d0u0K0-0Y0Y0S010(0t0o010406050Y0X0R0R0-0U0G040x0r0K0X140r0L0d020-0R0o0Z0d0m0i1e0U0A0X0i0Y050#1b1d1f1h190o041F1M051P0#1P1R1M190B0t0z0|0~10120V0t0*0V0K1)0V0(17050@0!0K0i1!0 11011(1*1,1*0(1=1@1:0(0!0r0B1h1;0U1N0(0V0|1k0Y0o0-0L120H011_1$010J0_0i0L1s0i1:2h2j2o1{2r1@2u0R2w040a0d0.0U0r0o0r0Y0t1n1p0=2f0U0U0i0u2R1F2y0L1N0#2d2%0(2b2a2c0B2A121,0L2t2O1:1X1Z0}1`2;0t2?0L271Y1:0o2W1N2#2%381a2i1p2|2p310U1e0K170d0y2!3c183b2z3e1{3g3i3k0H3n2j3p2#2:013u0-3j040d0Q3y2$193B3s123E3G0d0I3K3A3c3C3Q3k0h3U3M3W3O3D0r3h3F3k0v3#3q3d1#3t3*3v3H0:3/3N3=3P3@3,3H0k3{3%3}3)3+3R0P433r453Y040y0n4a3;2}463^0y3m1G3o3$4b4j4d0y3x4o3z4q4i3f3 3G0y3J4w3L3:3X4B170y3T4F3V4r4A474K3!4N4y4I4R4e3.4U4H3(4t3`4!3|4s4J4e424)444+4X0y494/4P3?4X0H4g4^4z4`3^0H4n384V4$4,0H4v544#4c574E5a4*4Q514M5f4:5h400H4T5k4_3~4{4Z3a1S361F2`2*0B2.3C0u272G0;1Y1N350i373o3U055E0=5M5r010p173s5O5g1{0f3k5Y5l3t0u170l1(2t5%5T16040C3#0d5^0d5b4j5V040=0J5/4 125#3H613C0J0R170)0)2 2Q6b663(5;0j6g450!5;0Y0i0K604N5{2p5;0b3U5`5Z3P17310R6k4j6v6x6t3t172N0t0B1E6s6z015;0T5?4U5_6W6y5(126m176o6q6E2p0r170$6)6J046C6H6Q6+040S6=6Z3D6B0r6D6V6X5^6I6!6n6p6r3a6?6,6.6A046L6N6`5T6@6_4N6Y5T0L6K0r6M6O54066W735U175 7b01645`6P6{0L0J7x1o2?0)6;7D5:176j7M62016#046%775N6Q6S6U5471726Q5}2W0(0X0U0L7g7R7T7V7z6@6-7Q3X6}6 7s7u7(7x0i7W3z7v7B7z7F7H0L7J7e7r7X6{6i7z7;767z7Z5@7$7v7)0?7,7.7k7v8h6(7_3(7@867o7q3#7t5_8n80822$845$8w4c7G041e0u0V0r0X0_1@8j7O8g758v788e176w8s6Q7n040s8S0?8W046T8l717v8+2W1b0K0@0(7/3C7i8 3(0Y2m0401018?6X8F040J3*924c170t9f4j0r642 9j3f0!170U2j0*0i8:7P8#7m9q042D9w8z8,8.8~8L6F170T9o1{6@0N9M120R0t4K8:8=707$8E8*9r1D0X8|0-9H387l7R6@0/7j9+8^178-1C9*8d7N040W9E9i9I6u170O997~6{8o7+7-9Q6|048`9%8}8Ca55T5}7ya05!8K9y7R87040-260t9val128faw7S8Z8H5S7R6G8)7E7{0!2W9V7!4p9Y9b7*8qaa9417010e0X0-7Gaa6@0gaa8+6CaJav7}9Za68G7z85azaq1e0L9u9Daz8uaC7vaF9;9!ac9)0t1oaLa4a-ai9haC9,3C9S174}b06{6@028|0Za%9rb3b5aG7h17bk0(0Z9:3obc3(a|7?7aa=8A7fbr9-170#aabe4ebg9`aE17aM4x9Yah7:aBbC047^ao7`7d7pbGbhbs049/bnb22Z9XbUaP8pa9bH3C0p5*040w0U1Cb77%a.046p6o8:bS3LbUb87Ra7aRb_3(b{170F3Fc64!0#5Q5L1O5x0#5z1F0(5Bcu2,2(26282*as1@2%5z1LaD3C2W0R0)0J0-0p0i0)0V0Q171x1z1B1D0dc82%1V1Q040+cY2+7p0{5K9S0c8`0d0R0,2d5F0{6jco046b6d0(6fcn5F040b5`c|0B7IcQ7Lc|0d0?d6d3d889cQ8b1Fc|0T0d2?0d350,6o0L0(2t0(dq0 0d2T1X0J2r0uaeds0$0d0e1p31dv9s0|0i0o2t0B2jdx0K001m0_0t0Ybp2S1^dW1f0*1cdwdf5R7=d25R0d1B0tdq0i3hde0B002 1XcX0Ud?1CdP211^c?c^2T0Y000-0o0o1,cX0d0%0ddW0r0!0sde5E0L0ud`0L0,dye2d)ee6pdI0+3*0{2TdWdY1,d#2RdA1^es0{e88R0=0{1o0d6~ep1^2i9s0R0c2+1^0Cd.5L8Qau0L0$dh7J6C0j9Ld;5Lewdd0D1yef0id52tdddDde0_dd0Ydx2i10ev0-0z2Xe)04e+5.e@bZ1O3p1Mc)0{c+d!0d0-1mc;ePc_0dc{d38P8R8T0K8Vfid55Pd3as7pavdcdefH5Ra@a_fidn5KdidueL0X0Dfr0Ud+2Fdu0{e(fO5Ld:dc0jeHd!evdr2r0D0,dnde0X1peY1se#2Wei0d9d8q0te22Nf6f@ev0KeDeLekecez0K7^c$1M0q2j0{1@0|dzeF0-c=c@eQ1^f+8O9tfLd3d5eT0z0,0U0t2r1^ehgy9sb:dceJd!cN2QekcYeq1X2R0{ejd)6M1^d}f|0ddvf6fegI0d0n1qbl0dgNb41pbubw0d7V0$8b0d0#3l0n6Uc|dI0E0Kg|d`0^dxfs10d^g82P1?g%dX14eId`0dg)2MgG9)0i7,fe2j0Bdld3cZg-0Jg/g;bvg?d$fr0L2/g@eTg`0Sh96qg~b(0{h14fh4d3gjfl04dKdq8S2Vhbdd7F2 hohld!hnf|1^1`d`eKgyh?0Udxg:g`hGeKhNhP0JhR7qh0h2hW5RdI0w8Sdv9dd!d5ese6g30-0MeT2T350r0u0,0=e20*0,0Lc:hagTh;dd2Vhte22PekgtgW2Qg^do001Df7dz8`dR2Y0,0ieBhkdZgQim0Xg*iN2A0tehdRd{dx2Tiu2Wg70U0,0uf;f%dVcY0=fYgqeE1^2rd+g1d|1^2W0L0z0r0Ghngycj0`gBd=f00ugr00i=0Vfd0Bi!g+0(hY19cs0?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):