Besoin d'aide en PYTHON

Nlncf
2022-06-03 22:37:35

def recherche(caractere, mot):
compteur = 0
for i in range(len(mot)):
if i == caractere :
compteur = compteur + 1
return compteur

print(recherche('e', "sciences"))

Je souhaite créer un programme qui permet de rechercher combien il y a une lettre dans un mot, par exemple la lettre "e" dans le mot "sciences" sauf que dans ma console, ça affiche 0 et je vois pas d'erreur dans mon code pourtant :(

eotyrs
2022-06-03 22:38:29

Essaye for i in mot

Nlncf
2022-06-03 22:39:13

Le 03 juin 2022 à 22:38:29 :
Essaye for i in mot

Oh bordel, c'était ça cimer :hap:

OuestBrick
2022-06-03 22:40:02

def recherche(caractere, mot):
compteur = 0
for i in range(len(mot)):
if mot[i] == caractere :
compteur += 1
return compteur

De rien

eotyrs
2022-06-03 22:40:07

De rien khey :ok:

Ave-Atomus
2022-06-03 22:40:50

L'erreur c'est qu'en faisant for i in range(len(mot)) i prend la valeur 0 puis 1, puis 2 ... jusqu'à len(mot)-1
Et donc i ne prend pas la valeur de chaque caractère.

Soit tu fais comme mon VDD a dit "for i in mot"
Soit tu remplaces if i == caractere par
if mot[i] == caractere

Nlncf
2022-06-03 22:41:46

Le 03 juin 2022 à 22:40:50 :
L'erreur c'est qu'en faisant for i in range(len(mot)) i prend la valeur 0 puis 1, puis 2 ... jusqu'à len(mot)-1
Et donc i ne prend pas la valeur de chaque caractère.

Soit tu fais comme mon VDD a dit "for i in mot"
Soit tu remplaces if i == caractere par
if mot[i] == caractere

ok :ok:

OuestBrick
2022-06-03 22:42:15

Le 03 juin 2022 à 22:40:02 :
def recherche(caractere, mot):
compteur = 0
for i in range(len(mot)):
if mot[i] == caractere :
compteur += 1
return compteur

De rien

Évite de mettre aussi len(mot) dans le range, c'est horrible niveau optimisation :hap:

Nlncf
2022-06-03 22:42:17

est-ce que des quilles peuvent rester svp ? je suis entrain de faire d'autres codes donc si vous pourriez me dire si j'ai correct ou pas :hap:

Nlncf
2022-06-03 22:42:38

Le 03 juin 2022 à 22:42:15 :

Le 03 juin 2022 à 22:40:02 :
def recherche(caractere, mot):
compteur = 0
for i in range(len(mot)):
if mot[i] == caractere :
compteur += 1
return compteur

De rien

Évite de mettre aussi len(mot) dans le range, c'est horrible niveau optimisation :hap:

ok

OuestBrick
2022-06-03 22:42:58

Le 03 juin 2022 à 22:42:17 :
est-ce que des quilles peuvent rester svp ? je suis entrain de faire d'autres codes donc si vous pourriez me dire si j'ai correct ou pas :hap:

Vas-y :hap:

Junto4242
2022-06-03 22:45:12

from collections import Counter

def recherche(caractere, mot):
return Counter(mot)[caractere]

qid
2022-06-03 22:45:52

une fonction existe déjà mais sinon
def recherche(caractere, mot):
return len([c for c in mot if c == caractere])

CoroneurentMFP
2022-06-03 22:45:53

[22:45:12] <junto4242>
<code>from collections import Counter

def recherche(caractere, mot):
return Counter(mot)[caractere]</code>

Ceci

Charlies_lost
2022-06-03 22:47:57

def count(word, letter):
return sum(l == letter for l in word)

Nlncf
2022-06-03 22:48:13

Bon mtn je dois créer une fonction qui calcule la moyenne avec des notes qui ont des coefs

bon je pense que c'est pas ça mais :

def moyenne(liste):
coef = len(liste)
m = []
m = sum(liste[0] * liste[1])
m = m/coef
return m

(ne me donnez pas la réponse mais juste de l'aide svp :hap:)

Charlies_lost
2022-06-03 22:49:00

Le 03 juin 2022 à 22:45:52 :
une fonction existe déjà mais sinon
def recherche(caractere, mot):
return len([c for c in mot if c == caractere])

Tu crées un tableau intermédiaire qui est inutile.

Nlncf
2022-06-03 22:49:54

j'ai mis = sum(liste[0] * liste[1])

pour que le programme comprend de faire la somme de l'indice 0 multiplié l'indice 1 genre (10x4) + (20x2) + (8x2)

je sais pas si c'est ça :(

freetheatome22
2022-06-03 22:49:58

Hésite pas à utiliser des print de partout pendant tes débug

La typiquement si tu avait fait un print(i) dans ta boucle tu aurait vu que ça donnait les nombre et pas les lettres du mot

qid
2022-06-03 22:50:02

Le 03 juin 2022 à 22:49:00 Charlies_lost a écrit :

Le 03 juin 2022 à 22:45:52 :
une fonction existe déjà mais sinon
def recherche(caractere, mot):
return len([c for c in mot if c == caractere])

Tu crées un tableau intermédiaire qui est inutile.

len() ne peut pas renvoyer le nombre d'éléments d'un generator :(

Infos
Gestion du forum

contact@geevey.com

API disponible. Utilisez le paramètre "api" en GET, peu importe le contenu, sur une page du site.

Notes

    Partenaire: JVFlux
    Ce site n'est pas associé à Jeuxvideo.com ou Webedia. Nous utilisons seulement des archives publiques.
    Il est inutile de me spammer par e-mail pour supprimer un topic. Au contraire, en conséquence, je mettrais votre topic dans le bloc ci-dessous.
Non-assumage
    Personne n'a pas assumé de topic pour le moment.