Python - Contar caracteres

 
Vista:
sin imagen de perfil
Val: 43
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Contar caracteres

Publicado por El turco (17 intervenciones) el 27/02/2019 17:32:31
El problema que tengo es que no me reconoce cuantas veces se repite el carácter en la cadena.

Se le debe solicitar al usuario el ingreso de 5 cadenas de caracteres, las cuales deben ser almacenadas en distintos elementos de un diccionario. La clave para cada uno de esos elementos es el orden de ingreso.
Luego se le debe solicitar al usuario el ingreso de un carácter cualquiera, y la aplicación debe contar cuantas veces se repite ese carácter en cada cadena y guardar el resultado en un archivo de disco llamado “result.txt”. El formato para cada línea del archivo y habiendo elegido el carácter “a” para contar es el siguiente:
1 => palabra: 3
2 => jueves:0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def contar (cadena, caracter) :
    cantidad=0
    for i in cadena:
        if i ==caracter:
            cantidad=cantidad+1
            return cantidad
 
d={ }
for i in range (1,6) :
    d [ i ] =input("Ingrese cadena: ")
 
caracter=input("Ingrese caracter: ")
f=open("result.txt","w")
 
for k , v in d.items() :
    c=contar(v,caracter)
    f.write(str(k) + " => " + v + ":" + str(c) +  "\n")
 
f.close()
print (d)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Contar caracteres

Publicado por tincopasan (1082 intervenciones) el 27/02/2019 18:59:44
es que está mal el espaciado del retorno,debería estar en la misma línea que el for, no donde está, que corresponde al if, apenas encuentra una coincidencia termina la función.
otra cosa:
1
cantidad=cantidad+1
si bien no está mal y funciona, una mejor forma en pyhon es:
1
cantidad+=1
o sea todo así
1
2
3
4
5
6
def contar (cadena, caracter) :
    cantidad=0
    for i in cadena:
        if i ==caracter:
            cantidad+=1
    return cantidad
:
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar