Ich möchte ein einzelnes Zeichen einer Zeichenfolge in eine ganze Zahl konvertieren, 2 hinzufügen, und dann wieder in eine Zeichenfolge konvertieren. Daher wird ein C, wird K M usw.Konvertieren von Zeichenfolge/Zeichen in Ganzzahl in Python
Antwort
Das durch die chr und ord Funktionen erfolgt. Z.B; chr(ord(ch)+2)
macht was du willst. Diese sind vollständig beschrieben here.
ord()
Versuchen Sie, sollte es tun :)
http://docs.python.org/library/functions.html
ord (c)
eine Zeichenkette der Länge eins gegeben, Rückkehr für eine ganze Zahl, welche den Unicode-Codepunkt des Zeichens, wenn das Argument eines Unicode-Objekt ist, oder der Wert des Bytes, wenn Das Argument ist eine 8-Bit-Zeichenfolge. Zum Beispiel gibt ord ('a') die Ganzzahl 97 zurück, ord (u '\ u2020') gibt 8224 zurück. Dies ist die Umkehrung von chr() für 8-Bit-Strings und von unichr() für Unicode-Objekte. Wenn ein Unicode-Argument angegeben wird und Python mit UCS2-Unicode erstellt wurde, muss der Codepunkt des Zeichens im Bereich [0..65535] liegen. Andernfalls ist die Zeichenfolgenlänge zwei und ein TypeError wird ausgelöst.
Das klingt viel wie Hausaufgaben, also gebe ich Ihnen ein paar Stücke und lassen Sie den Rest ausfüllen.
Um auf ein einzelnes Zeichen der Zeichenfolge s zuzugreifen, wird s [x] angezeigt, wobei x ein ganzzahliger Index ist. Die Indizes beginnen bei 0.
Um den ganzzahligen Wert eines Zeichens zu erhalten, ist ord (c) wobei c das Zeichen ist. Um eine ganze Zahl zurück in ein Zeichen zu werfen, ist dies chr (x). Achten Sie auf Buchstaben nahe dem Ende des Alphabets!
Edit: Wenn Sie Schwierigkeiten haben, was zu tun für Y und Z, lassen Sie einen Kommentar und ich gebe einen Hinweis.
Normalerweise nur ord und fügen Sie 2 und chr zurück, (Y, Z werden Sie unerwartetes Ergebnis geben ("[", "\")
>>> chr(ord("A")+2)
'C'
Wenn Sie Y, Z bis A ändern möchten , B, könnten Sie tun, wie diese
>>> chr((ord("A")-0x41+2)%26+0x41)
'C'
>>> chr((ord("Y")-0x41+2)%26+0x41)
'A'
>>> chr((ord("Z")-0x41+2)%26+0x41)
'B'
Hier A bis Z
>>> [chr((i-0x41+2)%26+0x41) for i in range(0x41,0x41+26)]
['C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'A', 'B']
Für eine ganze Reihe dieser wäre:.
>>> s = "Anne"
>>> ''.join([chr(ord(i)+2) for i in s])
'Cppg'
Es ist diffucult für 'Y', 'Z' ...
>>> s = "Zappa"
>>> ''.join([chr(ord(i)+2) for i in s])
'\\crrc'
"ord" ist nur ein Teil der Lösung. Das dort erwähnte Puzzle rotiert, sodass "X" +3 zu "A" rotiert. Die berühmteste von diesen ist rot-13, die 13 Zeichen dreht. Durch zweimaliges Anwenden von rot-13 (26 Zeichen rotierend) wird der Text zurück zu sich selbst gebracht.
Der einfachste Weg, dies zu bewältigen, ist mit einer Übersetzungstabelle.
import string
def rotate(letters, n):
return letters[n:] + letters[:n]
from_letters = string.ascii_lowercase + string.ascii_uppercase
to_letters = rotate(string.ascii_lowercase, 2) + rotate(string.ascii_uppercase, 2)
translation_table = string.maketrans(from_letters, to_letters)
message = "g fmnc wms bgblr"
print message.translate(translation_table)
Nicht ein einziges ord() oder chr() hier drin.Das ist, weil ich eine andere Frage beantworte, als gefragt wurde. ;)
@dalke weiß das schon, aber für diejenigen, die das nicht tun, ist ein noch einfacherer Weg, das obige für rot-13 speziell zu tun, message.decode ('rot13'). (Das obige ist rot-n.) –
- 1. Konvertieren von Monatsnamen in Ganzzahl
- 2. Python konvertieren Ganzzahl in 16-Byte-Bytes
- 3. Konvertieren Zeichenfolge in Ganzzahl
- 4. Konvertieren von String in Ganzzahl in Schema
- 5. Konvertieren von Ganzzahl in Binär in C#
- 6. Alphanumerische Zeichenfolge in Ganzzahl konvertieren?
- 7. SQL Server Konvertieren von Ganzzahl in Binärzeichenfolge
- 8. Konvertieren von JSON-Array-Wert in Ganzzahl
- 9. Javascript - Ganzzahl in Array von Bits konvertieren
- 10. Konvertieren von Spaltennamen in Ganzzahl mit read_csv
- 11. Boolesche Spalte in Ganzzahl konvertieren
- 12. Eine Ganzzahl von Zahlen in Python lesen
- 13. Konvertieren Ganzzahl in Farbe in WPF
- 14. Konvertieren Zeichenfolge in Ganzzahl in C++
- 15. Konvertieren von Ganzzahl in vorzeichenloses Zeichen * (int 221 in "\ xdd")
- 16. Konvertieren von Ganzzahl in Binärformat in SQL Server
- 17. Python - Monat Name in Ganzzahl umwandeln
- 18. Konvertieren einer Eingabezeichenfolge in eine Ganzzahl
- 19. Konvertieren einer Ganzzahl in eine Byte-Array
- 20. Java: Konvertieren von Byte zu Ganzzahl
- 21. Rails Migration zum Konvertieren von Zeichenfolge in Ganzzahl mit Konvertierung
- 22. Konvertieren von Ganzzahl in datetime (TT: hh: mm: ss)
- 23. Konvertieren von 1D Byte-Array in 1D Ganzzahl-Array
- 24. C Konvertieren von Zeichenfolge in Ganzzahl mit Arrays
- 25. Konvertieren var_export von Server-URL-Zeichenfolge in Ganzzahl
- 26. Konvertieren von Daten der seriellen Schnittstelle in Ganzzahl
- 27. Konvertieren String Datum/Uhrzeit-Format in Ganzzahl in Sekunden in Python
- 28. Finden Sie alle Vorkommen von Ganzzahl in Text in Python
- 29. Konvertieren Sie eine Zeichenzahl in die entsprechende Ganzzahl in C
- 30. Konvertieren Sie binäre Zeichenfolge in Ganzzahl in PHP
+1 für gute Hausaufgabenleitung, ohne die Lösung zu verraten – Kena
Ja, ich hatte Angst, dass jemand denken würde, dass es Hausaufgaben waren. Ich habe bereits ein B.S. in Informatik, und ich bin ein ASP.NET-Programmierer. Aber ich habe Django aufgenommen und wollte meine Python-Fähigkeiten auf dieser Seite verbessern: http://www.pythonchallenge.com/pc/def/map.html. Wie auch immer, ich denke, dass "ord" die Funktion ist, nach der ich gesucht habe. Ich werde es nach Feierabend versuchen. Danke für die Beiträge aller! – Luke
Ah, ok. Meine zwei Cent beim Machen von Sachen klingen nicht wie Hausaufgaben, wenn Sie so geneigt sind: Stellen Sie nur den Teil des Problems, den Sie beantworten möchten (wie "Wie konvertiere ich ein Zeichen in ein int in Python") statt die volle Frage, die ich eigentlich erinnere mich als eine der ersten Fragen in meiner Kryptographie-Klasse in der Schule) und auch, ich denke nur sagen "Das klingt vielleicht wie Hausaufgaben, aber es ist nicht" wird uns alle die Herablassung aus unseren Antworten zu entfernen :) Das sieht so aus eine coole Seite, aber ich muss es überprüfen. – danben