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
.
.1280135q/(+0L=._a1ki o4m2:fedw,y]-cIrCvpTsO3[D*nPg)ulF;jSétx9àçRbèh867050x0w0#0l0o0V0K0p0D0V0l0K0K0i010#0o0I010406050K0U0s0s0l0F0A040Z0q0V0U140q0Q0p020l0s0I0X0p0*0w1e0F0c0U0w0K050d1b1d1f1h190I04051M1F1P0d1M190x0o0H0|0~10120-0o0S0-0V1%0-0#17050@0+0V0w1Y0 11011$1(1*1(0#1:1=1.0#0F1N0#0-0|1k0K0I0l0Q120t011@1!010v0_0w0Q1s0w1.2a2c2h1_2k1=2n0s2p040a0p0R0F0q0I0q0K0o1n1p0=280F0F0w0D2K1F2r0Q1N0d262W2325241/0x2t121*0Q2m2H1.1V1X0}1^2*0o2,0Q0q2:1.0I2P1N2U2W311a2b1p2=2i2`0F1e0V170p0m2T3518342s371_393b3d0t3g2c3i2U2)013n0l3c040p0M3r2V193u3l123x3z0p0r3D3t353v3J3d0b3N3F3P3H3w0q3a3y3d0/3U3j361Z3m3Z3o3A0:3(3G3+3I3-3#3A0.3;3W3?3Y3!3K0%3|3k3~3R040m0g433*2?3 3.0m3f1G3h3V444c460m3q4h3s4j4b383^3z0m3C4p3E3)3Q4u170m3M4y3O4k4t404D3T4G4r4B4K473%4N4A3X4m3:4T3=4l4C473{4Y3}4!4Q0m424(4I3,4Q0t494.4s4:3.0t4g314O4V4#0t4o4}4U45504x534Z4J4`4F584)5a3_0t4M5d4/3@4;4S331S2 1F2:2Z0x252(3X0D2{2z0;1W1N2~0w303h3N055y0=5G5k010n173l5I591_0y3d5S5e3m0D170G1$2m5X5N16040u3U0p5/0p544c5P040=0v5)4^125V3A5{3v0v0s170k0k2^2J65603X5+0e6a3~0+5+0K0w0V5`4G5=2i5+0z3N5;5T3I172`0s6e4c6p6r6n3m172G0o0x1E6m6t015+0T5-4N5:6Q6s5Y126g176i6k6y2i0q170j6Z6D046w6B6K6#040i6,6T3w6v0q6x6P6R5/6C6U6h6j6l336-6$6(6u046F6H6;5N6.6:4G6S5N0Q6E0q6G6I4}066Q6}5O175_75015~5;6J6=0Q0v7r1o2,0k6+7x5*176d7G5|016V046X715H6K6M6O4}6{6|6K5@2P0#0U0F0Q7a7L7N7P7t6.6%7K3Q6@6_7m7o7Y7r0w7Q3s7p7v7t7z7B0Q7D787l7R6=6c7t7+707t7T5.7W7p7Z0?7$7(7e7p8b6Y7:3X7.807i7k3U7n5:8h7`7|2V7~5W8q457A041e0D0-0q0U0_1=8d7I8a6 8p7288176q8m6K7h040Y8M0?8Q046N8f6{7p8#2P1b0V0@0#7)3v7c8_3X0K2f04021B0q0#0X910U930X8-6R8z040v3Z8|45170o9g4c0q5~2^9k380+170F2c0S0w8*7J8V7g9r042w9x8t8$8(8^8F6z170T9p1_6.0C9N120s0o4D8*8,6`7W8y8!9s1D0U8?0l9I317f7L6.0f7d9,8/178%1C9+877H040N9F9j9J6o170B9a7^6=8i7#7%9R6?048;9(8@8wa65N5@7sa15U8E9z7L81040l0+7j9wam1289ax7M8T8B5M7L6A8Z7y7=0+2P9W7U4i9Z9c7!8kab8~1796980L0U0l0vaW94ab6.0Pab8#6waKaw7@9!a78A7t7 aAar1e0Q9v9EaA8oaD7paG9=9#ad9*0o1oaMa5a;aj9iaD9-3v9T174?b46=6.028?99aH7g9sb7b9br9.aVbp9;3hbg3Xb07-74a_8u79bw8`170dabbi47bk9{aF17aN4q9Zai7*aCbF047/ap7;777jbJbl7b179:a+bt2S9YbXaQ8jaabK3X0n5!040J0F1Cbb7Xa=046j6i8*bV3EbXbc7La8aSb|3~b~170W3yc94T0d5K5F1Q5q0d5s1F0#5ucx2$2Xat1=2W5s1LaE3v2P0s0k0v0l0n0w0k0-0M171x1z1B1D0pcb2W1T1O040hcY237j0{5E9T0,8;0p0s0!265z0{6dcr0465670#69cq5z040z5;c|0x7CcQ7Fc|0p0?d6d3d883cQ851Fc|0T0p2,0p2~0!6i0Q0#2m0#dq0 0p2M1V0v2k0Dafds0j0p0L1p2`dv9t0|0w0I2m0x2cdx0V001m0_0o0Kbu2L1?dW1f0S1cdwdf5L7,d25L0p1B0odq0w3ade0x002^1VcX0Fd?1CdP1 1?c?c^2M0K000l0I0I1*cX0p0(0pdW0q0+0Yde5y0Q0Dd`0Q0!dye2d)ee6jdI0h3Z0{2MdWdY1*d#2KdA1?es0{e88L0=0{1o0p6^ep1?2b9t0s0,231?0ud.5F8K0o2m0jdh7D6w0e9Md;5Fewdd0$1yef0wd52mdddDde0_dd0Kdx2b10ev0l0H2Qe)04e+5(e@b$1Q3i1Mc)0{c+d!0p0l1mc;ePc_0pc{d38J8L8N0V8Pfid55Jd3atavdld3dddxfH5La{a}fidn5EdidueL0U0$fr0Fd+2ydu0{e(fP5Fd:dc0eeHd!evdr2k0$0!dnde0U1peY1se#2Pei0p9e8k0oe22Gf6f^ev0VeDeLekecez0V7/c$1M0O2c0{1=0|dzeF0lc=c@eQ1?f,8I9uawc|d5eT0H0!0F0o2k1?ehgz9tb?dceJd!cN2JekcYeq1V2K0{ejd)6G1?d}f}0pdvf6fegJ0p0g1qbp0pgOb81pbo940i0p7P0j850p0d3e0g6Oc|dI0E0Vg~d`0^dxfs10d^g92I1;g(dX14eId`0pg*2FgH9*0w7$fe2c0xfLd=f+c|g/g;g{1vg^eThyg@d$g=g|hb6kh0b+0{h348h6d3gkfl04dKdq8M2Ohddd7z2^hqhnd!hpf}1?1^d`eKgzh?0FdxhFg?hIg`bzhP0vhR7kh2h4hW5LdI0J8Mdv9ed!d5ese6g40l0)eT2M2~0q0D0!0=e20S0!0Qc:hcgUh;dd2Ohve22IekgugX2Jg_do001Df7dz8;dR2R0!0weBhmdZgRim0Ug+iN2t0oehdRd{dx2Miu2Pg80F0!0Df=f(dVcY0=fZgreE1?2kd+g2d|1?2P0Q0H0q0Ahpgzcm0`gCfMf00Dgs00i=0-fd0xi!g,0#hY19cv0?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)