2012-03-12 68 views
-4
#Hex Check 
def Check(HexInput): 
    while HexInput!= Valid: 
     print('That is an invalid hex number.') 
    else: 
     print('That is an valid hex number.') 
    return HexInput  

HexInput=input('Enter a hex number: ') 
Valid='1234567890ABCDEFG' 

運行時,輸入十六進制數字時不輸出任何內容。 該程序旨在處理用戶輸入的十六進制數字,並輸出它是否是一個有效的十六進制數字。Python - 程序未按預期顯示

+1

你可能想要真正運行該功能?順便說一句,「有效」表是無效的,因爲它上升到G,並且檢查本身也是不正確的,假設我得到了你想要做的。 – 2012-03-12 21:45:09

+3

這是整個程序嗎?你已經定義了'Check()',但從來沒有調用它。 – 2012-03-12 21:45:24

+1

我在哪裏可以打電話給Check()(我是這個東西的新手) – user1248367 2012-03-12 21:47:00

回答

2

你的程序可能看起來更像是這樣的:

def Check(num): 
    # checking code here. 

n = raw_input('Enter a hex number:') 

Check(n) 

你需要調用函數定義他們之後。

1

使用正則表達式是在這種情況下

#Hex Check 

import re 
def Check(HexInput): 

    if re.match('^[a-f0-9]+$', HexInput, re.IGNORECASE): 
     print('That is a valid hex number.') 
    else: 
     print('That is an invalid hex number.') 


HexInput=input('Enter a hex number: ') 
Check(HexInput) 
+0

lol D'OH!編輯它 – 2012-03-12 21:53:16

1

嘗試單個字符簡單得多:

import string 

def Check(HexInput): 
    if HexInput not in string.hexdigits: 
     print('That is an invalid hex number.') 
    else: 
     print('That is an valid hex number.') 
    return HexInput 

string.hexdigits有效hexdigits的內置序列。詳細信息請參閱字符串模塊文檔。