|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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))
复制代码
|
|