如何将数值转换为百分比 运行代码报TypeError的解决方法
问题根因
抛出类型错误、输出不符合预期的核心原因有两点:
- 函数名拼写错误:Python标准打印函数为全小写的
print,你代码中大写开头的Print会被当前运行环境(通常是PySpark类大数据计算环境)识别为列处理API,该API仅接收字符串或列对象作为入参,传入普通数值时就会触发你看到的TypeError: Invalid argument, not a string or column报错。 - 输出格式不匹配:原打印语句缺少预期文本中的
is字段,数值和百分号之间多了冗余空格,数值保留精度也和预期输出要求不符。
修正方案
推荐直接使用f-string做格式化输出,不需要额外调用round函数,在格式化阶段直接控制小数位数即可,修正后可运行代码如下:
A = 860 B = 123 C = (B / A) * 100 print(f"The proportion of C is {C:.1f}%")
如果你习惯用round函数处理精度,也可以使用如下写法,注意添加sep=""参数去掉print默认拼接参数时插入的空格,避免数值和百分号之间出现空隙:
A = 860 B = 123 C = (B / A) * 100 print("The proportion of C is ", round(C, 1), "%", sep="")
运行结果
执行上述任意一段代码,都将得到完全匹配预期的输出:
The proportion of C is 14.3%
内容的提问来源于stack exchange,提问作者umagba alex
相关产品推荐
相关产品推荐

