#Hex Check
def Check():
while False:
for char in UserInput:
if char not in Valid:
print ('That is an invalid hex value.')
print('That is a valid hex value.')
return Check
UserInput=input('Enter a hex number: ')
Valid='1''2''3''4''5''6''7''8''9''10''A''B''C''D''E''F'编辑:我已经尝试过了。当我输入一个十六进制值时,例如B2,没有出现任何消息。
发布于 2012-03-13 02:26:27
将第6行更改为
Hex=int(input('Enter a hex number: '), 16)此行将成功解析任何十六进制输入(例如,'0x123f'),并将在无效输入(例如,‘ValueError’)上抛出ValueError。
ETA:根据你的评论,以下是你需要的:
user_input = input('Enter a hex number: ')
try:
hexval = int(user_input, 16)
print 'That is a valid hex value.'
except:
print 'That is an invalid hex value.'ETA:如果你真的需要一个Check函数,这个结构将是最好的方法:
import re
def Check(s):
"""Check if a string is a valid hexadecimal number"""
# code for checking if it is a valid hex number here
user_input = raw_input("Enter a hex number: ")
if Check(user_input):
print 'That is a valid hex value.'
else:
print 'That is an invalid hex value.'因为这是一个家庭作业问题,所以我不打算完成答案--只要知道如果字符串是有效的十六进制语句,Check函数必须返回True,否则返回False。
在每个人的答案中都有很多关于如何做到这一点的想法,你确实可以像我上面做的那样使用try/except语句。最好的方法之一是使用regular expressions,这是一种非常强大的解析字符串的方法。
https://stackoverflow.com/questions/9672615
复制相似问题