python - 如何在python变量中传递空值或任何其他方式
问题描述
我正在尝试将 excel 公式转换为 python 脚本,但有一次我很挣扎。excel中有一个单元格没有任何值,但单元格是空的,因为这个单元格实际上不需要输入任何值,有时也需要,所以基于空单元格它会产生不同的值,如果我输入该单元格中的任何值都会产生不同的值。所以我在python中尝试同样的事情来传递空值并获得所需的输出。这是我尝试过但对我不起作用的变量:-
varpbmt = Decimal(input('Enter pbmt')).quantize(Decimal('.01'), rounding = ROUND_HALF_EVEN)
我得到的错误如下所示 -
Enter FlagE-406A | T1
Enter unique idE-406A | T1
Enter mt1.41
Enter pbmt <------ **[here I'm pressing enter from keyboard expecting it passing empty]**
Traceback (most recent call last):
File "C:\E-RBI\Testing Pyrhon\5_1_loss.py", line 65, in <module>
print(fiftyeoneloss())
File "C:\E-RBI\Testing Pyrhon\5_1_loss.py", line 16, in fiftyeoneloss
PrevBaselineMeasuredThickness = Decimal(input('Enter pbmt')).quantize(Decimal('.01'), rounding = ROUND_HALF_EVEN)
InvalidOperation: [<class 'decimal.ConversionSyntax'>]
解决方案
如果用户不输入任何内容, varpbmt 究竟应该是什么?
varpbmt = Decimal(input('Enter pbmt') or 0.0).quantize(Decimal('.01'), rounding = ROUND_HALF_EVEN)
否则,如果用户没有输入任何内容,您可以使用“或”来定义默认值。
如果您想捕获一个空字符串并执行不同的操作:
ipt = input('Enter pbmt')
if ipt:
varpbmt = Decimal(ipt).quantize(Decimal('.01'), rounding = ROUND_HALF_EVEN)
else: # Case someone just hits ENTER
DO SOMETHING COMPLETLY DIFFERENT HERE
推荐阅读
- r - 如何在ggplot中显示不同条件下二元结果的变化比例?
- python - 如何给出包中文件的路径?
- google-cloud-platform - 如何在 GCP 中访问“访问令牌页面”
- python - 如何使用自定义类分层 sklearn kFold?
- python - 将浮点数除以零
- java - 在 docker conatiner 中下载 gradle 包装器时出现 UnknownHostException
- java - Java 依赖类无法通过 System.getProperty() 访问属性
- apache-spark - Spark S3 提交者没有写任何东西
- bash - 具有动态级别数(模式/变量)的案例
- javascript - How to make custom iterator interface iterable in JavaScript