它可以打印diga和digb,但不能与c一起使用!有什么帮助吗?它应该是一个二元到二元转换器,但只有1-64,一旦我破解了代码将增加这个!非常感谢
denaryno=int(input("Write a number from 1-64 "))
if 64%denaryno > 0:
diga=0
remaindera=(64%denaryno)
if 32/denaryno<1:
digb=1
remainderb=(denaryno%32)
else:
digb =0
if 16/remainderb<1:
digc=1
remainderc=(denaryno%16)
else:
digc=0
if 8/remainderc<1:
digd=1
remainderd=(denaryno%8)
else:
digd=0
if 4/remainderd<1:
dige=1
remaindere=(denary%4)
else:
dige=0
if 2/remaindere<1:
digf=1
remainderf=(denary%2)
else:
digf=0
if 1/remainderf<1:
digg=1
remainderg=(denary%1)
else:
digg=0
print (str(diga)+str(digb))
只在顶部
if
/else
语句的一个中设置digc
。如果32/denaryno<1
是True
,则根本不设置digc
。你知道吗在函数的顶部设置
digc
(设置为0
或任何您想要的内容)。这适用于所有数字变量,digd
,dige
,等等相反,你真正应该做的是使用一个数字列表,每次你将数字除以一个因子时,在这个列表后面加上一个0或1。你知道吗
您可能想看看^{} function ;它同时返回商和余数。您还可以在这里使用一些循环来减少这里所需的
if
语句的数量:哇,那是一个很大的工作,你不必做所有的。你知道吗
以下是构成此功能的easy—>;important
str()
返回一个字符串range()
是从一个数字到另一个数字的一种方法。这样写range(count-1, -1, -1)
倒计时。你知道吗"".join()
是一种获取iterable并将各个部分组合在一起的方法。你知道吗map()
是一种获取函数并将其应用于iterable的方法。你知道吗lambda
是一种在一行中编写函数的方法。我当时很懒,本来可以再写一篇def func_name(y)
,效果也一样。你知道吗>>
是一种移位位的方法。(我认为理解这一点是理解你的问题的关键)相关问题 更多 >
编程相关推荐