Nombre de caractères consécutifs

Dans une phrase !!! écrite !!! certains utilisateurs abusent des points d'exclamations !! Ce pour différentes raisons ! Bref.

Écrire une fonction nb_max_consecutifs qui prend un caractère motif (une chaine de caractères de longueur 1), et une chaine de caractères phrase à analyser. La fonction renvoie le nombre maximal d'occurrences consécutives de motif dans phrase.

Exemples
>>> phrase = "Dans une phrase !!! écrite !!! certains utilisateurs abusent des points d'exclamations !! Ce pour différentes raisons ! Bref."
>>> nb_max_consecutifs("!", phrase)
3
🐍 Console Python
>>> phrase = "Un mot    puis        un        autre avec espaces."
>>> nb_max_consecutifs(" ", phrase)
8
🐍 Console Python
>>> expression = "((2 * x + 3) / (x + 1))"
>>> nb_max_consecutifs("(", expression)
2
>>> nb_max_consecutifs("-", expression)
0
###(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
.128013s3Oo_;8èbcdufvg/0lyàq n7apS.r1meh,(P2=4:+jtwzki95Rx)é6050l0G0R0z0V0s0b0w0k0s0z0b0b0M010R0V0A010406050b0m0F0F0z0D0t040B0e0s0m0`0e0x0w020z0F0A0g0w0Y0G140D0v0m0G0b050q111315170 0A041v1C051F0q1F1H1C0 0l0V0o0/0;0?0^0H0V0p0H0s1V0H0R0}050*0j0s0G1Q0=0@011U1W1Y1W0R1(1*1$0R0j0e0l171%0D1D0R0H0/1a0b0A0z0x0^0L011,1S010n0,0G0x1i0G1$27292e1.2h1*2k0F2m040a0w0K0D0e0A0e0b0V1d1f0(250D0D0G0k2H1v2o0x1D0q232T0R2120220l2q0^1Y0x2j2E1$1N1P0:1-2%0V2)0x1}1O1$0A2M1D2R2T2~10281f2/2f2@0D140s0}0w0E2Q320~312p341.36383a0L3d293f2R2$013k0z39040w0c3o2S0 3r3i0^3u3w0w0N3A3q323s3G3a0X3K3C3M3E3t0e373v3a0$3R3g331R3j3W3l3x0y3#3D3(3F3*3Y3x0h3.3T3:3V3X3H0W3_3h3{3O040E0r403%2:3|3+0E3c1w3e1E2|1v2-2W0l2!3s0k1}2w0%1O1D2{0G2}4f4e3p054o0(4w41490U0}0(0n3K3$3s0S3a4K3/490x0n0}0x0j0f140Z0f4o0x0b2N1c0V0n1u4y2S4L3U0|040J4P3`4R0}0F0e0`4J4-4D482f4;0I3K0w4/420}0A0H0D0=0G4@4E520}0!0O3R0w5m564Q354U4W4Y5557490e0}0M5u5p1.0F0V0}464 065n5o4^5q044V4!0e0m5c0x0R5A5L1.5x045z4 5K5g5C5E045G2~5I5n5v2f4G040n3W5V5%3F0}0k150z2O0G2M5^515X4N042=623N595b5d5f630^4;5k5H5J5J5/1.5;4*683U0x5{5}5 615#6l0^5Y0M5!2~5$6e3t4`4|6o4 6x016g5l6j6O6K6r5N4W4o5R295U6w5B6y0}0P6B3e6D3s5D0}4d5,6O6P6Z016n4~6C6Q5r5P6V5T6p3{5Y020p0R0g6~4_6S4X0z0Z6d3s6M6i6/7f6_775t6Y5W6!5Z755M5O6U5S6X6.6/6K5;0G0-5e6J6;7d7u7f5m7h7q5Q7s7o5X5y7L0^6+5*6N7G6;5;2M0R5R0x7O6F7i793#0q4B4v4g7+0q4j1v0R4l7:2Y2U1|1~2W0z1)7-4j1B503s2M0F0f0n0z0U0G0f0H0c0}1n1p1r1t0w6h301I3f0m0s3f1Y040d1f2=2G0V3v0V4%0w1*0w2@0F0j2M0w0l000e0k0k5R2M0x0k8h4Y0V380w0+4$0V0w8g8A1+7r6W0I0w0R5Q0.0(0m0Z0w0u0w0T0#2B0C1v8q0 8q8s0w862G0w0m2)0w1|0m0:0G8)0b290.0z0o0e0V0D961t9h2I1+0s002=1N8Q548n8p0V042F8#0/6t0R0i8G4o2L1t2D0x2#0z0m0w4{4}8)1e0w2=0k0D0#2v5T9o8$0e1j0R0G5R256|0R8)0)0w9S2v0R8;0w0Q7J0w9z0x0#8Q0?0+8G8B8S0F120w2{0e0o8y9h2M540q8|058q2F2@1f9S839/8B4o9%9)9j8%5T9@5Gag0q9v0 af9xaBaA4i0)0+0-04.