\ ص \ ن ضد \ ن في وظيفة وحدة التقييم الثعبان

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

  •  05-07-2019
  •  | 
  •  

سؤال

وماذا ظيفة حدة التقييم لا يعمل مع \ ص \ ن ولكن مع \ ن. فمثلا وحدة التقييم ( "لأنني في مجموعة (5): \ ص \ ن طباعة 'مرحبا'") لا يعمل وحدة التقييم ( "لأنني في مجموعة (5): \ ن طباعة 'مرحبا'") يعمل

وأنا أعلم أنه لا يوجد سبب المشكلة باستخدام استبدال ( "\ ص"، "") يتم تصحيح، ولكن هناك من يعرف لماذا يحدث؟

و- Edit-- يا! آسف، بالضبط، قصدته إكسيك. ظهرت الإرجاع لأنني القراءة من ناحية النص HTML عبر وظيفة (أنا على مربع لينكس). الآن هو أكثر وضوحا، وذلك بفضل الجميع.

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

المحلول

لديك تعريف غريب من "العمل":

>>> eval("for i in range(5):\n print 'hello'")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1
    for i in range(5):
      ^
SyntaxError: invalid syntax
>>> 

وأنا لست متأكدا لماذا كنت تستخدم eval - وأظن تقصد exec. التعبيرات والتصريحات هي كيانات مختلفة اختلافا جذريا في بيثون - eval يتعامل فقط مع تعبيرات (تعبير عارية <م> هو ببيان أيضا، لذلك exec يمكن التعامل معها وكذلك البيانات الأخرى)

وتطرق إلى exec، ويدرس الوضع بأنه مرتكب بيثون الأساسية، واعتقد انها قاصر سوء تصميم: تماما مثل مسافات (زائدة عن الحاجة وغير مجدية)، علامات وشكل يغذي فقط قبل أن يتم قبول NEWLINE وتجاهلها، لذلك ينبغي (تماما كما زائدة عن الحاجة وغير مجدية) يكون الإرجاع. أعتذر: أعتقد أننا لم يفكر أبدا في أي وقت مضى أن شخصا ما قد <م> تريد لوضع الإرجاع هناك - ولكن بعد ذلك، فإنه لا يجعل أي إحساس أكثر لديك على سبيل المثال شكل يتغذى هناك، ونحن لا نقبل <م> أن ... لذلك لا أرى أي مبررات لرفض الإرجاع (أو غيرها من يونيكود غير ANSI بيضاء، أما، الآن أنه في بيثون 3 نقبل تعسفية عدم يونيكود ANSI أحرف أبجدية رقمية في معرفات).

إذا كنت الرعاية، يرجى فتح قضية في قضية تعقب بايثون، و (منع معارضة غير متوقعة من قبل commiters آخر) أعتقد أنني أستطيع الحصول على انها ثابتة من بيثون 3.2 (التي ينبغي أن تكون في 12 و 18 شهرا - وهذا تقدير [تخمين أبلغ]، ليس وعدا، -)

نصائح أخرى

هل يعني إكسيك حدة التقييم أو؟ الرجاء نشر بالضبط ما قمت بتشغيله، بالإضافة إلى traceback والخطأ الرسالة كاملة.

والمشكلة هي على الأرجح لأن قواعد اللغة بيثون يقول أن خطوط يتم إنهاؤها من قبل أسطر جديدة ( '\ ن')، وليس تسلسل حرفين '\ ص \ ن'.

في عام، فإنه سيكون أكثر أمانا للاستخدام استبدال ( '\ ص \ ن'، '\ ن') في حالة هناك معنى '\ ص "في مكان ما هناك. سيكون من الأفضل إذا لم يكن لديك '\ ص "هناك في المقام الأول ... كيف حالك الحصول على النص - قراءة الثنائية على مربع ويندوز ؟؟

والحديث عن السلامة، يجب أن تكون حذرا حول استخدام وحدة التقييم أو إكسيك على أي القانون القديم تم الحصول عليها من العدو ممكن.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top