2016-08-15 2 views
-4

Я попытался создать исключения для этой проблемы, как задано в нижеприведенной проблеме. К сожалению, я не могу заставить его работать. Я был бы очень признателен за любые материалы. Заранее спасибо.Вычислить 2^x, где x - пользовательский ввод

Вычисление 2^x где x - пользовательский ввод. x должен быть больше или равен 5 и меньше или равен 25. Если пользовательский ввод не является целым числом, тогда создайте исключение. Создавайте пользовательские исключения и повышайте, если x меньше 5 и больше 25. Затем добавьте цифры 2x. Например, если пользователь вводит 6, а затем найти 26 = 64, так что сумма цифр 6 + 4 = 10.

import sys 

i = int(raw_input("Please provide a value for x (between 5 and 25): ")) 

try: 

x = int(i) 

except ValueError as v: 
    print 'You did not enter a valid integer',v 

except NotAValidValue as n: 
    if x < 5 or x > 25: 
     print 'Your entry is not valid. Please provide a number between 5 and 25',n 
    sys.exit(0) 

    exp = 2 ** x 

print(exp) 

Опять же, спасибо вам спасибо за то, что это время.

+2

Переполнение стека здесь не для того, чтобы мы могли выполнить домашнее задание, попробовать что-то, и если вы столкнетесь с конкретной проблемой или вопросом, мы поможем вам. Что вы пробовали до сих пор, что не работает? –

ответ

1

Вот рабочий пример, это написано для исполнения на Python 2.x:

import sys 

try: 
    x = int(raw_input("Please provide a value for x (between 5 and 25): ")) 

    if x < 5 or x > 25: 
     print('Your entry is not valid {0}.' + 
       'Please provide a number between 5 and 25'.format(x)) 
    else: 
     exp = 2 ** x 
     print(exp) 
except ValueError as v: 
    print('You did not enter a valid integer {0}'.format(v)) 

Один совет, хотя, попробуйте внимательно прочитать & понять весь код и начать настройки его здесь и там, чтобы сделать это твое. Вы не будете слишком многому научиться, используя другой код «как есть», в следующий раз попробуйте уточнить, какие конкретные части вашего кода не понимают :)

Удачи, изучая питон!

+0

попробовать: х = Int (raw_input ("Пожалуйста, укажите значение х (от 5 до 25 лет):")) если х < 5 or x > 25: 'Ваша запись недействительна' печать (+ «Просьба число от 5 до 25 дюймов (x)) else: exp = 2 ** x print "Решение 2^x для этого входа:", exp digitits = [int (char) для char in str (exp)] total = сумма (цифры) print «Сумма цифр:», всего за исключением ValueError as v: print ('Вы не указали допустимое целое число! {0}' .формат (v)) – Jared

+0

Благодарим за помощь. Я буду иметь в виду все, что вы упомянули в своем ответе. Я успешно закончил проблему. – Jared

+0

@ Jared Рад это услышать, btw лучший способ поблагодарить здесь, в StackOverflow, принимает ответ, который вам помог больше всего – BPL

0

Способ определения пользовательских исключений в python приведен ниже. Вы должны определить каждое настраиваемое исключение как подкласс класса Exception. Затем вы можете поймать свои собственные пользовательские исключения с помощью блока catch-except.

import sys 

class TooSmallExc(Exception): 
    def __init__(self): 
     Exception.__init__(self,"The number is less than 5") 

class TooLargeExc(Exception): 
    def __init__(self): 
     Exception.__init__(self,"The number is greater than 25") 

print 'How are you?' 
i = raw_input("Please provide a value for x (between 5 and 25): ") 

try: 
    x = int(i) 
    if x<5: 
    raise TooSmallExc 
    if x>25: 
    raise TooLargeExc 
except ValueError: 
    print 'I just caught a ValueError exception, which is a Python built-in exception' 
except TooSmallExc: 
    print 'I just caught a custom exception that I made for integers less than 5' 
except TooLargeExc: 
    print 'I just caught a custom exception that I made for integers greater than 25'