Mục tiêu của chương trình này là lấy dữ liệu đầu vào của người dùng và chuyển đổi nó thành văn bản ascii.
Mã hoạt động như bình thường nhưng không chứa dấu phẩy, dấu chấm, dấu chấm than hoặc dấu hỏi.
Tôi đã thử bao gồm :!, ?, ' và dấu phẩy dưới dạng danh sách riêng biệt và thử gọi nó trên đầu vào. Nhưng tôi không hoàn toàn chắc chắn làm thế nào để làm điều đó.
Hiện tại tôi chỉ đang sử dụng một loạt câu lệnh else-if và nó hoạt động nhưng tôi cảm thấy phải có cách nào đó dễ dàng hơn để giải quyết vấn đề này. Tôi thực sự không biết phải làm gì. Cảm ơn bạn rất nhiều vì những lời khuyên!
def asciiToLeet(c):
l33tLetters = ["@", "8", "(", "|)", "3", "#", "6", "[-]", "|", "_|", "|< ", "1", "[]\/[]", "[]\[]", "0", "|D", "(,)", "|Z", "$", "'] ['",
"|_|", "\/", "\/\/", "}{", "`/", "2"]
nếu c == ' ': trả về ' '
Elif c == '.': return '.'
Elif c == ',': return ','
Elif c == '?': return '?'
Elif c == '!': return '!'
Elif c == "'": trả về "'"
mã ascii = ord(c)
nếu asciiCode >= ord('a') và asciiCode <= ord('z'):
trả về l33tLetters[asciiCode - ord('a')]
nếu asciiCode >= ord('A') và asciiCode <= ord('Z'):
trả về l33tLetters[asciiCode - ord('A')]
return ""
if __name__ == "__main__":
đầu vàoString = đầu vào()
đầu raString = ""
cho c trong inputString:
đầu raString += asciiToLeet(c)
in(outputString)
Kỳ vọng của tôi là mã sẽ hiển thị đầu ra có dấu chấm câu mà không cần phải sử dụng câu lệnh if-else.
Vào cuối phương pháp của bạn, bạn córeturn ""
. Vì vậy, nếu tất cả các lần tra cứu đều thất bại, nó sẽ loại bỏ các ký tự đầu vào. ngược lại,trả lại c
. Nếu tra cứu khiến ký tự đầu vào "leet" không khớp với nó, điều này sẽ khiến ký tự đầu vào được trả về không thay đổi.
Tôi là một lập trình viên xuất sắc, rất giỏi!