首页 > 解决方案 > 如何使输入语句可选?

问题描述

当我尝试编写一个程序来计算对 Python 的简单兴趣时,我遇到了一个小问题。

def si(p,r=100,t=2):
    return (p*r*t)/100
x=float(input("Enter principal amount"))
y=float(input("Enter rate"))
z=float(input("Enter time"))
print (si(x,y,z))

我想让 y 和 z 可选。知道我该怎么做吗?如果我将其留空并按 Enter,则会显示错误。

标签: pythonpython-3.x

解决方案


最简单的方法是使用or def si(p,r,t): return (p r t)/100

x = float(input("Enter principal amount: "))
y = float(input("Enter rate: ") or 100)
z = float(input("Enter time: ") or 2)

print (si(x,y,z))

Enter principal amount: 1
Enter rate: 
Enter time: 
2.0

但正确的方法是在将输入转换为浮点数之前验证输入

def si(p,r=100,t=2): 
    return (p*r*t)/100 

x = input("Enter principal amount: ") 
y = input("Enter rate: ") 
z = input("Enter time: ") 

def validate(param): 
    return float(param) if param else 1

print (si(validate(x), validate(y), validate(z))) 

输出:

Enter principal amount: 1
Enter rate: 
Enter time: 
0.01

推荐阅读