首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何确定用户输入是否为有效的十六进制数?

如何确定用户输入是否为有效的十六进制数?
EN

Stack Overflow用户
提问于 2012-03-13 02:23:06
回答 6查看 15.1K关注 0票数 0
代码语言:javascript
复制
#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,没有出现任何消息。

EN

Stack Overflow用户

发布于 2012-03-13 02:26:27

将第6行更改为

代码语言:javascript
复制
Hex=int(input('Enter a hex number: '), 16)

此行将成功解析任何十六进制输入(例如,'0x123f'),并将在无效输入(例如,‘ValueError’)上抛出ValueError。

ETA:根据你的评论,以下是你需要的:

代码语言:javascript
复制
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函数,这个结构将是最好的方法:

代码语言:javascript
复制
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,这是一种非常强大的解析字符串的方法。

票数 7
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9672615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档