如何检查输入是否是二进制格式(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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |