定义了一个求余函数
def Convert(x):list = []
while z:#z不为0
y = x % 2 #除以2得到余数
z = x // 2 #除以2的商数
x = z#x取上一步的商数
list.append(y)
请问各位大神,我这个问题出在哪里啊 本帖最后由 jackz007 于 2021-12-21 09:50 编辑
【问题】:1、while z:中的循环变量 z 未被初始化
2、函数没有返回值
3、保留字 list 作为普通变量名称使用,失去意义和功能。
def Convert(x):
d = []
while x:
d . append(x % 2)
x //= 2
return d jackz007 发表于 2021-12-21 09:45
【问题】:1、while z:中的循环变量 z 未被初始化
2、函数没有返回值
...
{:5_106:}谢谢了!是我没有表达清楚,其实我是在十进制转换二进制 ,所以用到了循环,一直到0为止,所以我会让x不断取上一步的商,但是不通过,不过你还是帮到我了,谢谢! nettkd 发表于 2021-12-21 11:03
谢谢了!是我没有表达清楚,其实我是在十进制转换二进制 ,所以用到了循环,一直到0为止,所以 ...
10 进制转二进制,早说嘛
def Convert(x):
d = []
while x:
d . insert(0 , (x % 2))
x //= 2
return d
print(Convert(256)) jackz007 发表于 2021-12-21 11:24
10 进制转二进制,早说嘛
我自己解决了,谢谢哈 jackz007 发表于 2021-12-21 11:24
10 进制转二进制,早说嘛
我去,你这种方法比 我好太多了 nettkd 发表于 2021-12-21 11:30
我去,你这种方法比 我好太多了
还可以递归
def Convert(x):
return Convert(x // 2) + if x else []
print(Convert(256))
页:
[1]