马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#0. 使用 递归 编写一个十进制转换为二进制的函数
#(要求采用“除2取余”的方式,结果与调用bin()一样返回字符串形式)。
def Decimal_To_Binary(number):
shang = number // 2
if shang == 0:
list1.append(1)
else:
list1.append(number % 2)
Decimal_To_Binary(shang)
#从这里往下感觉很笨,尤其是输出字符串的实现过程,可否改进一下?
list1 = []
number = int(input ("请输入一个正整数:"))
Decimal_To_Binary(number)
list1.reverse()
print ("%d 的二进制为:" %number, end = "")
print ("'", end = "")
for i in list1:
print (i, end = "")
print ("'")
本帖最后由 Twilight6 于 2020-8-1 20:41 编辑
在你代码上改动了下,append 时候将余数全部转为 str 然后加入列表,之后在列表外用 join 进行一次性拼接就好:
def Decimal_To_Binary(number):
shang = number // 2
if shang == 0:
list1.append('1')
else:
list1.append(str(number % 2))
Decimal_To_Binary(shang)
list1 = []
number = int(input ("请输入一个正整数:"))
Decimal_To_Binary(number)
list1.reverse()
print("%d 的二进制为:0b%s" %(number,''.join(list1)))
实际上用字符串的拼接更简单些:
def Decimal_To_Binary(number):
shang = number // 2
if shang == 0:
return '1'
else:
return Decimal_To_Binary(shang)+str(number % 2)
number = int(input ("请输入一个正整数:"))
print('%d 的二进制为:0b'%number+Decimal_To_Binary(number))
|