Une personne inexpérimentée en Python essaie de frapper 100 traitement du langage 07-09

C'est une continuation de ceci. Une personne inexpérimentée en Python essaie de frapper 100 traitement du langage 00-04 https://qiita.com/earlgrey914/items/fe1d326880af83d37b22

Une personne inexpérimentée en Python essaie de frapper 100 traitement du langage 05-06 https://qiita.com/earlgrey914/items/e772f1b7e5efea114e1d


07. Génération de déclaration par modèle

Implémentez une fonction qui prend les arguments x, y, z et renvoie la chaîne "y at x is z". De plus, définissez x = 12, y = "température", z = 22,4 et vérifiez le résultat de l'exécution.

e. Qu'est-ce que c'est ça? D'une manière ou d'une autre, c'est devenu si facile à la fois ...?

iinoka.py


x=12
y="Température"
z=22.4

def moziKetsugo(x, y, z):
    print(str(x) + "de temps" + y + "Est" + str(z))

moziKetsugo(x, y, z)
La température à 12 heures est de 22.4

Est-ce correct···? N'est-ce pas trop facile ...? Pensons d'un point de vue légèrement usé. Le problème est que si l'argument est la chaîne "x, y, z", alors "y at x is z" est renvoyé. Si les variables sont x = 12, y = "température", z = 22,4, appliquez les caractères et retournez ** N'est-ce pas un problème de création de fonction? (Si oui, écrivez-le un peu plus clairement) Si oui ... En Java, le traitement a été modifié en fonction de la présence ou de l'absence de l'argument (j'ai oublié ce que c'était), mais je me demande si je devrais faire la même chose.

J'ai cherché sur Google. Il semble y avoir un argument par défaut.
Référence
https://note.nkmk.me/python-argument-default/

Que dis-tu de ça.

enshu07.py


x=12
y="Température"
z=22.4

def moziKetsugo(x="x", y="y", z="z"):
    print(str(x) + "de temps" + y + "Est" + str(z))

#Sortie juste
moziKetsugo()

#Sortie avec arguments
moziKetsugo(x, y, z)
y à x est z
La température à 12 heures est de 22.4

Eh bien, je ne comprends pas l'intention de la question, alors faites-moi savoir si quelqu'un peut la comprendre. Je me demande si ça va parce que c'est si facile ...

08. Cryptographie

Implémentez le chiffrement de fonction qui convertit chaque caractère de la chaîne de caractères donnée selon les spécifications suivantes.

** ・ Remplacer par (219 --character code) caractères si les lettres minuscules ・ Les autres caractères sont affichés tels quels Utilisez cette fonction pour crypter / décrypter les messages en anglais. ** **

(J'ai utilisé l'énoncé du problème comme titre, mais je suis désolé de ne pas savoir comment casser l'en-tête, donc c'était étrange.)

chiffre, high high ... chi, chi p ha (TOEIC340)

Eh bien, écrivez la composition pour le moment. J'aimerais que vous écriviez autant qu'une phrase simple comme exemple dans la phrase problématique (Punpun

punpun.py



genbun = "the magic words are squeamish ossifrage To know is to know that you know nothing That is the true meaning of knowledge"

def cipher(s):
    if s ==Alphabet:
        (219 -Code de caractère)Remplacer par le personnage
return Chaîne de caractères après le cryptage
    else:
retourne la sortie telle quelle

#chiffrement
angobun = cipher(genbun))
print(angobun)

#Décryptage
fukugobun = decryption(genbun)
print(fukugobun)

Donc, je me demande comment faire la conversion de code de caractère. En quoi le code est-il converti? Est-ce que UTF-8 est correct? Avec UTF-8, la partie «code à 219 caractères» ne peut pas être implémentée ...?

Lorsque j'ai été recherché sur Google, il semble que python ait une fonction ʻord () `** qui renvoie un entier appelé un point de code Unicode de ** caractères. Vous pouvez peut-être l'utiliser. C'est hostile! !! !! (Punpun

Essaie.

tameshi.py


print("a")
print(ord("a"))
a
97

Hmm je vois. Est «un» 97 »? Alors qu'en est-il de la chaîne de caractères?

moziha.py


print("abc")
print(ord("abc"))
abc
Traceback (most recent call last):
  File "/home/ec2-user/knock/enshu08.py", line 2, in <module>
    print(ord("abc"))
TypeError: ord() expected a character, but string of length 3 found

Je vois. ** Passez un caractère à la fois à ʻord () `**. D'ACCORD.

Écrivons d'abord cette instruction if.

if.py


if s ==Alphabet:

Il semble qu'il existe une fonction pour le mal si vous recherchez sur Google "jugement de l'alphabet python".

Déterminez s'il est inférieur (est inférieur) Déterminé à être alphanumérique (isalnum) Juger s'il s'agit d'un caractère alphabétique (isalpha)


URL de référence
https://hibiki-press.tech/learn_prog/python/isupper-islower/3728#islower

J'ai pu le chiffrer

dekitayo.py


genbun = "aBc0"

def cipher(s):
    kaesubun = ""
    
    for i in s:
        #Juger si c'est alphabétique et minuscule
        if i.isalpha() and i.islower():
            kaesubun = kaesubun + chr(219-ord(i))
        else:
            kaesubun = kaesubun + i
    return kaesubun

angobun = cipher(genbun)
print(angobun)
zBx0

J'ai oublié de l'écrire ci-dessus, mais il semble que vous puissiez convertir les caractères ** en points de code Unicode avec ʻord () ʻ et vice versa avecchr (). ** ** Et maintenant j'écris for i in s: régulièrement, mais dans cette notation [Practice 03](https://qiita.com/earlgrey914/items/fe1d326880af83d37b22#%E3%83%91%E3% 83% 88% E3% 82% AB% E3% 83% BC% E3% 82% BF% E3% 82% AF% E3% 82% B7% E3% 83% BC% E3% 81% AE% E6% 96% 87% E5% AD% 97% E3% 82% 92% E5% 85% 88% E9% A0% AD% E3% 81% 8B% E3% 82% 89% E4% BA% A4% E4% BA% 92% E3% 81% AB% E9% 80% A3% E7% B5% 90% E3% 81% 97% E3% 81% A6% E6% 96% 87% E5% AD% 97% E5% 88% 97% E3% 83% 91% E3% 82% BF% E3% 83% 88% E3% 82% AF% E3% 82% AB% E3% 82% B7% E3% 83% BC% E3% 83% BC% E3% 82% Ce que j'ai remarqué à 92% E5% BE% 97% E3% 82% 88) est énorme. (Point de compliment personnel. Complimentez tout le monde !!) ** Si vous n'étiez pas au courant de cette notation, vous avez peut-être délibérément divisé la chaîne caractère par caractère, la mettre dans un tableau, la retirer et la traiter. ** ~~ Je l'ai écrit à l'époque de Java. ~~

Puis décryptez. C'est facile.

yoyu.py


genbun = "aBc0"

#Fonction de cryptage
def cipher(s):
    kaesubun = ""
    
    for i in s:
        #Juger si c'est alphabétique et minuscule
        if i.isalpha() and i.islower():
            kaesubun = kaesubun + chr(219-ord(i))
        else:
            kaesubun = kaesubun + i
    return kaesubun

#Fonction de décryptage
def decryption(s):
    kaesubun = ""
    
    for i in s:
        if i.isalpha() and i.islower():
            kaesubun = kaesubun + chr(219+ord(i))
        else:
            kaesubun = kaesubun + i
    return kaesubun


print("Original")
print(genbun)

angobun = cipher(genbun)
print("Cryptogramme")
print(angobun)

fukugobun = decryption(angobun)
print("Texte décrypté")
print(fukugobun)
Original
aBc0
Cryptogramme
zBx0
Texte décrypté
ŕBœ0

Ahhhhhhh! ?? !! ?? !! ??

Si vous essayez de calculer avec du papier C'était «chr (219-ord (i))» au lieu de «chr (219 + ord (i))». ** Il y a un piège où je pense que c'est facile. Veuillez utiliser comme cours () **

Terminé avec l'aide ↓.

enshu08.py


genbun = "aBcDeFghijKLM0123456789"

#Fonction de cryptage
def cipher(s):
    kaesubun = ""
    
    for i in s:
        #Juger si c'est alphabétique et minuscule
        if i.isalpha() and i.islower():
            kaesubun = kaesubun + chr(219-ord(i))
        else:
            kaesubun = kaesubun + i
    return kaesubun

#Fonction de décryptage
def decryption(s):
    kaesubun = ""
    
    for i in s:
        if i.isalpha() and i.islower():
            kaesubun = kaesubun + chr(219-ord(i))
        else:
            kaesubun = kaesubun + i
    return kaesubun


print("Original")
print(genbun)

angobun = cipher(genbun)
print("Cryptogramme")
print(angobun)

fukugobun = decryption(angobun)
print("Texte décrypté")
print(fukugobun)
Original
aBcDeFghijKLM0123456789
Cryptogramme
zBxDvFtsrqKLM0123456789
Texte décrypté
aBcDeFghijKLM0123456789

Suivant Suivant! !!

  1. 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.

Japonais régulier difficile.

Tout d'abord, le tableau d'ensemble.

zenta.py


s = "I couldn't believe that I could actually understand what I was reading : the phenomenal power of the human mind ."

#Faites une liste du texte original séparé par un espace demi-largeur
list = s.split()

kaesubun = []
for i in list:
La longueur de la chaîne dans la liste if est supérieure à 4:
Réorganisez au hasard l'ordre des autres caractères, en laissant le premier et le dernier caractères
        kaesubun.append(Caractères après remplacement)
    else:
        #Tel quel sans remplacement
        kaesubun.append(i)

Ouais, ça n'a pas l'air si difficile. Je me suis demandé comment "réorganiser au hasard l'ordre des autres personnages".

Sélectionnez au hasard plusieurs éléments (pas de duplication): random.sample ()

<URL de référence> https://note.nkmk.me/python-random-choice-sample-choices/

Je vois. Pour la première fois ici, j'utiliserai la bibliothèque standard pour spécifier random, mais est-ce que ça va? Est-ce OK? Essayez au hasard.

rand.py


import random

s = ["a", "b", "c", "d","e"]
print(random.sample(s, 5))
['c', 'e', 'b', 'a', 'd']

Ouaip. Bonnes vibrations. J'ai pu obtenir 5 personnages au hasard.

"Laissez le début et la fin" est [Pratique 02](https://qiita.com/earlgrey914/items/fe1d326880af83d37b22#02-%E3%83%91%E3%83%88%E3%82%AB % E3% 83% BC% E3% 82% BF% E3% 82% AF% E3% 82% B7% E3% 83% BC% E3% 83% 91% E3% 82% BF% E3% 83% 88% E3 Utilisez des tranches comme vous l'avez fait avec% 82% AF% E3% 82% AB% E3% 82% B7% E3% 83% BC% E3% 83% BC). On peut dire que "du deuxième caractère (1) au caractère immédiatement avant la fin (-1)", donc [1: -1]

onazi.py


s = ["a", "b", "c", "d", "e"]
print(s[1:-1])
['b', 'c', 'd']

Découpez également le «début» et la «fin»

nokosi.py


s = ["a", "b", "c", "d", "e"]
print(s[0])
print(s[-1])
['a']
['e']

Bien. Probablement aller.

** Après tout, la notation des tranches est un peu gênante. ** ** Même si s [-1] est "le dernier caractère" s [1: -1] est "du deuxième caractère au dernier caractère", non? N'est-ce pas un peu difficile à comprendre?

↓ Il vaudrait peut-être mieux écrire comme ça. (Je ne sais pas si tu peux écrire comme ça) "Dernier caractère" s[-1: : ] "Du deuxième personnage au personnage immédiatement avant la fin" s[1:-1: ]

~ 20 minutes plus tard ~ C'est fait.

enshu09.py


import random

s = "I couldn't believe that I could actually understand what I was reading : the phenomenal power of the human mind ."

#Faites une liste du texte original séparé par un espace demi-largeur
kugitta_list = s.split()

kaesubun = []

#Traitement mot par mot dans le texte original
for ichitango in kugitta_list:
    #Si le mot est plus grand que 4 lettres
    if len(ichitango) > 4:
        kaesutango = []
        
        #Liste des mots en les séparant caractère par caractère
        ichitango_kugitta_list= list(ichitango)
        
        #Faire une liste de caractères en excluant le premier et le dernier caractères
        sentou_matsubi_nozoita_list = ichitango_kugitta_list[1:-1]
        
        #Insérez la première lettre dans la liste "mots à renvoyer"
        kaesutango.append(ichitango_kugitta_list[0])
        
        #Obtenez aléatoirement tous les caractères de la liste des caractères à l'exclusion du premier et du dernier caractères et placez-les dans la liste "mots à renvoyer"
        kaesutango.extend(random.sample(sentou_matsubi_nozoita_list, len(sentou_matsubi_nozoita_list)))
        
        #Mettez la dernière lettre dans la liste "mots à renvoyer"
        kaesutango.append(ichitango_kugitta_list[-1])
        
        #Mettez "mots à renvoyer" dans la liste des "phrases à renvoyer"
        kaesubun.append(''.join(kaesutango))
    else:
        #Mettez-le dans la liste des "phrases retournées" tel quel sans le remplacer
        kaesubun.append(ichitango)
        
#Convertit le tableau des instructions renvoyées en chaîne et en sortie (et spécifiez un espace vide comme délimiteur pour les éléments du tableau)
print(' '.join(kaesubun))

I c'ulnodt bvlieee that I could altluacy usraetdnnd what I was rdnieag : the paemonnhel pewor of the hmuan mind .

La première notation est `` ''. Join (kaesubun) `.

Je convertis une liste de chaînes de caractères séparées par des caractères en une chaîne de caractères. S'il existe une liste de "[" a "," b "," c "] En écrivant «». Join (list) «,« abc »sera affiché. En écrivant «a». Join (list) «,« a a b a c »sera affiché. ("A" est le délimiteur)

Eh bien, je vais bien.

Bien! !! !! Ceci complète les 10 questions du chapitre 1 de Traitement du langage! !! !! !!

** Cet article à lui seul a pris 2 heures! !! !! !! !! !! !! !! (important)** ** Le chapitre 1 a pris 7 heures! !! !! !! !! !! (important)**

A partir de demain, nous commencerons au chapitre 2.

Recommended Posts

Une personne inexpérimentée en Python essaie de frapper 100 traitement du langage 14-16
Une personne inexpérimentée en Python essaie de frapper 100 traitement du langage 07-09
Une personne inexpérimentée en Python tente de frapper 100 traitement du langage 10 ~ 13
Une personne inexpérimentée en Python essaie de frapper 100 traitement du langage 05-06
Une personne inexpérimentée en Python essaie de frapper 100 traitement du langage 00-04
100 coups de traitement du langage avec Python 2015
100 Language Processing Knock Chapitre 1 (Python)
100 Language Processing Knock Chapitre 2 (Python)
100 traitements de langage avec Python
100 Language Processing Knock Chapitre 1 en Python
100 traitements de langage avec Python (chapitre 3)
Le débutant en Python a essayé 100 traitements de langage Knock 2015 (05 ~ 09)
100 Language Processing Knock Chapitre 1 par Python
Le débutant en Python a essayé 100 traitements de langage Knock 2015 (00 ~ 04)
100 coups de traitement linguistique (2020): 28
100 coups de traitement linguistique (2020): 38
100 traitement de la langue frapper 00 ~ 02
100 traitements de langage avec Python (chapitre 2, partie 2)
100 traitements de langage avec Python (chapitre 2, partie 1)
100 traitements linguistiques Knock 2020 [00 ~ 39 réponse]
100 langues de traitement knock 2020 [00-79 réponse]
100 Language Processing Knock 2020 Chapitre 1
100 coups de traitement du langage amateur: 17
100 traitements linguistiques Knock 2020 [00 ~ 49 réponse]
Python: traitement du langage naturel
100 Traitement du langage Knock-52: Stemming
100 Traitement du langage Knock Chapitre 1
Introduction au langage Python
100 coups de langue amateur: 07
100 Language Processing Knock 2020 Chapitre 3
100 Language Processing Knock 2020 Chapitre 2
100 coups de traitement du langage amateur: 09
100 coups en traitement du langage amateur: 47
Traitement 100 langues knock-53: Tokenisation
100 coups de traitement du langage amateur: 97
100 traitements linguistiques Knock 2020 [00 ~ 59 réponse]
100 coups de traitement du langage amateur: 67
Entrée où les débutants en Python font de leur mieux pour frapper petit à petit 100 processus de langage
100 langage traitement knock-92 (utilisant Gensim): application aux données d'analogie
[Chapitre 3] Introduction à Python avec 100 coups de traitement du langage
[Chapitre 2] Introduction à Python avec 100 coups de traitement du langage
[Chapitre 4] Introduction à Python avec 100 coups de traitement du langage
100 traitement du langage Knock-51: découpage de mots
100 Language Processing Knock-58: Extraction de Taple
100 Language Processing Knock-57: Analyse des dépendances
100 traitement linguistique knock-50: coupure de phrase
100 Language Processing Knock-25: Extraction de modèles
J'ai essayé 100 traitements linguistiques Knock 2020
100 Language Processing Knock-56: analyse de co-référence
Résolution de 100 traitements linguistiques Knock 2020 (01. "Patatokukashi")
100 coups de traitement du langage amateur: Résumé
Traitement du langage 100 knocks-43: Extraire les clauses contenant la nomenclature liée aux clauses contenant des verbes
[Python] Essayez de classer les boutiques de ramen par traitement du langage naturel
100 traitement de la langue knock-42: Affichage de la phrase de la personne concernée et de la personne concernée
Laissez le traitement gênant à Python
100 Language Processing Knock 2020 Chapitre 2: Commandes UNIX
100 Language Processing Knock 2015 Chapitre 5 Analyse des dépendances (40-49)
100 Language Processing Knock 2020 Chapitre 4: Analyse morphologique
100 Language Processing Knock 2020 Chapitre 9: RNN, CNN
100 traitement du langage knock-76 (en utilisant scicit-learn): étiquetage
100 Language Processing Knock-55: extraction d'expressions uniques