scipy.stats конвертер нормальных z баллов в значение p Python3 - PullRequest
1 голос
/ 12 марта 2019

немного борясь с этим маленьким конвертером, я не мог заставить его пройти через первый вход, который неоднократно запрашивается. Есть ли более элегантный способ обойти проблему 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

1 Ответ

0 голосов
/ 13 марта 2019

Подумав о том, что код неправильный, я забыл проверить основы:

Преобразование ваших входных данных перед обработкой !!!

Я только что преобразовал обавходы в числа с плавающей точкой, и теперь он работает как талисман, включая запрос нового ввода в случае, если это недопустимая запись.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...