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.
.128013s3_8èufvIy n7aS1me(P24C:jtwi]D[çh*)6Oo;bcdg/T0làqp.rFL-,=+k95Rxé050Q0s0A0o0C0V0b0l0P0V0o0b0b0)010A0C0Y010406050b0g0r0r0o0!0k040p0M0V0g140M0m0l020o0r0Y0N0l0.0s1e0!0X0g0s0b050S1b1d1f1h190Y041F1M051P0S1P1R1M190Q0C0i0|0~10120H0C0R0H0V1)0H0A17050@0O0V0s1!0 11011(1*1,1*0A1=1@1:0A0O0M0Q1h1;0!1N0A0H0|1k0b0Y0o0m120v011_1$010h0_0s0m1s0s1:2h2j2o1{2r1@2u0r2w040a0l0u0!0M0Y0M0b0C1n1p0=2f0!0!0s0P2R1F2y0m1N0S2d2%0A2b2a2c0Q2A121,0m2t2O1:1X1Z0}1`2;0C2?0m271Y1:0Y2W1N2#2%381a2i1p2|2p310!1e0V170l0q2!3c183b2z3e1{3g3i3k0v3n2j3p2#2:013u0o3j040l0c3y2$193B3s123E3G0l0w3K3A3c3C3Q3k0-3U3M3W3O3D0M3h3F3k0K3#3q3d1#3t3*3v3H0n3/3N3=3P3@3,3H0e3{3%3}3)3+3R0,433r453Y040q0U4a3;2}463^0q3m1G3o3$4b4j4d0q3x4o3z4q4i3f3 3G0q3J4w3L3:3X4B170q3T4F3V4r4A474K3!4N4y4I4R4e3.4U4H3(4t3`4!3|4s4J4e424)444+4X0q494/4P3?4X0v4g4^4z4`3^0v4n384V4$4,0v4v544#4c574E5a4*4Q514M5f4:5h400v4T5k4_3~4{4Z3a1S361F2`2*0Q2.3C0P272G0;1Y1N350s373o3U055E0=5M5r010+173s5O5g1{0B3k5Y5l3t0P170x1(2t5%5T16040y3#0l5^0l5b4j5V040=0h5/4 125#3H613C0h0r170d0d2 2Q6b663(5;0t6g450O5;0b0s0V604N5{2p5;0(3U5`5Z3P17310r6k4j6v6x6t3t172N0C0Q1E6s6z015;0J5?4U5_6W6y5(126m176o6q6E2p0M170Z6)6J046C6H6Q6+040)6=6Z3D6B0M6D6V6X5^6I6!6n6p6r3a6?6,6.6A046L6N6`5T6@6_4N6Y5T0m6K0M6M6O54066W735U175 7b01645`6P6{0m0h7x1o2?0d6;7D5:176j7M62016#046%775N6Q6S6U5471726Q5}2W0A0g0!0m7g7R7T7V7z6@6-7Q3X6}6 7s7u7(7x0s7W3z7v7B7z7F7H0m7J7e7r7X6{6i7z7;767z7Z5@7$7v7)0?7,7.7k7v8h6(7_3(7@867o7q3#7t5_8n80822$845$8w4c7G041e0P0H0M0g0_1@8j7O8g758v788e176w8s6Q7n040z8S0?8W046T8l717v8+2W1b0V0@0A7/3C7i8 3(0b2m0401018?6X8F040h3*924c170C9f4j0M642 9j3f0O170!2j0R0s8:7P8#7m9q042D9w8z8,8.8~8L6F170J9o1{6@0%9M120r0C4K8:8=707$8E8*9r1D0g8|0o9H387l7R6@0*7j9+8^178-1C9*8d7N040F9E9i9I6u170D997~6{8o7+7-9Q6|048`9%8}8Ca55T5}7ya05!8K9y7R87040o260C9val128faw7S8Z8H5S7R6G8)7E7{0O2W9V7!4p9Y9b7*8qaa9417010L0g0o7Gaa6@0Iaa8+6CaJav7}9Za68G7z85azaq1e0m9u9Daz8uaC7vaF9;9!ac9)0C1oaLa4a-ai9haC9,3C9S174}b06{6@028|0Na%9rb3b5aG7h17bk0A0N9:3obc3(a|7?7aa=8A7fbr9-170Saabe4ebg9`aE17aM4x9Yah7:aBbC047^ao7`7d7pbGbhbs049/bnb22Z9XbUaP8pa9bH3C0+5*040T0!1Cb77%a.046p6o8:bS3LbUb87Ra7aRb_3(b{170#3Fc64!0S5Q5L1O5x0S5z1F0A5Bcu2,2(26282*as1@2%5z1LaD3C2W0r0d0h0o0+0s0d0H0c171x1z1B1D0lc82%1V1Q040$cY2+7p0{5K9S0f8`0l0r0:2d5F0{6jco046b6d0A6fcn5F040(5`c|0Q7IcQ7Lc|0l0?d6d3d889cQ8b1Fc|0J0l2?0l350:6o0m0A2t0Adq0 0l2T1X0h2r0Paeds0Z0l0L1p31dv9s0|0s0Y2t0Q2jdx0V001m0_0C0bbp2S1^dW1f0R1cdwdf5R7=d25R0l1B0Cdq0s3hde0Q002 1XcX0!d?1CdP211^c?c^2T0b000o0Y0Y1,cX0l0W0ldW0M0O0zde5E0m0Pd`0m0:dye2d)ee6pdI0$3*0{2TdWdY1,d#2RdA1^es0{e88R0=0{1o0l6~ep1^2i9s0r0f2+1^0yd.5L8Qau0m0Zdh7J6C0t9Ld;5Lewdd0/1yef0sd52tdddDde0_dd0bdx2i10ev0o0i2Xe)04e+5.e@bZ1O3p1Mc)0{c+d!0l0o1mc;ePc_0lc{d38P8R8T0V8Vfid55Pd3as7pavdcdefH5Ra@a_fidn5KdidueL0g0/fr0!d+2Fdu0{e(fO5Ld:dc0teHd!evdr2r0/0:dnde0g1peY1se#2Wei0l9d8q0Ce22Nf6f@ev0VeDeLekecez0V7^c$1M0E2j0{1@0|dzeF0oc=c@eQ1^f+8O9tfLd3d5eT0i0:0!0C2r1^ehgy9sb:dceJd!cN2QekcYeq1X2R0{ejd)6M1^d}f|0ldvf6fegI0l0U1qbl0lgNb41pbubw0l7V0Z8b0l0S3l0U6Uc|dI0j0Vg|d`0^dxfs10d^g82P1?g%dX14eId`0lg)2MgG9)0s7,fe2j0Qdld3cZg-0hg/g;bvg?d$fr0m2/g@eTg`0)h96qg~b(0{h14fh4d3gjfl04dKdq8S2Vhbdd7F2 hohld!hnf|1^1`d`eKgyh?0!dxg:g`hGeKhNhP0hhR7qh0h2hW5RdI0T8Sdv9dd!d5ese6g30o0GeT2T350M0P0:0=e20R0:0mc:hagTh;dd2Vhte22PekgtgW2Qg^do001Df7dz8`dR2Y0:0seBhkdZgQim0gg*iN2A0CehdRd{dx2Tiu2Wg70!0:0Pf;f%dVcY0=fYgqeE1^2rd+g1d|1^2W0m0i0M0khngycj0`gBd=f00Pgr00i=0Hfd0Qi!g+0AhY19cs0?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)