Ich habe mich gefragt, ob es eine Site gibt, auf der ich Python (3.X) üben kann, um die Zeit totzuschlagen, aber ich habe eine Site namens Knock 2015 mit 100 Sprachverarbeitung gefunden, also habe ich nur die ersten fünf Probleme ausprobiert. http://www.cl.ecei.tohoku.ac.jp/nlp100/
Bitte weisen Sie darauf hin, wenn etwas nicht stimmt.
Holen Sie sich eine Zeichenfolge, in der die Zeichen der Zeichenfolge "betont" umgekehrt angeordnet sind (vom Ende bis zum Anfang).
00.py
s = "stressed"
print(s[::-1])
desserts
In s [i: j: k] bedeutet dies, dass k Teile von s [j-1] von s [i] übersprungen werden, also bedeutet s [:: -1] vom Ende bis zum Anfang nacheinander. Richtig.
Nehmen Sie das 1., 3., 5. und 7. Zeichen der Zeichenkette "Patatokukashi" heraus und erhalten Sie die verkettete Zeichenkette.
01.py
s = "Patatoku Kashii"
print(s[::2])
Pat Auto
Es ist eine Anwendung von 00. (Mir fällt nichts Besonderes ein)
Erhalten Sie die Zeichenkette "Patatokukashi", indem Sie die Zeichen "Pattocar" + "Tax" von Anfang an abwechselnd verbinden.
02.py
s = ""
for i,j in zip("Pat Auto", "Taxi"):
s += i+j
print(s)
Patatoku Kashii
Es gab eine praktische Zip-Funktion, mit der Sie mehrere Sequenzen gleichzeitig durchlaufen können, sodass Sie die Zeichen einzeln zusammenführen und zusammenkleben können.
Brechen Sie den Satz "Jetzt brauche ich nach den schweren Vorlesungen über Quantenmechanik einen Alkoholiker." In Wörter auf und erstellen Sie eine Liste der Anzahl der (alphabetischen) Zeichen in jedem Wort in der Reihenfolge ihres Auftretens.
03.py
s = "Now I need a drink, alcoholic of course, after the heavy lectures involving quantum mechanics."
count_list = []
for i in s.split():
count_list.append(len(i.strip(",.")))
print(count_list)
[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9]
Wo war der Faktor des Umfangsverhältnisses, als ich dieses Problem zum ersten Mal sah? Ich dachte, Wenn Sie genau hinschauen, ist es so ... ~~ Es ist zu aggressiv ~~
Um dies zu tun, trennen Sie die Zeichenfolgen mit split (), entfernen Sie die Zeichen ',' und '.' Mit strip und ermitteln Sie die Anzahl der Zeichen mit len (). Es fühlt sich an wie eine Verarbeitung durch Schleifen, so viel wie dies geteilt ist.
Brechen Sie den Satz "Hi He Lied, weil Bor Fluor nicht oxidieren konnte. Neue Nationen könnten auch die Friedenssicherheitsklausel unterzeichnen. Arthur King Can." In die Wörter 1, 5, 6, 7, 8, 9, 15, 16 auf. Das 19. Wort ist das erste Zeichen, und die anderen Wörter sind die ersten beiden Zeichen und das assoziative Array (Wörterbuchtyp oder Kartentyp) von der extrahierten Zeichenfolge bis zur Position des Wortes (welche Anzahl von Wörtern von Anfang an) Erstellen.
04.py
s = "Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can."
dict = {}
for (i, w) in enumerate(s.replace(".", "").split(), 1):
if i in (1,5,6,7,8,9,15,16,19):
dict.update({w[0]:i})
else:
dict.update({w[:2]:i})
print(dict)
{'H': 1, 'He': 2, 'Li': 3, 'Be': 4, 'B': 5, 'C': 6, 'N': 7, 'O': 8, 'F': 9, 'Ne': 10, 'Na': 11, 'Mi': 12, 'Al': 13, 'Si': 14, 'P': 15, 'S': 16, 'Cl': 17, 'Ar': 18, 'K': 19, 'Ca': 20}
Ich habe die Aufzählungsfunktion verwendet, um das Element beim Schleifen mit einem Index zu erhalten. Holen Sie sich damit die Zeichenfolge und den Index mit dem entfernten '.' Und nur das erste Zeichen für das 1,5,6,7,8,9,15,16,19. Und ansonsten bis zum zweiten Zeichen. , Und so weiter, schreiben Sie eine if-Anweisung und Sie sind fertig.
Ich habe das Elementsymbol nach langer Zeit gesehen. ~~ Übrigens, was ist Mi? ~~
Ich würde gerne weitermachen, wenn ich Lust dazu habe.
Recommended Posts