我被意外地放在编程课而不是介绍中。到电脑。一切都完全超出我的想象。有谁知道怎么做?
我需要在Python中编写十进制二进制数转换程序(十进制数到二进制,反之亦然)。程序的输入是数字和基数。基数只能是2或10.如果基数是2,则输入是二进制数,输出将是相应的十进制数,反之亦然。
程序将首先要求用户输入基数,然后输入该基数中的数字。基数只能是“B”,“D”或S.“B”,“D”表示输入分别是二进制数或十进制数,“S”代表“停止”。您需要检查输入的验证。
输出格式:
您的输出应如下所示:
Please input the base(B:binary, d:deciam, S:Stop)
B
please input a number
1101
13
please input the base(b:binary, D:deciam, S:Stop)
D
Please input a number
13
1101
Please input the base(B:binary, D:deciam, S:Stop)
A
Your input in not a valid base
Please input the base(B:binary, D:deciam, S:Stop)
B
Please input is not a valid binary number
Please input the base(B:binary, D:deciam, S:Stop)
S
答案 0 :(得分:4)
dec to bin:
s = bin(n)[2:]
bin to dec:
n = int(s, 2)
答案 1 :(得分:1)
二进制到十进制的函数:
>>>def binary_to_decimal(binary):
decimal=0
for i in range(len(str(binary))):
power=len(str(binary))-(i+1)
decimal+=int(str(binary)[i])*(2**power)
return decimal
十进制到二进制的函数: -
>>>def decimal_to_binary(arr,decimal):
if decimal ==1:
arr.append(1)
else:
rem = decimal%2
arr.append(rem)
rev = decimal/2
decimal_to_binary(arr,rev)
string=""
for i in arr[::-1]:
string+=str(i)
return string
主要功能: -
>>>def function(changetype,number):
if changetype =="D2B":
result = decimal_to_binary([],number)
if changetype=="B2D":
result=binary_to_decimal(number)
if changetype=="S":
result="stop"
return result
输出:-----
>>>function("D2B",18)
'10010'
>>>function("B2D",10011)
19
>>>function("S",any_parameter)
'stop'
-------------------Thanks------------------------------------
答案 2 :(得分:0)
这应该是一个功能齐全的程序,可以完成你想要的大部分工作。随意改变它。
#!/usr/bin/env python3
def main():
while True:
base = input('Please input the base (B:inary, D:ecimal, S:top)\n')
if base in {'B', 'b'}:
convert = lambda b: str(int(b, 2))
elif base in {'D', 'd'}:
convert = lambda d: bin(int(d))[2:]
elif base in {'S', 's'}:
break
else:
print('Your input is not a valid base')
continue
number = input('Please input a number\n')
try:
print(convert(number))
except ValueError:
print('Your input is not a valid number')
if __name__ == '__main__':
main()