eval在python中的用法

python中eval函数用法如下:

1、计算字符串中有效的表达式,并返回结果。

2、将字符串转成相应的对象(如list、tuple、dict和string之间的转换)。

3、将利用反引号转换的字符串再反转回对象。

eval函数主要是用来实现python中各种数据类型与str之间的转换。字符串中包含的什么,通过eval函数就可以输出什么。比如字符串里面包含的字典就输出字典,包含的列表就输出列表,但是字符串相应的格式一定要输入正确,否则会报错。

通常在Python中使用这个函数,可以对一个字符串进行操作,最后返回的是一个表示式中的值,可以通过字符函数,也可以将一个字符串转换成一个列表、元组或者是一个字典。

eval函数的应用

1、字符串转换成列表

刚才说了,这个函数是可以将任意的字符串转换成那三种基本的数据类型的。在代码中,a变量存放的是一个字符串类型数据,通过eval函数进行转换,后面b变量存的是列表类型数据。

2、eval返回表达式的值

eavl函数除了对类型进行转换之外,还可以将参数设置为一个表达式,如何对表达式进行返回。



Python eval()函数的功能:将字符串str当成有效的表达式来求值并返回计算结果。

语法:

eval(source[,globals[,locals]]) -> value

参数:

source:一个Python表达式或函数compile()返回的代码对象。

blobals:可选。必须是dictionary

locals:可选。任意map对象

如果提供了globals参数,那么它必须是dictionary类型;如果提供了locals参数,那么它可以是任意的map对象。

Python的全局名字空间存储在一个叫globals()的dict对象中;局部名字空间存储在一个叫locals()的dict对象中。我们可以用print(locals())来查看该函数体内的所有变量名和变量值。

x = 1

y = 1

num = eval("x+y")

print('num',num)

def g():

x = 2

y = 2

num1 = eval("x+y")

print('num1',num1)

num2 =eval('x+y',globals())

print('num2',num2)

num3 = eval("x+y",globals(),locals())

print('num3',num3)

g()

num2

num1 4

num2 2

num3 4

解析:num2因为有globals所以是全局变量,执行后结果为4;num3既有globals又有locals,仅在此情况下,优先采用locals的值,故计算结果是2。



  • python涓璭val鐨勭敤娉
    绛旓細python涓璭val鍑芥暟鐢ㄦ硶濡備笅锛1銆佽绠楀瓧绗︿覆涓湁鏁堢殑琛ㄨ揪寮忥紝骞惰繑鍥炵粨鏋溿2銆佸皢瀛楃涓茶浆鎴愮浉搴旂殑瀵硅薄锛堝list銆乼uple銆乨ict鍜宻tring涔嬮棿鐨勮浆鎹級銆3銆佸皢鍒╃敤鍙嶅紩鍙疯浆鎹㈢殑瀛楃涓插啀鍙嶈浆鍥炲璞°傚嚱鏁颁綔鐢ㄥ煙锛歟val()鍑芥暟骞朵笉浼氬垱寤轰竴涓柊鐨勪綔鐢ㄥ煙锛屽苟涓斿畠鐨勪綔鐢ㄥ煙灏辨槸瀹冩墍鍦ㄧ殑浣滅敤鍩燂紝鏈夋椂鍊欓渶瑕佸皢eval()鍑芥暟...
  • python涓璭val()鍑芥暟鐨勪綔鐢ㄦ槸浠涔?
    绛旓細eval() 浣跨敤鏃剁敤鍒扮殑鍙傛暟锛歟xpression -- 琛ㄨ揪寮忋俫lobals -- 鍙橀噺浣滅敤鍩燂紝鍏ㄥ眬鍛藉悕绌洪棿锛屽鏋滆鎻愪緵锛屽垯蹇呴』鏄竴涓瓧鍏稿璞°俵ocals -- 鍙橀噺浣滅敤鍩燂紝灞閮ㄥ懡鍚嶇┖闂达紝濡傛灉琚彁渚涳紝鍙互鏄换浣曟槧灏勫璞°python涓濡備綍灏嗗璞¤緭鍑哄埌鏍囧噯杈撳嚭娴侊細print鍑芥暟鏄綘瀛ython鎺ヨЕ鍒扮殑绗竴涓嚱鏁帮紝瀹冨皢瀵硅薄杈撳嚭鍒版爣鍑...
  • python涓璭val鐨浣滅敤
    绛旓細1. eval鏄疨ython鐨勫唴缃嚱鏁帮紝鍏锋湁寮哄ぇ鐨勫姛鑳姐傚畠鐨勪綔鐢ㄦ槸灏嗕紶鍏ョ殑瀛楃涓插綋浣滄湁鏁堢殑Python琛ㄨ揪寮忔潵姹傚硷紝骞惰繑鍥炶绠楃粨鏋溿2. eval鍑芥暟鍙互瀹炵幇Python涓list銆乨ict銆乼uple绛夋暟鎹被鍨嬩笌str涔嬮棿鐨勮浆鎹3. eval鍑芥暟鐨勮娉曚负锛歟val(expression)- expression锛氳〃绀鸿璁$畻鐨勮〃杈惧紡銆4. eval鍑芥暟鏈変袱涓彲閫夊弬鏁帮細...
  • python涓璭val鐨勭敤娉
    绛旓細python涓璭val鍑芥暟鐢ㄦ硶濡備笅锛1銆佽绠楀瓧绗︿覆涓湁鏁堢殑琛ㄨ揪寮忥紝骞惰繑鍥炵粨鏋溿2銆佸皢瀛楃涓茶浆鎴愮浉搴旂殑瀵硅薄锛堝list銆乼uple銆乨ict鍜宻tring涔嬮棿鐨勮浆鎹級銆3銆佸皢鍒╃敤鍙嶅紩鍙疯浆鎹㈢殑瀛楃涓插啀鍙嶈浆鍥炲璞°4銆乪val鍑芥暟涓昏鏄敤鏉ュ疄鐜皃ython涓悇绉嶆暟鎹被鍨嬩笌str涔嬮棿鐨勮浆鎹傚瓧绗︿覆涓寘鍚殑浠涔堬紝閫氳繃eval鍑芥暟灏卞彲浠ヨ緭鍑轰粈涔堛
  • python eval鍑芥暟鐢ㄦ硶
    绛旓細涓嬮潰鏄痐eval()`鍑芥暟鐨勫熀鏈鐢ㄦ硶锛歟val(expression[, globals[, locals]])鍙傛暟璇存槑锛歚expression`锛氳繖鏄鎵ц鐨Python琛ㄨ揪寮忥紝鍙互鏄彉閲忋佸嚱鏁拌皟鐢ㄣ佹潯浠惰鍙ャ佸惊鐜鍙ョ瓑銆俙globals`锛氬彲閫夊弬鏁帮紝涓涓彲閫夌殑瀛楀吀锛岀敤浜庢寚瀹氬叏灞鍛藉悕绌洪棿銆傞粯璁や娇鐢ㄥ叏灞鍛藉悕绌洪棿銆俙locals`锛氬彲閫夊弬鏁帮紝涓涓彲閫夌殑瀛楀吀锛岀敤浜...
  • python涓璭val鏄粈涔堟剰鎬
    绛旓細鍦≒ython涓锛eval锛堬級鍑芥暟鐨勪綔鐢ㄦ槸灏嗕竴涓瓧绗︿覆浣滀负琛ㄨ揪寮忚繘琛屾眰鍊硷紝骞惰繑鍥炴眰鍊肩粨鏋溿傚叿浣撴潵璇达紝eval锛堬級鍑芥暟浼氭帴鍙椾竴涓瓧绗︿覆浣滀负杈撳叆锛屽皢瀛楃涓涓殑琛ㄨ揪寮忚绠楀悗杩斿洖璁$畻缁撴灉銆傚鏋滆緭鍏ョ殑瀛楃涓蹭笉鏄悎娉曠殑琛ㄨ揪寮忥紝閭d箞eval锛堬級鍑芥暟灏嗕細鎶涘嚭寮傚父銆備娇鐢╡val锛堬級鍑芥暟鏃堕渶瑕佹敞鎰忓畨鍏ㄩ棶棰橈紝鍥犱负eval锛堬級鍑芥暟鍙互...
  • python涓璭val鍑芥暟鐨勭敤娉璇﹁В
    绛旓細Python涓璭val鐨勭敤娉锛歅ython eval()鍑芥暟鐨勫姛鑳斤細灏嗗瓧绗︿覆str褰撴垚鏈夋晥鐨勮〃杈惧紡鏉ユ眰鍊煎苟杩斿洖璁$畻缁撴灉銆傝娉曪細eval(source[,globals[,locals]]) -> value 鍙傛暟锛歴ource锛氫竴涓狿ython琛ㄨ揪寮忔垨鍑芥暟compile()杩斿洖鐨勪唬鐮佸璞°俠lobals锛氬彲閫夈傚繀椤绘槸dictionary locals锛氬彲閫夈備换鎰弇ap瀵硅薄 濡傛灉鎻愪緵浜唃lobals鍙傛暟锛岄偅涔...
  • python涓璭val()鍑芥暟鐨勪綔鐢ㄦ槸浠涔?
    绛旓細Python涓eval鍑芥暟鐨勪綔鐢 鍦≒ython涓锛宍eval`鍑芥暟涓昏鐢ㄤ簬鎵ц涓涓瓧绗︿覆琛ㄨ揪寮忥紝骞惰繑鍥炶〃杈惧紡鐨勭粨鏋溿傚畠鑳藉灏嗕紶鍏ョ殑瀛楃涓蹭綔涓篜ython浠g爜杩涜瑙f瀽鍜屾墽琛屻傝缁嗚В閲婂涓嬶細1. 鎵ц瀛楃涓茶〃杈惧紡 `eval`鍑芥暟鑳藉璁$畻骞惰繑鍥炲瓧绗︿覆涓殑Python琛ㄨ揪寮忕殑鍊笺傝繖鎰忓懗鐫浣犲彲浠ラ氳繃璇ュ嚱鏁板姩鎬佸湴鎵ц浠g爜锛屾棤闇鍦ㄤ唬鐮佷腑纭...
  • python鐨別val鏄粈涔
    绛旓細鐢ㄤ簬璁$畻琛ㄨ揪寮忕殑鍊硷紝瀹冩湁涓墠鎻愶紝Python浠g爜鍙兘鏄崟涓繍绠楄〃杈惧紡锛屽畠涓嶆敮鎸佷换鎰忓舰寮忕殑璧嬪兼搷浣滐紝涔熶笉鑳芥槸澶嶆潅鐨勯昏緫浠g爜銆傛牸寮忓涓嬶細eval(expression,globals=None,local=None);expression鏄繀閫夊弬鏁帮紝瀛楃涓层乧ode瀵硅薄瀹炰緥閮藉彲浠;globals鏄彲閫夊弬鏁帮紝鐢ㄤ簬瀛樻斁鍏ㄥ眬鍙橀噺锛屽鏋滀娇鐢紝蹇呴』鏄竴涓瓧鍏稿璞;locals...
  • python褰撲腑鐨別val()鍑芥暟鏄捣浠涔堜綔涓氱殑?
    绛旓細鍦╬ython涓,eval()鏄瘎浼板嚱鏁,鐢ㄥ鏄幓鎺夋渶澶栧眰寮曞彿,鐒跺悗杩涗竴姝ュ鐞 瑙i噴:python涓 input()榛樿褰曞叆鐨勬槸瀛楃涓茬被鍨 濡傛灉鐢ㄦ埛杈撳叆浜123,鍏跺疄璇诲彇鐨勬槸瀛楃涓"123"杩欐椂鍊欓渶瑕乪val(input())鏉ヨ幏鍙栨暣鏁123,鎵嶈兘杩涜杩涗竴姝ョ殑璁$畻 涔嬫墍浠ヨeval()鐢ㄥ鏄幓鎺夋渶澶栧眰寮曞彿鏄洜涓,涓句緥璇存槑鍚,eval(" '浣犲ソ' ") ...
  • 扩展阅读:python中eval表示什么 ... int在python中的用法 ... python中int和eval用法 ... eval python 菜鸟 ... python中len的用法例子 ... python中format啥意思 ... python中eval函数用法 ... python的eval的功能 ... value在python中的用法 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网