وظيفة تشفير قيصر في بايثون: سلاسل مشفرة
عند تنفيذ وظيفة تشفير قيصر في بايثون، تنشأ مشكلة شائعة حيث يتم النص النهائي المشفر يعرض فقط الحرف الأخير الذي تم تغييره. لحل هذه المشكلة، من الضروري فهم المشكلة التي تسبب هذا السلوك.
في التعليمات البرمجية المتوفرة، تتكرر الحلقة فوق كل حرف في النص العادي. بالنسبة للأحرف الأبجدية، يقوم بتغيير رمز ASCII الخاص بالحرف بناءً على قيمة الإزاحة المتوفرة. ومع ذلك، يتم إلحاق كل حرف تم إزاحته بسلسلة فارغة تسمى cipherText داخل الحلقة. ونتيجة لذلك، يتم عرض الحرف الأخير فقط كنص مشفر.
لتصحيح هذه المشكلة، يجب إنشاء النص المشفر داخل الحلقة وإعادته بمجرد معالجة كافة الأحرف. يمكن تحقيق ذلك عن طريق تعديل الكود كما يلي:
def caesar(plainText, shift):
cipherText = ""
for ch in plainText:
if ch.isalpha():
stayInAlphabet = ord(ch) shift
if stayInAlphabet > ord('z'):
stayInAlphabet -= 26
finalLetter = chr(stayInAlphabet)
cipherText = finalLetter
return cipherText
مع هذا التعديل، تتم تهيئة سلسلة cipherText مرة واحدة ويتم إلحاق كافة الأحرف المتغيرة بها داخل الحلقة. عندما تعود الدالة، تحتوي السلسلة المشفرة على كافة الأحرف التي تم إزاحتها، على النحو المنشود.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3