Kann jemand erklären, wie dieses Stück Code den ganzzahligen Wert von „shift-val“ weiß, so dass es es aus dem ASCII-Wert eines Zeichenseine Funktion mit zwei Parametern definiert
wirdalpha=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
def encodeMessage(message,shift_val):
encodedMessage = ""
l = len(alpha)
length = len(message)
for i in range(0,length):
# ord returns ASCII value of character, we add shift_val to it and
subtract ASCII value of 'A'
x = ord(message[i])+shift_val- ord('A')
# x could exceed 26, we need to cycle back hence mod 26 is used.
x = x % 26
# add xth index alphabet to encoded message
encodedMessage += alpha[x]
# return encodedMessage
return encodedMessage
def main():
# message will be a string
message = ""
UserInput = input("Enter maximum 10 upper-case letters in one line to store: ")
lengthAlpha= len(alpha)
while not UserInput.isalpha() or len(UserInput) > 10 : # message is not acceptable in case it's greater than ten or it isn't a letter
print (" No special characters numbers are allowed (maximum 10 letters) ")
UserInput = input("Enter maximum 10 upper-case letters in one line to store: ")
else:
message =UserInput
message = [element.upper() for element in message]
move = int(input("How far do you wish to shift?: "))
print('The encoded message is',encodeMessage(message, move))
main()
Dieser Code enthält einen Einrückungsfehler (ich nehme an, die 'return' sollte innerhalb der Funktion body sein), aber es sieht aus wie' shift_val' wird einfach in die Funktion übergeben, wenn es aufgerufen wird. Ist es das, wonach du fragst? – Chris
Sie haben Recht, die Rückkehr sollte innerhalb des Funktionskörpers sein. ord (message [i]) nimmt den ASCII-Wert jedes Zeichens in der Nachricht, ord ('A') macht dasselbe für die alphabetische Liste. Was ist der numerische Wert, der davon subtrahiert wird, der als shift_val definiert ist? Tut mir leid, wenn die Frage schlecht klingt. –
Der Wert, der von 'ord (message [i])' subtrahiert wird, ist der Wert, der in der Funktion als 'shift_val' übergeben wird. Vermutlich ist das ein numerischer Wert. Aber es gibt buchstäblich keine Möglichkeit, dies auf der Grundlage Ihrer Angaben zu beantworten. Vielleicht wird eine Zahl übergeben, vielleicht eine Zeichenkette, vielleicht ein beliebiges Objekt, vielleicht eine Liste oder ein Diktat, vielleicht »None«. Sie müssen uns zeigen, wie das heißt. – Chris