zoukankan      html  css  js  c++  java
  • Python之eval函数的用法

    功能:将字符串str当成有效的表达式来求值并返回计算结果。
    语法: eval(source[, globals[, locals]]) -> value
    参数:
    source:一个Python表达式或函数compile()返回的代码对象
    globals:可选。必须是dictionary
    locals:可选。任意map对象

    以下是 eval() 方法的语法:

    str = '{'code': 200, 'message': '中国', 'id': 'xiaxia', 'entries_id': 'a6a4b870-b22c-5be8-8cbb-728ae1107bfc', 'username': 'Appium', 'password': 'Kk261203', 'user_id': '77eb3409-aada-4ceb-a3a6-872a4608aa42', 'clientId': 'PbCREuPr3iaFANEDjtiEzXooFl7mXGQ7', 'access_token': 'Bearer'}'
    
    #将字符串转换为字典
    data_dict= eval(str)
    print(data_dict)
    username = data_dict.get("username")
    password = data_dict.get("password")
    

    示例1

    >>> a = '[1,2,3]'
    >>> type(a)
    <class 'str'>
    >>> type(eval(a)) #将字符串转换为列表
    <class 'list'>
    >>> b = '1000'
    >>> type(b)
    <class 'str'>
    >>> type(eval(b)) #将字符串转换为整形
    <class 'int'>
    >>> c = "{1: 'a', 2: 'b'}"
    >>> type(c)
    <class 'str'>
    >>> type(eval(c)) #将字符串转换为字典
    <class 'dict'>
    

    示例2

    比如说下面的应用场景,输入人民币值转换为美元,中间有个汇率计算,input()返回的值为字符串,所以该值不能进行后面的汇率计算。

    rmb_value = input('请输入人民币金额:')
    usd_vs_rmb = 6.77
    usd_value = rmb_value / usd_vs_rmb
    print('美元金额是:',usd_value)
    

    运行结果报错

    Traceback (most recent call last):
      File "h.py", line 4, in <module>
        usd_value = rmb_value / usd_vs_rmb
    TypeError: unsupported operand type(s) for /: 'str' and 'float'
    

    加入eval()转换函数

    rmb_value = input('请输入人民币金额:') #返回字符型
    rmb_value = eval(rmb_value) #转换为数字
    usd_vs_rmb = 6.77
    usd_value = rmb_value / usd_vs_rmb
    print('美元金额是:',usd_value)
    

    运行结果

    请输入人民币金额:5
    美元金额是: 0.7385524372230429
    
  • 相关阅读:
    bootstrap学习(全局CSS样式)(二)
    第八周
    bootstrap学习(全局CSS样式)(一)
    变量的解构赋值 ES6
    ES6的let和const命令
    github之怎么上传本地项目
    浅谈js对象及对象属性
    解决sublime text3 文件名,小框框的办法
    web04--cookie
    web03--session
  • 原文地址:https://www.cnblogs.com/gqv2009/p/12699084.html
Copyright © 2011-2022 走看看