使用这个小转换器有点挣扎,我无法让我超越第一个输入,这是反复要求的。有没有更优雅的方法来解决让我脱离循环的ValueError问题?
编辑:我还尝试了a = 1和a = 0的位置,当我这样做时,它不再要求我输入,而只是运行脚本而没有要求我进行第二次用户输入。
谢谢大家!
import scipy.stats as st
a=1
while a==1:
try:
choice = input('Press 1 for percentages to Z-Score, 2 for Z-score into percentages, one tailed')
if choice ==1:
percentage = input('Enter value')
print(st.norm.ppf(percentage))
a=0
if choice ==2:
score = input('Enter value')
print(st.norm.cdf(score))
a=0
except ValueError:
print('Invalid Entry')
a=1
答案 0 :(得分:0)
考虑了代码的错误方式后,我忘了检查基础知识:
在处理之前先转换您的输入!
我只是将两个输入都转换为浮点数,现在它就像一种魅力,包括在输入无效的情况下请求新输入。
import scipy.stats as st
a=1
while a==1:
try:
float(choice = input('Press 1 for percentages to Z-Score, 2 for Z-score into percentages, one tailed'))
if choice ==1:
percentage = float(input('Enter value'))
print(st.norm.ppf(percentage))
a=0
if choice ==2:
score = float(input('Enter value'))
print(st.norm.cdf(score))
a=0
except ValueError:
print('Invalid Entry')
a=1