【发布时间】:2022-01-03 19:14:08
【问题描述】:
我试图让代码要求用户选择 k 或 lambda,然后代码需要询问 lambda 的比例参数(如果选择了 k)或 k 的形状参数(如果选择了 lambda )。从这里开始,我需要代码来要求用户输入以获取最小值。值,最大值k(或 lambda)的值和增量取决于他们最初选择的内容。
例如,输出会是:
您想绘制在以下方面变化的曲线:形状参数 (k) 或比例参数 (lambda)?
请选择:(用户输入-k)
请输入 lambda 的比例参数:(用户输入 - 2)
请输入最大值。值,最小值k的值和增量:
最大k值(>0):(用户输入-1)
最小k值(>min.k值):(用户输入-3)
k 的增量(在最小值和最大值之间):(用户输入 - 2)
这是我到目前为止所得到的
#ask user if they want a fixed value of k or lambda
print("Do you wish to plot curves which vary in:")
print("Shape parameter (k) or scale parameter (lambda)?")
def get_klambda():
global klambda
while True:
try:
klambda = str(input("Please select "))
if (klambda =="k"):
k = input("Please enter a scale parameter for lambda: ")
if k <=0:
break
raise ValueError()
except ValueError:
print("The scale parameter for lambda must be greater than 0!")
break
if (klambda=="lambda"):
lamda = input("Please enter a shape parameter for k: ")
if lamda <=0:
break
raise ValueError()
except ValueError:
print("The shape parameter for k must be greater than 0!")
break
raise ValueError()
except ValueError:
print("Please enter either (k) or (lambda)")
get_klambda()
#get min, max and inc of k
if (klambda == "k"):
print("Please enter the min. value, max. value and increment for the shape parameter (K) ")
def get_kmin():
global kmin
while True:
try:
kmin = float(input("Please enter minimum k value: "))
if kmin >=0.1:
break
raise ValueError()
except ValueError:
print("The minimum k value must be greater than 0!")
get_kmin()
在 k 之后,我不断收到语法错误(ValueError 除外:)
我正在使用 Python 3 请帮忙。
【问题讨论】:
-
您的缩进不正确。
except未与try对齐。 -
记住
input总是返回一个字符串。你永远不需要做str(input(...)),但如果你真的想要一个整数(比如k和lamda),那么你必须做int(input(...))。 -
不要使用这样的异常。异常用于与外部函数通信。在这种情况下,只需使用
if语句。我将在下面展示一个示例。 -
啊,除了尝试修复它之外移动...我现在遇到另一个问题,它在 print("请输入 (k) 或 (lambda)" 上方显示“除了 ValueError:”。 . 错误是“意外缩进”,但无论我将它移到哪里,错误仍然存在
-
非常感谢蒂姆!
标签: python python-3.x python-3.7