Dies ist eine Fortsetzung davon. Python unerfahrene Person versucht, 100 Sprachverarbeitung 00-04 zu klopfen https://qiita.com/earlgrey914/items/fe1d326880af83d37b22
Python unerfahrene Person versucht, 100 Sprachverarbeitung 05-06 zu klopfen https://qiita.com/earlgrey914/items/e772f1b7e5efea114e1d
e. was ist das? Irgendwie wurde es sofort so einfach ...?
iinoka.py
x=12
y="Temperatur"
z=22.4
def moziKetsugo(x, y, z):
print(str(x) + "von Zeit" + y + "Ist" + str(z))
moziKetsugo(x, y, z)
Die Temperatur um 12 Uhr ist 22.4
Ist das richtig···? Ist es nicht zu einfach ...? Denken wir aus einer etwas abgenutzten Perspektive. Das Problem ist, dass, wenn das Argument die Zeichenfolge "x, y, z" ist, "y bei x ist z" zurückgegeben wird. Wenn die Variablen x = 12, y = "Temperatur", z = 22,4 sind, wenden Sie die Zeichen an und geben Sie ** zurück. Ist es nicht ein Problem, eine Funktion zu erstellen? (Wenn ja, schreiben Sie es etwas klarer) Wenn ja ... In Java wurde die Verarbeitung abhängig vom Vorhandensein oder Fehlen des Arguments geändert (ich habe vergessen, was es war), aber ich frage mich, ob ich das Gleiche tun sollte.
Ich habe gegoogelt.
Es scheint ein Standardargument zu geben.
Referenz
https://note.nkmk.me/python-argument-default/
Wie wäre es damit.
enshu07.py
x=12
y="Temperatur"
z=22.4
def moziKetsugo(x="x", y="y", z="z"):
print(str(x) + "von Zeit" + y + "Ist" + str(z))
#Einfach ausgeben
moziKetsugo()
#Ausgabe mit Argumenten
moziKetsugo(x, y, z)
y bei x ist z
Die Temperatur um 12 Uhr ist 22.4
Nun, ich verstehe die Absicht der Frage nicht, also lassen Sie mich bitte wissen, ob jemand sie verstehen kann. Ich frage mich, ob es in Ordnung ist, weil es so einfach ist ...
** ・ Bei Kleinbuchstaben durch (219 - Zeichencode) ersetzen ・ Andere Zeichen werden unverändert ausgegeben Verwenden Sie diese Funktion, um englische Nachrichten zu verschlüsseln / entschlüsseln. ** ** **
(Ich habe die Problemstellung als Überschrift verwendet, aber es tut mir leid, dass ich nicht wusste, wie ich die Überschrift brechen soll, daher fühlte es sich seltsam an.)
Chiffre, hoch hoch ... chi, chi p ha (TOEIC340)
Schreiben Sie die Komposition vorerst. Ich möchte, dass Sie so viel wie einen einfachen Satz als Beispiel in den Problemsatz (Punpun) schreiben
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 -Zeichencode)Ersetzen Sie durch das Zeichen
Rückgabe der Zeichenfolge nach der Verschlüsselung
else:
Ausgabe so wie sie ist zurückgeben
#Verschlüsselung
angobun = cipher(genbun))
print(angobun)
#Entschlüsselung
fukugobun = decryption(genbun)
print(fukugobun)
Ich frage mich also, wie man eine Zeichencode-Konvertierung durchführt. In was wird der Code konvertiert? Ist UTF-8 in Ordnung? Mit UTF-8 kann der 219-Zeichen-Code-Teil nicht implementiert werden ...?
Als ich gegoogelt wurde, scheint Python eine Funktion ord ()
** zu haben, die eine Ganzzahl zurückgibt, die als Unicode-Codepunkt mit ** Zeichen bezeichnet wird. Vielleicht kannst du das benutzen. Es ist unfreundlich! !! !! (Punpun
Ausprobieren.
tameshi.py
print("a")
print(ord("a"))
a
97
Hmm, ich verstehe. Ist a`` 97
?
Was ist dann mit der Zeichenkette?
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
Das war's. ** Übergebe jeweils ein Zeichen an ord ()
**. OK.
Schreiben wir zuerst diese if-Anweisung.
if.py
if s ==Alphabet:
Es scheint, dass es eine Funktion für wund gibt, wenn Sie für "Python-Alphabet-Urteil" googeln.
Bestimmen Sie, ob es niedriger ist (niedriger ist) Bestimmt als alphanumerisch (isalnum) Beurteilen Sie, ob es sich um ein alphabetisches Zeichen (isalpha) handelt.
Referenz-URL
https://hibiki-press.tech/learn_prog/python/isupper-islower/3728#islower
Ich konnte es verschlüsseln
dekitayo.py
genbun = "aBc0"
def cipher(s):
kaesubun = ""
for i in s:
#Beurteilung, ob es alphabetisch und klein geschrieben ist
if i.isalpha() and i.islower():
kaesubun = kaesubun + chr(219-ord(i))
else:
kaesubun = kaesubun + i
return kaesubun
angobun = cipher(genbun)
print(angobun)
zBx0
Ich habe vergessen, es oben zu schreiben, aber es scheint, dass Sie ** Zeichen mit ord ()
in Unicode-Codepunkte konvertieren können und umgekehrt mit chr ()
. ** ** **
Und jetzt schreibe ich "für i in s:" auf beiläufige Weise, aber in dieser Notation Übung 03 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% Was mir bei 92% E5% BE% 97% E3% 82% 88 aufgefallen ist, ist riesig.
(Persönlicher Komplimentpunkt. Kompliment an alle !!)
** Wenn Sie diese Notation nicht kennen, haben Sie die Zeichenfolge möglicherweise absichtlich Zeichen für Zeichen geteilt, in ein Array eingefügt, herausgenommen und verarbeitet. ** ~~ Das habe ich in der Java-Ära geschrieben. ~~
Dann entschlüsseln. Das ist einfach.
yoyu.py
genbun = "aBc0"
#Verschlüsselungsfunktion
def cipher(s):
kaesubun = ""
for i in s:
#Beurteilung, ob es alphabetisch und klein geschrieben ist
if i.isalpha() and i.islower():
kaesubun = kaesubun + chr(219-ord(i))
else:
kaesubun = kaesubun + i
return kaesubun
#Entschlüsselungsfunktion
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("Geheimtext")
print(angobun)
fukugobun = decryption(angobun)
print("Entschlüsselter Text")
print(fukugobun)
Original
aBc0
Geheimtext
zBx0
Entschlüsselter Text
ŕBœ0
Ahhhhhhh! ?? !! ?? !! ??
Wenn Sie versuchen, mit Papier zu rechnen Es war "chr (219-ord (i))" anstelle von "chr (219 + ord (i))". ** Es gibt eine Falle, in der ich denke, dass es einfach ist. Bitte als Lektion verwenden () **
Mit der Hilfe abgeschlossen ↓.
enshu08.py
genbun = "aBcDeFghijKLM0123456789"
#Verschlüsselungsfunktion
def cipher(s):
kaesubun = ""
for i in s:
#Beurteilung, ob es alphabetisch und klein geschrieben ist
if i.isalpha() and i.islower():
kaesubun = kaesubun + chr(219-ord(i))
else:
kaesubun = kaesubun + i
return kaesubun
#Entschlüsselungsfunktion
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("Geheimtext")
print(angobun)
fukugobun = decryption(angobun)
print("Entschlüsselter Text")
print(fukugobun)
Original
aBcDeFghijKLM0123456789
Geheimtext
zBxDvFtsrqKLM0123456789
Entschlüsselter Text
aBcDeFghijKLM0123456789
Weiter als nächstes! !!
Normales Japanisch schwierig.
Zuallererst das ganze Bild.
zenta.py
s = "I couldn't believe that I could actually understand what I was reading : the phenomenal power of the human mind ."
#Erstellen Sie eine Liste des Originaltextes, die durch ein Leerzeichen mit halber Breite getrennt ist
list = s.split()
kaesubun = []
for i in list:
Die Länge der Zeichenfolge in der if-Liste ist größer als 4:
Ordnen Sie die Reihenfolge der anderen Zeichen nach dem Zufallsprinzip neu an, wobei das erste und das letzte Zeichen übrig bleiben
kaesubun.append(Zeichen nach dem Austausch)
else:
#Da es ersatzlos ist
kaesubun.append(i)
Ja, so schwierig sieht es nicht aus. Ich fragte mich, wie ich "die Reihenfolge anderer Charaktere zufällig ändern kann".
Wählen Sie zufällig mehrere Elemente aus (keine Duplizierung): random.sample ()
Das war's. Zum ersten Mal werde ich hier die Standardbibliothek verwenden, um "zufällig" anzugeben, aber ist das in Ordnung? Ist das in Ordnung? Versuchen Sie es zufällig.
rand.py
import random
s = ["a", "b", "c", "d","e"]
print(random.sample(s, 5))
['c', 'e', 'b', 'a', 'd']
Jep. Gute Stimmung. Ich konnte zufällig 5 Zeichen bekommen.
"Anfang und Ende verlassen" ist [Übung 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 Verwenden Sie Scheiben wie bei% 82% AF% E3% 82% AB% E3% 82% B7% E3% 83% BC% E3% 83% BC). Man kann sagen, dass "vom zweiten Zeichen (1) zum Zeichen unmittelbar vor dem Ende (-1)", also [1: -1]
onazi.py
s = ["a", "b", "c", "d", "e"]
print(s[1:-1])
['b', 'c', 'd']
Schneiden Sie auch "Start" und "Ende"
nokosi.py
s = ["a", "b", "c", "d", "e"]
print(s[0])
print(s[-1])
['a']
['e']
In Ordung. Wahrscheinlich zu gehen.
** Immerhin ist die Notation von Slices etwas mühsam. ** ** **
Obwohl s [-1]
"das letzte Zeichen" ist
s [1: -1]
ist "vom zweiten bis zum letzten Zeichen", oder?
Ist es nicht ein bisschen schwer zu verstehen?
↓ Es könnte besser sein, so zu schreiben. (Ich weiß nicht, ob du so schreiben kannst)
"Letzter Charakter"
s[-1: : ]
"Vom zweiten Charakter zum Charakter unmittelbar vor dem Ende"
s[1:-1: ]
~ 20 Minuten später ~ Es ist fertig.
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 ."
#Erstellen Sie eine Liste des Originaltextes, die durch ein Leerzeichen mit halber Breite getrennt ist
kugitta_list = s.split()
kaesubun = []
#Wort für Wort im Originaltext verarbeitet
for ichitango in kugitta_list:
#Wenn das Wort größer als 4 Buchstaben ist
if len(ichitango) > 4:
kaesutango = []
#Listen Sie Wörter auf, indem Sie sie Zeichen für Zeichen trennen
ichitango_kugitta_list= list(ichitango)
#Erstellen Sie eine Liste mit Zeichen ohne das erste und das letzte Zeichen
sentou_matsubi_nozoita_list = ichitango_kugitta_list[1:-1]
#Fügen Sie den ersten Buchstaben in die Liste "Wörter, die zurückgegeben werden sollen" ein
kaesutango.append(ichitango_kugitta_list[0])
#Holen Sie sich nach dem Zufallsprinzip alle Zeichen aus der Liste der Zeichen mit Ausnahme des ersten und des letzten Zeichens und fügen Sie sie in die Liste der zurückzugebenden Wörter ein
kaesutango.extend(random.sample(sentou_matsubi_nozoita_list, len(sentou_matsubi_nozoita_list)))
#Fügen Sie den letzten Buchstaben in die Liste "Wörter, die zurückgegeben werden sollen" ein
kaesutango.append(ichitango_kugitta_list[-1])
#Fügen Sie "Wörter, die zurückgegeben werden sollen" in die Liste der "Sätze, die zurückgegeben werden sollen" ein.
kaesubun.append(''.join(kaesutango))
else:
#Fügen Sie es in die Liste der "zurückgegebenen Sätze" ein, wie es ist, ohne es zu ersetzen
kaesubun.append(ichitango)
#Konvertieren Sie das Array der zurückgegebenen Anweisungen in eine Zeichenfolge und geben Sie es aus (und geben Sie ein Leerzeichen als Trennzeichen für die Elemente des Arrays an).
print(' '.join(kaesubun))
I c'ulnodt bvlieee that I could altluacy usraetdnnd what I was rdnieag : the paemonnhel pewor of the hmuan mind .
Die erste Notation ist ". Join (kaesubun)".
Ich konvertiere eine durch Zeichen getrennte Zeichenfolgenliste in eine Zeichenfolge.
Wenn es eine Liste von "[" a "," b "," c "]" gibt
Wenn Sie '' schreiben. Join (Liste)
gibt abc
aus.
Durch Schreiben von "a". Join (Liste) wird es als "a a b a c" ausgegeben. ("A" ist das Trennzeichen)
Also, mir geht's gut.
In Ordung! !! !! Damit sind alle 10 Fragen in Kapitel 1 der Sprachverarbeitung abgeschlossen! !! !! !!
** Dieser Artikel alleine hat 2 Stunden gedauert! !! !! !! !! !! !! !! (wichtig)** ** Kapitel 1 dauerte 7 Stunden! !! !! !! !! !! (wichtig)**
Ab morgen beginnen wir in Kapitel 2.
Recommended Posts