لماذا string.printable بايثون يحتوي على أحرف ليست للطباعة؟

StackOverflow https://stackoverflow.com/questions/418176

  •  03-07-2019
  •  | 
  •  

سؤال

ولقد اثنين من أسرار String.printable في سؤال واحد.

أولا، في بيثون 2.6:

>>> string.printable
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'

وانظروا إلى نهاية السلسلة، وستجد '\ x0b \ x0c "التمسك بها مثل الإبهام قرحة. لماذا هم هناك؟ أنا باستخدام آلة لتعيين إعدادات الاسترالية، لذلك لا ينبغي أن يكون هناك أي أحرف معلمة أو ما شابه ذلك.

وبعد ذلك، حاول تشغيل هذا الرمز:

for x in string.printable: print x,
print
for x in string.printable: print x

والسطر الأول يطبع بنجاح جميع الشخصيات مفصولة بمسافة. شخصيات غريبة اثنين تتحول كما ذكر وأنثى حرف.

والسطر الثاني يطبع بنجاح جميع الشخصيات باستثناء THE LAST مفصولة سطر تغذية. طباعة رمز ذكر. يتم استبدال رمز أنثوية الطابع المفقود (مربع).

وأنا واثق من بيثون لا يقصد به أن يكون المتحيزة ضد المرأة، وذلك ما يعطي مع الفرق؟

هل كانت مفيدة؟

المحلول

وهناك فرق في "طبع" ل "يمكن عرضها على الشاشة". تعرض المحطة الطرفية انخفاض رموز تحكم الطابعة أسكي 0x0B و0x0C كما الرموز من الذكور والإناث لأن هذا هو ما تحتوي هذه المؤشرات في الخط الخاص بك. ووصفت تلك الأحرف بشكل أكثر دقة مثل الجدوال عمودي وشخصيات تغذية النموذج. هاتين الشخصيتين، جنبا إلى جنب مع \ ر \ r و \ ن، كلها قابلة للطباعة، ولم محددة جيدا الأشياء على الطابعة.

scroll top