Nos dan una oración en inglés (también puede contener dígitos), necesitamos calcular e imprimir la suma de los valores ASCII de los caracteres de cada palabra en esa oración.
Ejemplos:
Input : GeeksforGeeks, a computer science portal for geeks Output : Sentence representation as sum of ASCII each character in a word: 1361 97 879 730 658 327 527 Total sum -> 4579 Here, [GeeksforGeeks, ] -> 1361, [a] -> 97, [computer] -> 879, [science] -> 730 [portal] -> 658, [for] -> 327, [geeks] -> 527 Input : I am a geek Output : Sum of ASCII values: 73 206 97 412 Total sum -> 788
Este problema tiene una solución existente, consulte Sumas de valores ASCII de cada palabra en un enlace de oración. Resolveremos este problema rápidamente en python usando la función map() y las estructuras de datos del diccionario . El enfoque es simple,
- Primero divida todas las palabras de la oración separadas por espacios.
- Cree un diccionario vacío que contendrá la palabra como clave y la suma de los valores ASCII de sus caracteres como valor.
- Ahora recorra la lista de palabras divididas y para cada palabra mapee la función ord(chr) en cada carácter de la palabra actual y luego calcule la suma de los valores ASCII de cada carácter de la palabra actual.
- Mientras recorre cada mapa de palabras, suma los valores ASCII de su palabra correspondiente en el diccionario resultante creado anteriormente.
- Recorra la lista dividida de palabras e imprima su valor ascii correspondiente buscando en el diccionario resultante.
Python3
# Function to find sums of ASCII values of each # word in a sentence in def asciiSums(sentence): # split words separated by space words = sentence.split( ' ' ) # create empty dictionary result = {} # calculate sum of ascii values of each word for word in words: currentSum = sum ( map ( ord ,word)) # map sum and word into resultant dictionary result[word] = currentSum totalSum = 0 # iterate list of splited words in order to print # sum of ascii values of each word sequentially sumsOfAscii = [result[word] for word in words] print ( 'Sum of ASCII values:' ) print ( ' ' .join( map ( str ,sumsOfAscii))) print ( 'Total Sum -> ' , sum (sumsOfAscii)) # Driver program if __name__ = = "__main__" : sentence = 'I am a geek' asciiSums(sentence) |
Producción:
Sum of ASCII values: 1361 97 879 730 658 327 527 Total sum -> 4579
Publicación traducida automáticamente
Artículo escrito por Shashank Mishra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA