[PYTHON] 100 coups de traitement du langage amateur: 09

C'est un record de défi de 100 langues de traitement knock 2015. L'environnement est Ubuntu 16.04 LTS + Python 3.5.2 : : Anaconda 4.1.1 (64 bits). Cliquez ici pour une liste des coups passés (http://qiita.com/segavvy/items/fb50ba8097d59475f760).

Chapitre 1: Mouvement préparatoire

09.Typoglycemia

Créez un programme qui réorganise de manière aléatoire l'ordre des autres caractères, en laissant le premier et le dernier caractère de chaque mot pour la chaîne de mots séparés par des espaces. Cependant, les mots d'une longueur de 4 ou moins ne sont pas réorganisés. Donnez une phrase en anglais appropriée (par exemple, "Je ne pouvais pas croire que je pouvais réellement comprendre ce que je lisais: le pouvoir phénoménal de l'esprit humain.") Et vérifiez le résultat de l'exécution.

Le code fini:

main.py


# coding: utf-8
import random


def Typoglycemia(target):
	'''Typogrisémie
Pour les chaînes de mots séparées par des espaces, laissez la première et la dernière lettre de chaque mot,
Réorganisez au hasard l'ordre des autres caractères.
Cependant, les mots d'une longueur de 4 ou moins ne sont pas réorganisés.

argument:
	target --Chaîne de caractères cible
Valeur de retour:
Chaîne convertie
	'''
	result = []
	for word in target.split(' '):
		if len(word) <= 4:
			result.append(word)
		else:
			chr_list = list(word[1:-1])
			random.shuffle(chr_list)
			result.append(word[0] + ''.join(chr_list) + word[-1])

	return ' '.join(result)

#Entrée de la chaîne de caractères cible
target = input('Veuillez saisir une chaîne--> ')

#Typogrisémie
result = Typoglycemia(target)
print('Résultat de la conversion:' + result)

Résultat de l'exécution:

Terminal


Veuillez saisir une chaîne--> I couldn't believe that I could actually understand what I was reading : the phenomenal power of the human mind .
Résultat de la conversion:I c'udnlot bievele that I colud aclautly utaedsrnnd what I was rainedg : the penomaenhl power of the human mind .

Logique de génération aléatoire

J'ai utilisé random.shuffle () pour le tri aléatoire. Cette fonction peut également spécifier une fonction de génération de nombres aléatoires à utiliser pour le tri, mais comme elle est omise cette fois, [random.random ()](http://docs.python.jp/3/library /random.html#random.random) est utilisé. La logique de génération dans ce cas est [Mersenne Twister](https://ja.wikipedia.org/wiki/Mersenne Twister). Je suis heureux que d'excellents nombres aléatoires soient générés par défaut.

Il y a aussi un avertissement dans Explication of random module, mais comme les nombres aléatoires générés par cette logique peuvent être prédits, Il est dangereux de l'utiliser tel quel à des fins de cryptage. S'il vous plaît soyez prudente.

Typogrisémie

Le phénomène appelé typoglycémie, qui est faux mais lisible, est assez intéressant. Cependant, le problème est que si vous n'êtes pas bon en anglais, vous ne pouvez le lire que même si l'orthographe est correcte ...

C'est pourquoi je l'ai également essayé en japonais. Dans le cas du japonais, il est correct de réorganiser même 4 caractères, c'est donc une version qui a changé «longueur 4 ou moins» en «longueur 3 ou moins».

Le code fini:

main2.py


# coding: utf-8
import random


def Typoglycemia(target):
	'''Typo Grisemia [version japonaise]
Pour les chaînes de mots séparées par des espaces, laissez la première et la dernière lettre de chaque mot,
Réorganisez au hasard l'ordre des autres caractères.
Cependant, les mots d'une longueur de 3 ou moins ne sont pas réorganisés.

argument:
	target --Chaîne de caractères cible
Valeur de retour:
Chaîne convertie
	'''
	result = []
	for word in target.split(' '):
		if len(word) <= 3:
			result.append(word)
		else:
			chr_list = list(word[1:-1])
			random.shuffle(chr_list)
			result.append(word[0] + ''.join(chr_list) + word[-1])

	return ' '.join(result)

#Entrée de la chaîne de caractères cible
target = input('Veuillez saisir une chaîne--> ')

#Typogrisémie
result = Typoglycemia(target)
print('Résultat de la conversion:' + result)

Résultat de l'exécution:

Terminal


Veuillez saisir une chaîne-->J'ai commencé le Saikin Paison Benkyo, mais c'est assez intéressant, n'est-ce pas?
Résultat de la conversion:Benkyo de Watashihasakiin Paison et d'autres choses sont assez intéressantes, n'est-ce pas?

Dans le cas du japonais, je dois mettre un espace dans le hiragana, mais c'est devenu compréhensible d'une manière ou d'une autre.

C'est le Nokku de Jinpoume. Je suis content que tu puisses le faire si tu n'aimes pas ça ^^

Recommended Posts

100 coups de traitement du langage amateur: 17
100 coups de langue amateur: 07
100 coups de traitement du langage amateur: 09
100 coups en traitement du langage amateur: 47
100 coups de traitement du langage amateur: 97
100 coups de traitement du langage amateur: 67
100 coups de traitement du langage amateur: Résumé
100 coups de traitement linguistique (2020): 38
100 traitement de la langue frapper 00 ~ 02
100 coups de traitement du langage amateur: 41
100 coups de traitement du langage amateur: 71
100 traitements linguistiques Knock 2020 [00 ~ 39 réponse]
100 coups de traitement du langage amateur: 56
100 coups de traitement du langage amateur: 24
100 coups de traitement du langage amateur: 50
100 langues de traitement knock 2020 [00-79 réponse]
100 traitements linguistiques Knock 2020 [00 ~ 69 réponse]
100 coups de traitement du langage amateur: 59
100 coups de traitement du langage amateur: 62
100 coups de traitement du langage amateur: 60
100 Language Processing Knock 2020 Chapitre 1
100 coups de traitement du langage amateur: 92
100 coups de langue amateur: 30
100 coups de langue amateur: 06
100 coups de traitement du langage amateur: 84
100 traitements linguistiques Knock 2020 [00 ~ 49 réponse]
100 coups de traitement du langage amateur: 81
100 coups de langue amateur: 33
100 coups de traitement du langage amateur: 46
100 coups de traitement du langage amateur: 88
100 coups de traitement du langage amateur: 89
100 coups de traitement du langage amateur: 40
100 coups de traitement du langage amateur: 45
100 Traitement du langage Knock-52: Stemming
100 coups de traitement du langage amateur: 22
100 coups de traitement du langage amateur: 61
100 coups de traitement du langage amateur: 94
100 coups de traitement du langage amateur: 54
100 coups de langue amateur: 04
100 Traitement du langage Knock Chapitre 1
100 coups de traitement du langage amateur: 78
100 coups de traitement du langage amateur: 12
100 coups de traitement du langage amateur: 14
100 coups de traitement du langage amateur: 42
100 coups de traitement du langage amateur: 19
100 coups de traitement du langage amateur: 98
100 coups de traitement du langage amateur: 83
100 coups de traitement du langage amateur: 95
100 coups de traitement du langage amateur: 32
100 coups de traitement du langage amateur: 96
100 coups de traitement du langage amateur: 87
100 coups de traitement du langage amateur: 72
100 coups de traitement du langage amateur: 79
100 coups de traitement du langage amateur: 23
100 coups de langue amateur: 05
100 coups de langue amateur: 00
100 coups de langue amateur: 02
100 coups de traitement du langage amateur: 37
100 coups de traitement du langage amateur: 21
100 coups de traitement du langage amateur: 68
100 coups de traitement du langage amateur: 11