加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何检查输入是否是二进制格式(1和0)?

发布时间:2020-12-20 13:05:06 所属栏目:Python 来源:网络整理
导读:我已经制作了一个程序,但是如果用户输入不是二进制格式,我想添加一个例外.我已经多次尝试添加异常,但我似乎无法让它工作.以下是程序代码.如果有人可以帮忙,我将不胜感激. import timeerror=Truen=0while n!=1: print"***Welcome to the Bin2Dec Converter.**
我已经制作了一个程序,但是如果用户输入不是二进制格式,我想添加一个例外.我已经多次尝试添加异常,但我似乎无法让它工作.以下是程序代码.如果有人可以帮忙,我将不胜感激.

import time
error=True
n=0
while n!=1:
    print"***Welcome to the Bin2Dec Converter.***n"
    while error:
        try:
            bin2dec =raw_input("Please enter a binary number: ")
            error=False
        except NameError: 
            print"Enter a Binary number. Please try again.n"
            time.sleep(0.5)
        except SyntaxError: 
            print"Enter a Binary number. Please try again.n"
            time.sleep(0.5)


        #converts bin2dec
        decnum = 0 
        for i in bin2dec: 
            decnum = decnum * 2 + int(i)
            time.sleep(0.25)
        print decnum,"<<This is your answer.n" #prints output

解决方法

如果你正在避免Python的内置方式(int(…,2)),作为一个学习练习,那么逻辑和Pythonic方法将是你自己的错误类,并建立错误检查你的转换功能.

class BinaryError(Exception):
    def __str__(self):
        return "Not a valid binary number"

def bin2dec(input_string):
    r = 0
    for character in input_string:
        if character == '0':
            r = r * 2
        elif character == '1':
            r = r * 2 + 1
        else:
            raise BinaryError()
    return r

while True:
    try:
        print bin2dec(raw_input("Please enter a binary number: "))
    except BinaryError:
        print "Enter a Binary number. Please try again.n"
    else:
        break

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读