2016-08-15 41 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

這裏有一個工作的例子,它是寫來的蟒蛇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)) 

一個建議,雖然,儘量仔細閱讀&瞭解所有的代碼,並開始 這裏調整它有使它是你的。你不會學習太多使用其他代碼,因爲它是',下次試着更具體地詢問你的代碼的哪些特定部分不明白:)

玩得開心學習python!

+0

嘗試: X = INT(的raw_input( 「請爲X(5和25之間的值)」)) 如果x < 5 or x > 25: '你的條目是無效' 打印(+ 「請提供一個介於5和25之間的數字。格式(x)) 其他: exp = 2 ** x print「此輸入的解決方案2^x是:」,exp digits = [int(char) ('你沒有輸入一個有效的整數!! {0}'),其中的數值爲 ,總數爲 print「數字總和爲:」,總數爲 ,ValueError除外爲v: print .format(v)) – Jared

+0

謝謝你的幫助。我會記住你在回覆中提到的一切。我成功完成了這個問題。 – Jared

+0

@Jared很高興聽到這個,順便說一句,在這裏感謝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'