python eval 转换k m到乘法计算的操作

编辑: admin 分类: python 发布时间: 2021-12-24 来源:互联网

原数据

在这里插入图片描述

lambda函数处理

我之前写了各种if substr函数,各种报错

正确到热泪盈眶的函数

data['Followers/Fans'] = data['Followers/Fans'].str.replace('k|K','*1000').str.replace('m|M','*1000000').fillna('0')
data['Followers/Fans'] = data['Followers/Fans'].apply(eval)

报错函数

# def trans(x):
#     x = str(x)
#     x = x.strip() # 去除首尾空格
#     if (x[-1]  == 'k' or x[-1]  == 'K') :
#         return float(x[0:-1])*1000
#     elif (x[-1]  == 'M' or x[-1]  == 'm'):
#         return float(x[0:-1])*1000000
#     else:
#         return x

eval() 函数

eval() 函数用来执行一个字符串表达式,并返回表达式的值。

补充:python中的eval函数及求四则运算

输入描述:

输入一个表达计算式

输出描述:

得到输出结果

例子

输入:3+2*{1+2*[-4/(8-6)+7]}

输出:25

代码:

功能1:

eval()函数能将字符串string对象转化为有效的表达式参与求值运算,并返回计算结果

while True:
    try:
        s = str(input())
        print(eval(s))
    except:
        break

功能2:

eval()函数去掉参数最外侧引号并执行余下语句的函数

print(eval("'Hello world'")) # 输出 Hello world
#print(eval("Hello world"))  # 因为eval()函数去掉外部的双引号后,成为变量Hello world,而之前没有定义过该变量,所以会报错。
print(eval('"1+2"'))         # 输出1+2

以上为个人经验,希望能给大家一个参考,也希望大家多多支持hwidc。

【本文来源:武汉网站推广 转载请保留连接】