python当中的eval()函数是起什么作业的? python当中的eval()函数是起什么作业的
python\u5f53\u4e2d\u7684eval\uff08\uff09\u51fd\u6570\u662f\u8d77\u4ec0\u4e48\u4f5c\u7528\uff1feval\u51fd\u6570\u5c06\u5b57\u7b26\u4e32\u5f53\u6210\u6709\u6548Python\u8868\u8fbe\u5f0f\u6765\u6c42\u503c\uff0c\u5e76\u8fd4\u56de\u8ba1\u7b97\u7ed3\u679c
x = 1eval('x+1')eval('x==1')\u4e0e\u4e4b\u5bf9\u5e94\u7684repr\u51fd\u6570\uff0c\u5b83\u80fd\u591f\u5c06Python\u7684\u53d8\u91cf\u548c\u8868\u8fbe\u5f0f\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32\u8868\u793a
repr(x==1)repr(x+1)
eval\u51fd\u6570\u5c06\u5b57\u7b26\u4e32\u5f53\u6210\u6709\u6548Python\u8868\u8fbe\u5f0f\u6765\u6c42\u503c\uff0c\u5e76\u8fd4\u56de\u8ba1\u7b97\u7ed3\u679c
\u4f8b\u5b50
x=0l='x+1'print(eval(l))\u7ed3\u679c\u662f1
在python中,eval()是评估函数,用处是去掉最外层引号,然后进一步处理
解释:python中 input()默认录入的是字符串类型
如果用户输入了123,其实读取的是字符串"123"
这时候需要eval(input())来获取整数123,才能进行进一步的计算
之所以说eval()用处是去掉最外层引号是因为,
举例说明吧,
eval(" '你好' ") # 会输出字符串"你好"
eval("print("WOW")") # 经过评估函数处理之后 会输出字符串"WOW"
eval函数将字符串当成有效Python表达式来求值,并返回计算结果
x = 1
eval('x+1')
eval('x==1')
与之对应的repr函数,它能够将Python的变量和表达式转换为字符串表示
repr(x==1)
repr(x+1)
eval(str [,globals [,locals ]])函数将字符串str当成有效Python表达式来求值,并返回计算结果。
eval参数是一个字符串, 可以把这个字符串当成表达式来求值,
比如'x+1'就是一个表达式字符串
>>> x = 1
>>> print eval('x+1')
2
绛旓細Python eval鍑芥暟閫氬父鐢ㄤ簬璁$畻鍦ㄥ瓧绗︿覆涓紶閫掔殑Python琛ㄨ揪寮忕殑鍊笺傚叾鍩烘湰璇硶涓猴細eval(expression, globals=None, locals=None)鍦ㄤ互涓婂弬鏁颁腑锛宔val鍑芥暟鎺ュ彈涓変釜鍙傛暟锛屽叾涓璭xpression鏄璁$畻鐨凱ython琛ㄨ揪寮忥紝globals鍜宭ocals鍒嗗埆鏄敤浜庡湪expression涓绠楀叏灞鍜屽眬閮ㄥ彉閲忕殑鍛藉悕绌洪棿銆傞粯璁ゆ儏鍐典笅锛岃〃杈惧紡鍦ㄥ綋鍓嶅懡鍚嶇┖闂寸殑...
绛旓細鍦Python涓锛eval锛堬級鍑芥暟鐨勪綔鐢ㄦ槸灏嗕竴涓瓧绗︿覆浣滀负琛ㄨ揪寮忚繘琛屾眰鍊硷紝骞惰繑鍥炴眰鍊肩粨鏋溿傚叿浣撴潵璇达紝eval锛堬級鍑芥暟浼氭帴鍙椾竴涓瓧绗︿覆浣滀负杈撳叆锛屽皢瀛楃涓涓殑琛ㄨ揪寮忚绠楀悗杩斿洖璁$畻缁撴灉銆傚鏋滆緭鍏ョ殑瀛楃涓蹭笉鏄悎娉曠殑琛ㄨ揪寮忥紝閭d箞eval锛堬級鍑芥暟灏嗕細鎶涘嚭寮傚父銆備娇鐢╡val锛堬級鍑芥暟鏃堕渶瑕佹敞鎰忓畨鍏ㄩ棶棰橈紝鍥犱负eval锛堬級鍑芥暟鍙互鎵...
绛旓細eval鏄Python鐨涓涓唴缃嚱鏁帮紝杩欎釜鍑芥暟鐨勪綔鐢ㄦ槸锛岃繑鍥炰紶鍏ュ瓧绗︿覆鐨勮〃杈惧紡鐨勭粨鏋溿傚嵆鍙橀噺璧嬪兼椂锛岀瓑鍙峰彸杈圭殑琛ㄧず鏄啓鎴愬瓧绗︿覆鐨勬牸寮忥紝杩斿洖鍊煎氨鏄繖涓〃杈惧紡鐨勭粨鏋溿eval()鍑芥暟鐢ㄦ潵鎵ц涓涓瓧绗︿覆琛ㄨ揪寮忥紝骞惰繑鍥炶〃杈惧紡鐨勫硷紝杩樺彲浠ユ妸瀛楃涓茶浆鍖栦负list銆乼uple銆乨ict銆俥val鍑芥暟鐨勮娉曪細eval(expression[锛実lobals[...
绛旓細eval鐢ㄦ潵灏嗕紶鍏ョ殑瀛楃涓蹭綔涓Python琛ㄨ揪寮忔潵鎵ц锛屽苟杩斿洖鎵ц缁撴灉銆傚叿浣撳姛鑳藉拰鐢ㄩ斿寘鎷細璁$畻瀛楃涓涓殑鏁板琛ㄨ揪寮忋佹墽琛岀畝鍗曠殑閫昏緫琛ㄨ揪寮忋佽皟鐢ㄥ嚱鏁版垨鏂规硶锛堥氳繃瀛楃涓插舰寮忎紶閫掑嚱鏁板悕鍜屽弬鏁帮級銆佽闂垨淇敼褰撳墠浣滅敤鍩熷唴鐨勫彉閲忋備娇鐢eval()鍑芥暟鏃跺繀椤绘牸澶栧皬蹇冿紝瀹冨厑璁告墽琛屼换浣昉ython浠g爜锛屽甫鏉ヤ簡瀹夊叏闅愭偅锛屽綋鎵撶畻澶勭悊...
绛旓細eval(expression])expression锛氳〃杈惧紡銆俫lobals锛氾紙鍙夊弬鏁帮級鍙橀噺浣滅敤鍩燂紝鍏ㄥ眬鍛藉悕绌洪棿锛屽鏋滆鎻愪緵锛屽垯蹇呴』鏄竴涓瓧鍏稿璞°俵ocals锛氾紙鍙夊弬鏁帮級鍙橀噺浣滅敤鍩燂紝灞閮ㄥ懡鍚嶇┖闂达紝濡傛灉琚彁渚涳紝鍙互鏄换浣曟槧灏勫璞°傜畝浠嬶細eval鍑芥暟涓昏鏄敤鏉ュ疄鐜python涓鍚勭鏁版嵁绫诲瀷涓巗tr涔嬮棿鐨勮浆鎹傚瓧绗︿覆涓寘鍚殑浠涔堬紝閫氳繃eval...
绛旓細鐢ㄤ簬璁$畻琛ㄨ揪寮忕殑鍊硷紝瀹冩湁涓墠鎻愶紝Python浠g爜鍙兘鏄崟涓繍绠楄〃杈惧紡锛屽畠涓嶆敮鎸佷换鎰忓舰寮忕殑璧嬪兼搷浣滐紝涔熶笉鑳芥槸澶嶆潅鐨勯昏緫浠g爜銆傛牸寮忓涓嬶細eval(expression,globals=None,local=None);expression鏄繀閫夊弬鏁帮紝瀛楃涓层乧ode瀵硅薄瀹炰緥閮藉彲浠;globals鏄彲閫夊弬鏁帮紝鐢ㄤ簬瀛樻斁鍏ㄥ眬鍙橀噺锛屽鏋滀娇鐢紝蹇呴』鏄竴涓瓧鍏稿璞;locals...
绛旓細eval鍦python涓殑鐢ㄦ硶濡備笅锛氬伐鍏凤細鍗庣澶╅4銆乄indows10銆乸ython3.11銆1銆乪val鏂规硶鐨勯氱敤璇硶涓猴細eval(source)->value銆2銆佸畠鐨勪綔鐢ㄤ富瑕佹槸鍔ㄦ佹墽琛岀涓涓弬鏁扮殑琛ㄨ揪寮忥紝鑾峰緱璁$畻缁撴灉绛夈3銆佹瘮濡俥val("12")锛屽氨鏄墽琛岃绠1鍔2鐨勫硷紝缁撴灉涓3銆4銆佸鏋渆val鐨勫弬鏁版槸涓涓函瀛楃涓诧紝鏂规硶杩斿洖鐨勪篃灏辨槸杩欎釜...
绛旓細eval(expression[, globals[, locals]])鍙傛暟璇存槑锛歚expression`锛氳繖鏄鎵ц鐨Python琛ㄨ揪寮忥紝鍙互鏄彉閲忋佸嚱鏁拌皟鐢ㄣ佹潯浠惰鍙ャ佸惊鐜鍙ョ瓑銆俙globals`锛氬彲閫夊弬鏁帮紝涓涓彲閫夌殑瀛楀吀锛岀敤浜庢寚瀹氬叏灞鍛藉悕绌洪棿銆傞粯璁や娇鐢ㄥ叏灞鍛藉悕绌洪棿銆俙locals`锛氬彲閫夊弬鏁帮紝涓涓彲閫夌殑瀛楀吀锛岀敤浜庢寚瀹氬眬閮ㄥ懡鍚嶇┖闂淬傞粯璁や娇鐢ㄥ眬閮ㄥ懡鍚...
绛旓細Python涓eval鐨勭敤娉曪細Python eval()鍑芥暟鐨勫姛鑳斤細灏嗗瓧绗︿覆str褰撴垚鏈夋晥鐨勮〃杈惧紡鏉ユ眰鍊煎苟杩斿洖璁$畻缁撴灉銆傝娉曪細eval(source[,globals[,locals]]) -> value 鍙傛暟锛歴ource锛氫竴涓狿ython琛ㄨ揪寮忔垨鍑芥暟compile()杩斿洖鐨勪唬鐮佸璞°俠lobals锛氬彲閫夈傚繀椤绘槸dictionary locals锛氬彲閫夈備换鎰弇ap瀵硅薄 濡傛灉鎻愪緵浜唃lobals鍙傛暟锛岄偅涔...
绛旓細eval鍑芥暟鐨勫熀鏈娉:eval(expression[, globals[, locals]])鍏朵腑锛宔xpression鏄渶瑕佽浆鎹负Python浠g爜鐨勫瓧绗︿覆锛実lobals鍜宭ocals鍒嗗埆鏄叏灞鍜屽眬閮ㄥ彉閲忕殑鍛藉悕绌洪棿銆傚鏋滄病鏈夋彁渚沢lobals鍜宭ocals锛宔val灏嗕娇鐢ㄥ綋鍓嶆墽琛屽懡浠ょ殑鍛藉悕绌洪棿銆備笅闈㈡槸涓涓娇鐢╡val鍑芥暟鐨勭畝鍗曚緥瀛愶細result = eval(\'2 + 3\')鍦ㄨ繖涓緥瀛愪腑...