是否可以仅使用用户输入的部分内容,而忽略未给出输入的部分?
假设我想计算一个充满液体的圆柱体的使用体积。我会要求用户输入,例如圆柱体的体积和圆柱体的高度一起给出,那么程序应该能够返回圆柱体的直径,周长,表面积,...
假设用户只能提供直径和填充百分比,程序应该能够返回与之前相同的内容。
我尝试按如下方式请求输入:
volume = float(input("volume in qubic meters: ") or None
diameter = float(input("tankdiameter: ") or None
# etc...
然后我会写一个类:
class object:
__init__(volume, diameter, heigth, fill_percentage, radius, circumference, surface_area,...)
self.volume = volume
# etc...
接下来,类中将有函数来计算未提供的项目,例如,如果给出高度和直径,则会计算体积。但我被用户的输入困住了。 最终的想法是出现一个 GUI,其中输入字段链接到代码。
有什么建议吗?
您可以尝试以下方法:
try:
a = float(input("a: "))
except ValueError:
a = None
如果用户未输入任何内容或字符串,则将 a 设置为 None。因此,输入 true 和 'asdf' 将不起作用,但输入 22、21.0、22.3 将起作用。 (整数值仅转换为 x.0)
如果愿意,您可以将其放入函数中,以 x 作为参数,设置 x 的值,然后返回它。取决于您的用例。
希望这有帮助。