簡體   English   中英

Python Eval / Exec函數無法解析

[英]Python Eval/Exec function not resolving

我正在嘗試使用eval函數執行循環。 它給出了語法錯誤

list_subjects = (element.upper() for element in list(score_card_data['subject_id']))
for i,sub in enumerate(list_subjects) :
    print(("bins_{1:s}").format(i,sub))
    print("list(score_card_data.loc[score_card_data['subject_id'] == {1:s}, 'bin_list'])").format(i,sub)
    eval("("bins_{1:s}").format(i,sub) = "list(score_card_data.loc[score_card_data['subject_id'] == {1:s}, 'bin_list'])").format(i,sub)")    


  File "<ipython-input-192-529c79a094e4>", line 5
    eval("("bins_{1:s}").format(i,sub) = "list(score_card_data.loc[score_card_data['subject_id'] == {1:s}, 'bin_list'])").format(i,sub)")
                ^
SyntaxError: invalid syntax  

如何在一個eval函數中解析2條打印語句

您會收到語法錯誤,因為您嘗試在用於在代碼中定界字符串文字的字符串中使用相同類型的引號。

您有以下選擇:

  • 在字符串中使用單引號,並在雙引號中定界:

     eval("' '.join('some', 'words')") 
  • 在字符串中使用雙引號和單引號將其定界:

     eval('" ".join("some", "words")') 
  • 使用字符串內的任何引號和任何引號(當然在左側和右側使用相同的類型)來定界,但使用反斜杠將字符串內的所有引號引起來:

     eval('\\' \\'.join(\\'some\\', \\'words\\')') eval("\\" \\".join(\\"some\\", \\"words\\")") 
  • 使用字符串內的任何引號和“三重引號”(當然,在左側和右側使用相同類型的三個單引號'''或三個雙引號""" )來定界:

     eval("""" ".join("some", "words")""") eval("""' '.join('some', 'words')""") eval('''' '.join('some', 'words')''') eval('''" ".join("some", "words")''') 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM