[Python] Défiez 100 coups! (000-005)

introduction

À l'origine, j'étais un ingénieur réseau qui faisait tout le travail de conception, de construction et de maintenance d'un réseau interne, mais à un moment donné, je me suis impliqué dans la sécurité réseau interne. J'étais impliqué dans des opérations de sécurité en utilisant IPS et WAF, mais comme des choses que je ne savais pas du tout sortaient, je voulais en savoir plus sur la sécurité. À partir de là, lors de l'étude de la sécurité, il est devenu nécessaire de "gérer une grande quantité de journaux davantage comme souhaité", "d'automatiser le traitement" et "d'appliquer un simple code d'exploitation", j'ai donc décidé d'étudier python après avoir considéré diverses choses. .. Nous atteindrons ce défi. Je publierai le contenu du défi sur Qiita en tant que mémorandum.

À propos de l'historique de programmation et de l'historique de développement d'applications

Diplôme d'apprentissage du langage C à l'université Le développement d'applications consiste à développer des applications Web avec PHP il y a longtemps

Qu'est-ce que 100 coups?

Language processing 100 knocks 2015, fourni par le professeur Okazaki du laboratoire Inui-Okazaki de l'université de Tohoku. C'est un ensemble de problèmes. (Merci!)

Environnement de mise en œuvre

PC:MacBookPro2016 IDE:pycharm version:anaconda3-4.1.1

État de Knock

9/24 ajouté

000. Ordre inverse des chaînes

Obtenez une chaîne dans laquelle les caractères de la chaîne «souligné» sont disposés à l'envers (de la fin au début).

000.py


msg="stressed"
print(msg)
print(msg[::-1])

result


stressed
desserts
Process finished with exit code 0

Impressions: ajoutez simplement -1 dans l'option de tranche

001. «Patatokukashi»

Retirez les 1er, 3ème, 5ème et 7ème caractères de la chaîne de caractères "Patatokukashi" et obtenez la chaîne de caractères concaténée.

001.py


msg  = "Patatoku Kashii"
print(msg)
msg_find = msg[::2]
print(msg_find)

result


Patatoku Kashii
Voiture Pat
Process finished with exit code 0

Impressions: ajoutez simplement l'option de tranche

002. "Patcar" + "Tax" = "Patatokukasie"

Obtenez la chaîne de caractères "Patatokukashi" en reliant alternativement les caractères "Pattocar" + "Tax" depuis le début.

002.py


msg1 = "Voiture Pat"
msg2= "Taxi"
msg_add=''

for i in range(0,len(msg1)):
    msg_add += msg1[i]
    msg_add += msg2[i]

print(msg_add)

result


Patatoku Kashii
Process finished with exit code 0

Impression: Le sentiment de pour la phrase est différent du langage C ...

003. Taux circonférentiel

Décomposez la phrase "Maintenant, j'ai besoin d'un verre, alcoolique bien sûr, après les lourdes conférences sur la mécanique quantique." Créez une liste du nombre de caractères (dans l'alphabet) de chaque mot, classés par ordre d'apparition depuis le début.

word2list_003.py


# -*- coding: utf-8 -*-

def word2list(msg):
    temp_msg = ''
    list = []
    for temp in msg:
        temp=temp.rstrip(",.")
        if(temp==' '):
            list.append(temp_msg)
            temp_msg=''
        else:
            temp_msg += temp

    list.append(temp_msg)
    return list

if __name__ == "__main__":
    msg = "Now I need a drink, alcoholic of course, after the heavy lectures involving quantum mechanics."
    list = []
    num_list = []
    temp = ''

    list = word2list(msg)
    for num in list:
        num_list.append(len(num))

    print(num_list)

result


[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9]
Process finished with exit code 0

Les impressions:, etc. ne sont pas complètement traitées. .. .. 8/18 Mise à jour du correctif

004. Symbole d'élément

"Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can." Est décomposé en mots, et le premier, 5, 6, 7, 8, 9, 15, 16, 19e mot est le premier caractère, et les autres mots sont les deux premiers caractères. Créez un tableau associatif (type dictionnaire ou type map) à partir de la position du mot (quel numéro depuis le début).

word2dict_004.py


def word2dict(msg):
    temp = ''
    temp_msg = ''
    temp_list=[]
    i = 1

    for temp in msg:
        if(temp==' ' or temp=='. '):
            temp_list.append((i, temp_msg))
            temp_msg = ''
            i = i + 1
        else:
            temp_msg+=temp
    temp_list.append((i,temp_msg))
    return  temp_list

if __name__=="__main__":
    msg = "Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can."
    dic = {}
    temp_list = []
    temp_list = word2dict(msg)
    for key,item in temp_list:
        if(key==1 or key == 5 or key == 6 or key == 7or key == 8or key == 9or key == 15or key == 16or key == 19):
            dic[key]=item[:1]
        else:
            dic[key]=item[:2]
    print(dic)

result


{1: 'H', 2: 'He', 3: 'Li', 4: 'Be', 5: 'B', 6: 'C', 7: 'N', 8: 'O', 9: 'F', 10: 'Ne', 11: 'Na', 12: 'Mi', 13: 'Al', 14: 'Si', 15: 'P', 16: 'S', 17: 'Cl', 18: 'Ar', 19: 'K', 20: 'Ca'}
Process finished with exit code 0

Impressions: il semble y avoir un moyen plus intelligent pour l'instruction if

  1. n-gram Créez une fonction qui crée un n-gramme à partir d'une séquence donnée (chaîne, liste, etc.). Utilisez cette fonction pour obtenir le mot bi-gramme et la lettre bi-gramme à partir de la phrase "Je suis un PNL".

ngram_005.py


from training.word2list_003 import word2list

def ngram(msg,N,type):
    if(type=='word'):
        bigram_word=''
        bigram_list=[]
        temp_list=word2list(msg)
        i=0
        while(i < int(len(temp_list))-1):
#temp_Obtenir le nombre de mots avec la plage spécifiée par N à partir de la liste et du mot_Attribuer à la liste
            word_list = temp_list[i:(N+i)]
            for word in word_list:
                bigram_word += word
                continue
            bigram_list.append(bigram_word)
            bigram_word =''
            i +=1
        return bigram_list

    elif(type=='char'):
        temp_char_list=[]
        temp_bigram_list=[]
        bigram_char = ''
        bigram_list = []
        for temp_char in msg:
            if(temp_char==' ' or temp_char==','):
                continue
            else:
                temp_char_list.append(temp_char)
            continue
        i=0
#temp_Obtenez le nombre de caractères pour lequel la plage spécifiée par N est définie à partir de la liste et du mot_Attribuer à la liste
        while(i<int(len(temp_char_list))-1):
            temp_bigram_list=temp_char_list[i:(N+i)]
            for char in temp_bigram_list:
                bigram_char += char
                continue
            bigram_list.append(bigram_char)
            bigram_char=''
            i+=1
            continue
        return bigram_list

if __name__ == "__main__":
        msg = "I am an NLPer"
        N=2
        type='char'
#       type='word'
        bigram_list = ngram(msg,N,type)
        print(bigram_list)

result


type=Pour le char
['Ia', 'am', 'ma', 'an', 'nN', 'NL', 'LP', 'Pe', 'er']
Process finished with exit code 0

type=Pour mot
['Iam', 'aman', 'anNLPer']
Process finished with exit code 0

Impressions: qu'est-ce que ngram? Commencez par cet endroit. Est-ce vraiment un contenu pour débutant? .. .. a été difficile. .. ..

Recommended Posts

[Python] Défiez 100 coups! (015 ~ 019)
[Python] Défiez 100 coups! (030-034)
[Python] Défiez 100 coups! (000-005)
[Python] Défiez 100 coups! (010-014)
[Python] Défiez 100 coups! (025-029)
[Python] Défiez 100 coups! (020-024)
journal des défis python ①
Défiez 100 coups de science des données
Python
Défi Spartacamp Python 2019 Day2
Pandas 100 coups pour les débutants en Python
Défiez Python3 et Selenium Webdriver
Défiez LOTO 6 avec Python sans discipline
Traitement d'image avec la binarisation Python 100 knocks # 3
# 2 Les débutants en Python défient AtCoder! ABC085C --Otoshidama
100 traitement d'image par Python Knock # 2 Échelle de gris
python kafka
Les bases de Python ⑤
Résumé Python
Python intégré
Technique Python
Étudier Python
Compte à rebours Python 2.7
Mémorandum Python
astuces python
fonction python ①
Les bases de Python
Mémo Python
ufo-> python (3)
Installer python
Python Singleton
Les bases de Python ④
Mémorandum Python 2
mémo python
Python Jinja2
100 traitement d'image avec Python Knock # 8 Max Pooling
Incrément Python
atCoder 173 Python
[Python] fonction
Installation de Python
Installer Python 3.4.3.
Essayez Python
Itératif Python
Algorithme Python
Python2 + mot2vec
[Python] Variables
Fonctions Python
Python sys.intern ()
Tutoriel Python
Fraction Python
underbar python C'est ce que
Démarrer python
[Python] Trier
Remarque: Python
Les bases de Python ③
Sortie du journal python
Les bases de Python
[Scraping] Scraping Python
Mise à jour Python (2.6-> 2.7)