我的python代码应该将0到255之间的十进制数作为参数并将它们转换为二进制,当参数小于0或大于255时返回无效
def binary_converter(x):
if (x < 0) or (x > 255):
return "invalid input"
try:
return int(bin(x)[2:]
except ValueError:
pass
测试
import unittest
class BinaryConverterTestCases(unittest.TestCase):
def test_conversion_one(self):
result = binary_converter(0)
self.assertEqual(result, '0', msg='Invalid conversion')
def test_conversion_two(self):
result = binary_converter(62)
self.assertEqual(result, '111110', msg='Invalid conversion')
def test_no_negative_numbers(self):
result = binary_converter(-1)
self.assertEqual(result, 'Invalid input', msg='Input below 0 not allowed')
def test_no_numbers_above_255(self):
result = binary_converter(300)
self.assertEqual(result, 'Invalid input', msg='Input above 255 not allowed')
答案 0 :(得分:0)
您已经知道如何检查输入参数的范围以及如何返回值。现在返回分配所需的内容很简单。
在检查有效输入时,您错过的只是将“无效”大写。
对于合法转换,您只需要传回二进制表示而不使用前导“0b”,这几乎已经完成(删除整数转换,正如两位评论者已经注意到的那样)。
答案 1 :(得分:0)
所以这是最终的工作代码
def binary_converter(x):
if (x < 0) or (x > 255):
return "Invalid input"
try:
return (bin(x)[2:])
except ValueError:
pass