解決輸入函數錯誤:'NameError: name '...'' Not Defined
Python 中的輸入函數,特別是在版本中3.x 之前的版本在處理使用者輸入時提出了特殊的挑戰。您遇到的錯誤「NameError:name '...''未定義」源自於輸入的評估性質。
在Python 2.7中,輸入不僅接受使用者輸入,也將其評估為Python 表達式。這意味著,如果您輸入變數名稱,例如“dude”,輸入將嘗試將其解釋為程式中的綁定變數。如果不存在這樣的變量,就會發生錯誤。
避免 Python 2.7 輸入的陷阱
為了避免這種潛在的安全隱患,請考慮切換到 raw_input, Python 3.x 中輸入的前身。 raw_input 只是讀取使用者輸入而不執行它。
在 Python 3.x 中,input 有效地取代了 raw_input,提供相同的功能。但是,Python 3.x 文件警告說,如果您需要舊的輸入行為,可以使用 eval(input())。
理解區別
為了說明input 和raw_input 之間的區別,讓我們考慮以下Python 2.7 代碼:
dude = "thefourtheye" input_variable = input("Enter your name: ")
當輸入「 dude”作為輸入,input_variable 將被分配值“thefourtheye”,因為dude是程式中定義的變數。
將其與以下程式碼進行對比:
input_variable = raw_input("Enter your name: ")
中在這種情況下,input_variable將被分配字串「dude」本身,而不進行任何評估。
安全性注意事項
Python 2.7 輸入的評估功能引發了安全問題。例如,如果 os 模組已匯入且使用者輸入“os.remove('/etc/hosts')”,它將作為函數呼叫執行。為了減輕這些風險,請務必考慮使用 raw_input 以確保使用者輸入不會無意中被評估為代碼。
以上是為什麼我的 Python 輸入函數會拋出'NameError:名稱'...'未定義”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python是解釋型語言,但也包含編譯過程。 1)Python代碼先編譯成字節碼。 2)字節碼由Python虛擬機解釋執行。 3)這種混合機制使Python既靈活又高效,但執行速度不如完全編譯型語言。

UseeAforloopWheniteratingOveraseQuenceOrforAspecificnumberoftimes; useAwhiLeLoopWhenconTinuingUntilAcIntiment.forloopsareIdealForkNownsences,而WhileLeleLeleLeleLeleLoopSituationSituationsItuationsItuationSuationSituationswithUndEtermentersitations。

pythonloopscanleadtoerrorslikeinfiniteloops,modifyingListsDuringteritation,逐個偏置,零indexingissues,andnestedloopineflinefficiencies

forloopsareadvantageousforknowniterations and sequests,供應模擬性和可讀性;而LileLoopSareIdealFordyNamicConcitionSandunknowniterations,提供ControloperRoverTermination.1)forloopsareperfectForeTectForeTerToratingOrtratingRiteratingOrtratingRitterlistlistslists,callings conspass,calplace,cal,ofstrings ofstrings,orstrings,orstrings,orstrings ofcces

pythonisehybridmodeLofCompilation和interpretation:1)thepythoninterpretercompilesourcecececodeintoplatform- interpententbybytecode.2)thepythonvirtualmachine(pvm)thenexecutecutestestestestestesthisbytecode,ballancingEaseofuseEfuseWithPerformance。

pythonisbothinterpretedAndCompiled.1)它的compiledTobyTecodeForportabilityAcrosplatforms.2)bytecodeisthenInterpreted,允許fordingfordforderynamictynamictymictymictymictyandrapiddefupment,儘管Ititmaybeslowerthananeflowerthanancompiledcompiledlanguages。

在您的知識之際,而foroopsareideal insinAdvance中,而WhileLoopSareBetterForsituations則youneedtoloopuntilaconditionismet

ForboopSareSusedwhenthentheneMberofiterationsiskNownInAdvance,而WhileLoopSareSareDestrationsDepportonAcondition.1)ForloopSareIdealForiteratingOverSequencesLikelistSorarrays.2)whileLeleLooleSuitableApeableableableableableableforscenarioscenarioswhereTheLeTheLeTheLeTeLoopContinusunuesuntilaspecificiccificcificCondond


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver Mac版
視覺化網頁開發工具

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3漢化版
中文版,非常好用