鱼C论坛

 找回密码
 立即注册
查看: 2231|回复: 7

[已解决]如何反转print打出的内容

[复制链接]
发表于 2020-4-9 22:19:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目:编写一个将十进制转换为二进制的函数,要求采用“除2取余”(补脑链接)的方式,结果与调用 bin() 一样返回字符串形式。

  1. def gcd(x):
  2.     list1=[]
  3.     while 1:
  4.         yushu = x%2
  5.         if x < 1:
  6.             break
  7.         x = x//2
  8.         print(yushu,end="")
复制代码

https://baike.baidu.com/item/%E5 ... C%E8%BF%9B%E5%88%B6
因为要把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列。所以我的字符串是反的,请问如何达到目的
最佳答案
2020-4-10 12:18:30
枫枫duck 发表于 2020-4-10 08:54
我一开始的代码有问题我改了一下,但现在输出的是列表,怎么把以数字输出呢
  1. def gcd(x):
  2.     list1=[]
  3.     while 1:
  4.         yushu = x%2
  5.         if x < 1:
  6.             break
  7.         x = x//2
  8.         list1.append(yushu)
  9.     print(''.join(list1[::-1]))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-9 22:32:53 | 显示全部楼层
是要把字符串的内容倒过来了吗?
如果是可以这样:

  1. a = 'yujunpeng'
  2. b = list(reversed(list(a)))
  3. for each in b:
  4.         print(each,end='')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 00:02:07 | 显示全部楼层
我最近也做了这道题  是递归的吧 我的是这样的
  1. def er(x):
  2.     if x ==0 :
  3.         return '0b'
  4.     elif x%2 == 1:
  5.         return er(x//2)+'1'
  6.     else:
  7.         return er(x//2)+'0'
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 08:02:35 | 显示全部楼层
先反转字符串再输出

  1. def gcd(x):
  2.     list1=[]
  3.     while 1:
  4.         yushu = x%2
  5.         if x < 1:
  6.             break
  7.         x = x//2
  8.         print(yushu[::-1], end="")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-10 08:54:07 | 显示全部楼层
zltzlt 发表于 2020-4-10 08:02
先反转字符串再输出

我一开始的代码有问题我改了一下,但现在输出的是列表,怎么把以数字输出呢
  1. def gcd(x):
  2.     list1=[]
  3.     while 1:
  4.         yushu = x%2
  5.         if x < 1:
  6.             break
  7.         x = x//2
  8.         list1.append(yushu)
  9.     print(list1[::-1])
  10.         

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-10 08:57:55 | 显示全部楼层
沐羽尘 发表于 2020-4-10 00:02
我最近也做了这道题  是递归的吧 我的是这样的

你的方法很好很巧妙,谢谢分享
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-10 12:18:30 | 显示全部楼层    本楼为最佳答案   
枫枫duck 发表于 2020-4-10 08:54
我一开始的代码有问题我改了一下,但现在输出的是列表,怎么把以数字输出呢
  1. def gcd(x):
  2.     list1=[]
  3.     while 1:
  4.         yushu = x%2
  5.         if x < 1:
  6.             break
  7.         x = x//2
  8.         list1.append(yushu)
  9.     print(''.join(list1[::-1]))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-10 12:57:35 | 显示全部楼层

这样的话会报错sequence item 0: expected str instance, int found
我查了一下,join对象是字符串加个str就好了
  1. def gcd(x):
  2.     list1=[]
  3.     while 1:
  4.         yushu = x%2
  5.         if x < 1:
  6.             break
  7.         x = x//2
  8.         list1.append(str(yushu))
  9.     print(''.join(list1[::-1]))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-30 15:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表