facile
Chien en POO
On souhaite dans cet exercice créer une classe Chien ayant deux attributs :
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.
.128013]é(wdef+nO5xr-F3juRa;/qçlbCà)8pg[èo ID7khm:vT,P1Ssi9L.*y0_t42c6=050f0g0+0u0Z0z0Y0K0.0z0u0Y0Y0:010+0Z0F010406050Y0s0Q0Q0u0n0(040X0J0z0s140J0j0K020u0Q0F0v0K0t0g1e0n0x0s0g0Y050w1b1d1f1h190F041F1M051P0w1P1R1M190f0Z0S0|0~10120P0Z0G0P0z1)0P0+17050@0A0z0g1!0 11011(1*1,1*0+1=1@1:0+0A0J0f1h1;0n1N0+0P0|1k0Y0F0u0j120-011_1$010h0_0g0j1s0g1:2h2j2o1{2r1@2u0Q2w040a0K0V0n0J0F0J0Y0Z1n1p0=2f0n0n0g0.2R1F2y0j1N0w2d2%0+2b2a2c0f2A121,0j2t2O1:1X1Z0}1`2;0Z2?0j271Y1:0F2W1N2#2%381a2i1p2|2p310n1e0z170K0W2!3c183b2z3e1{3g3i3k0-3n2j3p2#2:013u0u3j040K0q3y2$193B3s123E3G0K0,3K3A3c3C3Q3k0l3U3M3W3O3D0J3h3F3k0/3#3q3d1#3t3*3v3H0N3/3N3=3P3@3,3H0E3{3%3}3)3+3R0!433r453Y040W0)4a3;2}463^0W3m1G3o3$4b4j4d0W3x4o3z4q4i3f3 3G0W3J4w3L3:3X4B170W3T4F3V4r4A474K3!4N4y4I4R4e3.4U4H3(4t3`4!3|4s4J4e424)444+4X0W494/4P3?4X0-4g4^4z4`3^0-4n384V4$4,0-4v544#4c574E5a4*4Q514M5f4:5h400-4T5k4_3~4{4Z3a1S361F2`2*0f2.3C0.272G0;1Y1N350g373o3U055E0=5M5r010O173s5O5g1{0e3k5Y5l3t0.170B1(2t5%5T16040R3#0K5^0K5b4j5V040=0h5/4 125#3H613C0h0Q170*0*2 2Q6b663(5;0d6g450A5;0Y0g0z604N5{2p5;0U3U5`5Z3P17310Q6k4j6v6x6t3t172N0Z0f1E6s6z015;0D5?4U5_6W6y5(126m176o6q6E2p0J170$6)6J046C6H6Q6+040:6=6Z3D6B0J6D6V6X5^6I6!6n6p6r3a6?6,6.6A046L6N6`5T6@6_4N6Y5T0j6K0J6M6O54066W735U175 7b01645`6P6{0j0h7x1o2?0*6;7D5:176j7M62016#046%775N6Q6S6U5471726Q5}2W0+0s0n0j7g7R7T7V7z6@6-7Q3X6}6 7s7u7(7x0g7W3z7v7B7z7F7H0j7J7e7r7X6{6i7z7;767z7Z5@7$7v7)0?7,7.7k7v8h6(7_3(7@867o7q3#7t5_8n80822$845$8w4c7G041e0.0P0J0s0_1@8j7O8g758v788e176w8s6Q7n040r8S0?8W046T8l717v8+2W1b0z0@0+7/3C7i8 3(0Y2m0401018?6X8F040h3*924c170Z9f4j0J642 9j3f0A170n2j0G0g8:7P8#7m9q042D9w8z8,8.8~8L6F170D9o1{6@0o9M120Q0Z4K8:8=707$8E8*9r1D0s8|0u9H387l7R6@0i7j9+8^178-1C9*8d7N040H9E9i9I6u170b997~6{8o7+7-9Q6|048`9%8}8Ca55T5}7ya05!8K9y7R87040u260Z9val128faw7S8Z8H5S7R6G8)7E7{0A2W9V7!4p9Y9b7*8qaa9417010k0s0u7Gaa6@0%aa8+6CaJav7}9Za68G7z85azaq1e0j9u9Daz8uaC7vaF9;9!ac9)0Z1oaLa4a-ai9haC9,3C9S174}b06{6@028|0va%9rb3b5aG7h17bk0+0v9:3obc3(a|7?7aa=8A7fbr9-170waabe4ebg9`aE17aM4x9Yah7:aBbC047^ao7`7d7pbGbhbs049/bnb22Z9XbUaP8pa9bH3C0O5*040T0n1Cb77%a.046p6o8:bS3LbUb87Ra7aRb_3(b{170p3Fc64!0w5Q5L1O5x0w5z1F0+5Bcu2,2(26282*as1@2%5z1LaD3C2W0Q0*0h0u0O0g0*0P0q171x1z1B1D0Kc82%1V1Q040#cY2+7p0{5K9S0I8`0K0Q0c2d5F0{6jco046b6d0+6fcn5F040U5`c|0f7IcQ7Lc|0K0?d6d3d889cQ8b1Fc|0D0K2?0K350c6o0j0+2t0+dq0 0K2T1X0h2r0.aeds0$0K0k1p31dv9s0|0g0F2t0f2jdx0z001m0_0Z0Ybp2S1^dW1f0G1cdwdf5R7=d25R0K1B0Zdq0g3hde0f002 1XcX0nd?1CdP211^c?c^2T0Y000u0F0F1,cX0K0C0KdW0J0A0rde5E0j0.d`0j0cdye2d)ee6pdI0#3*0{2TdWdY1,d#2RdA1^es0{e88R0=0{1o0K6~ep1^2i9s0Q0I2+1^0Rd.5L8Qau0j0$dh7J6C0d9Ld;5Lewdd0m1yef0gd52tdddDde0_dd0Ydx2i10ev0u0S2Xe)04e+5.e@bZ1O3p1Mc)0{c+d!0K0u1mc;ePc_0Kc{d38P8R8T0z8Vfid55Pd3as7pavdcdefH5Ra@a_fidn5KdidueL0s0mfr0nd+2Fdu0{e(fO5Ld:dc0deHd!evdr2r0m0cdnde0s1peY1se#2Wei0K9d8q0Ze22Nf6f@ev0zeDeLekecez0z7^c$1M0M2j0{1@0|dzeF0uc=c@eQ1^f+8O9tfLd3d5eT0S0c0n0Z2r1^ehgy9sb:dceJd!cN2QekcYeq1X2R0{ejd)6M1^d}f|0Kdvf6fegI0K0)1qbl0KgNb41pbubw0K7V0$8b0K0w3l0)6Uc|dI0L0zg|d`0^dxfs10d^g82P1?g%dX14eId`0Kg)2MgG9)0g7,fe2j0fdld3cZg-0hg/g;bvg?d$fr0j2/g@eTg`0:h96qg~b(0{h14fh4d3gjfl04dKdq8S2Vhbdd7F2 hohld!hnf|1^1`d`eKgyh?0ndxg:g`hGeKhNhP0hhR7qh0h2hW5RdI0T8Sdv9dd!d5ese6g30u0yeT2T350J0.0c0=e20G0c0jc:hagTh;dd2Vhte22PekgtgW2Qg^do001Df7dz8`dR2Y0c0geBhkdZgQim0sg*iN2A0ZehdRd{dx2Tiu2Wg70n0c0.f;f%dVcY0=fYgqeE1^2rd+g1d|1^2W0j0S0J0(hngycj0`gBd=f00.gr00i=0Pfd0fi!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):
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)