[Python] Fordere 100 Schläge heraus! (000-005)

Einführung

Ursprünglich war ich ein Netzwerktechniker, der alle Arbeiten zum Entwerfen, Erstellen und Verwalten eines internen Netzwerks erledigte. Irgendwann beschäftigte ich mich jedoch mit der internen Netzwerksicherheit. Ich war an Sicherheitsoperationen mit IPS und WAF beteiligt, aber da Dinge herauskamen, die ich überhaupt nicht wusste, wollte ich mehr über Sicherheit erfahren. Von da an wurde es beim Studium der Sicherheit notwendig, "eine große Menge von Protokollen wie gewünscht zu verarbeiten", "die Verarbeitung zu automatisieren" und "einen einfachen Exploit-Code anzuwenden", und so entschied ich mich, Python zu studieren, nachdem ich verschiedene Dinge in Betracht gezogen hatte. .. Wir werden diese Herausforderung erreichen. Ich werde den Herausforderungsinhalt als mein Memorandum an Qiita senden.

Informationen zum Programmierverlauf und zum Anwendungsentwicklungsverlauf

Abschluss des Lernens der C-Sprache an der Universität Bei der App-Entwicklung geht es darum, Webanwendungen mit PHP vor langer Zeit zu entwickeln

Was sind 100 Schläge?

Sprachverarbeitung 100 Schläge 2015, bereitgestellt von Professor Okazaki vom Inui-Okazaki Laboratory der Tohoku University. Dies ist eine Sammlung von Problemen. (Vielen Dank!)

Implementierungsumgebung

PC:MacBookPro2016 IDE:pycharm version:anaconda3-4.1.1

Klopfstatus

9/24 hinzugefügt

000. Umgekehrte Reihenfolge der Zeichenfolgen

Holen Sie sich eine Zeichenfolge, in der die Zeichen der Zeichenfolge "betont" umgekehrt angeordnet sind (vom Ende bis zum Anfang).

000.py


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

result


stressed
desserts
Process finished with exit code 0

Impressionen: Fügen Sie einfach -1 in die Slice-Option ein

001. "Patatokukashi"

Nehmen Sie das 1., 3., 5. und 7. Zeichen der Zeichenkette "Patatokukashi" heraus und erhalten Sie die verkettete Zeichenkette.

001.py


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

result


Patatoku Kashii
Pat Auto
Process finished with exit code 0

Impressionen: Fügen Sie einfach die Slice-Option hinzu

002. "Pat car" + "Tax" = "Patatokukasie"

Erhalten Sie die Zeichenkette "Patatokukashi", indem Sie die Zeichen "Pattocar" + "Tax" von Anfang an abwechselnd verbinden.

002.py


msg1 = "Pat Auto"
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

Eindruck: Das Gefühl für einen Satz unterscheidet sich von der C-Sprache ...

003. Umfangsrate

Brechen Sie den Satz "Jetzt brauche ich einen Drink, natürlich Alkoholiker, nach den schweren Vorlesungen über Quantenmechanik." In Worte. Erstellen Sie eine Liste mit der Anzahl der Zeichen (im Alphabet) jedes Wortes, die von Anfang an in der Reihenfolge ihres Auftretens angeordnet ist.

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

Impressionen: usw. werden nicht vollständig verarbeitet. .. .. 8/18 Update auf Hotfix

004. Elementsymbol

"Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can." , 1, 5, 6, 7, 8, 9, 15, 16, 19. Wort ist das erste Zeichen, und die anderen Wörter sind die ersten beiden Zeichen. Erstellen Sie ein assoziatives Array (Wörterbuchtyp oder Kartentyp) von der Position des Wortes (wie viele Wörter von Anfang an).

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

Eindruck: Es scheint einen intelligenteren Weg für die if-Anweisung zu geben

  1. n-gram Erstellen Sie eine Funktion, die aus einer bestimmten Sequenz (Zeichenfolge, Liste usw.) ein n-Gramm erstellt. Verwenden Sie diese Funktion, um das Wort Bi-Gramm und den Buchstaben Bi-Gramm aus dem Satz "Ich bin ein NLPer" zu erhalten.

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_Ermitteln Sie die Anzahl der Wörter mit dem durch N angegebenen Bereich aus Liste und Wort_Zu Liste zuweisen
            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_Ermitteln Sie die Anzahl der Zeichen, für die der durch N angegebene Bereich festgelegt ist, aus Liste und Wort_Zu Liste zuweisen
        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=Für char
['Ia', 'am', 'ma', 'an', 'nN', 'NL', 'LP', 'Pe', 'er']
Process finished with exit code 0

type=Für ein Wort
['Iam', 'aman', 'anNLPer']
Process finished with exit code 0

Impressionen: Was ist Ngramm? Beginnen Sie an diesem Ort. Ist das wirklich ein Anfängerinhalt? .. .. war schwierig. .. ..

Recommended Posts

[Python] Fordere 100 Schläge heraus! (015 ~ 019)
[Python] Fordere 100 Schläge heraus! (030-034)
[Python] Fordere 100 Schläge heraus! (000-005)
[Python] Fordere 100 Schläge heraus! (010-014)
[Python] Fordere 100 Schläge heraus! (025-029)
[Python] Fordere 100 Schläge heraus! (020-024)
Python-Challenge-Tagebuch ①
Fordern Sie 100 Data Science-Schläge heraus
Python
Spartacamp Python 2019 Day2 Challenge
100 Pandas klopfen für Python-Anfänger
Fordern Sie Python3 und Selenium Webdriver heraus
Fordern Sie LOTO 6 mit Python ohne Disziplin heraus
Die Bildverarbeitung mit Python 100 klopft an die Binärisierung Nr. 3
# 2 Python-Anfänger fordern AtCoder heraus! ABC085C --Otoshidama
100 Bildverarbeitung mit Python Knock # 2 Graustufen
Kafka Python
Python-Grundlagen ⑤
Python-Zusammenfassung
Eingebaute Python
Python-Technik
Python studieren
Python 2.7 Countdown
Python-Memorandum
Python-Tipps
Python-Funktion ①
Python-Grundlagen
Python-Memo
Ufo-> Python (3)
Installieren Sie Python
Python Singleton
Python-Grundlagen ④
Python-Memorandum 2
Python-Memo
Python Jinja2
100 Bildverarbeitung mit Python Knock # 8 Max Pooling
Python-Inkrement
atCoder 173 Python
[Python] -Funktion
Python-Installation
Python installieren 3.4.3.
Versuchen Sie Python
Python iterativ
Python-Algorithmus
Python2 + word2vec
[Python] -Variablen
Python-Funktionen
Python sys.intern ()
Python-Tutorial
Python-Fraktion
Python Underbar Das ist was
Starten Sie Python
[Python] Sortieren
Hinweis: Python
Python-Grundlagen ③
Python-Protokoll ausgeben
Python-Grundlagen
[Scraping] Python-Scraping
Python-Update (2.6-> 2.7)