为什么这个python3.3代码不起作用?digc未定义

2024-04-26 08:06:12 发布

您现在位置:Python中文网/ 问答频道 /正文

它可以打印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))

Tags: ifelsediggdigaremaindercdenarynodigbdigc
2条回答

只在顶部if/else语句的一个中设置digc。如果32/denaryno<1True,则根本不设置digc。你知道吗

在函数的顶部设置digc(设置为0或任何您想要的内容)。这适用于所有数字变量,digddige,等等

相反,你真正应该做的是使用一个数字列表,每次你将数字除以一个因子时,在这个列表后面加上一个0或1。你知道吗

您可能想看看^{} function;它同时返回商和余数。您还可以在这里使用一些循环来减少这里所需的if语句的数量:

number = int(input("Write a number from 1-64 "))
digits = []
factor = 64
while number:
    quotient, number = divmod(number, factor)
    digits.append(quotient)
    factor //= 2
print(''.join(map(str, digits)))

哇,那是一个很大的工作,你不必做所有的。你知道吗

def bin_convert(x, count=8):
    return "".join(map(lambda y:str((x>>y)&1), range(count-1, -1, -1)))

以下是构成此功能的easy—>;important

str()返回一个字符串

range()是从一个数字到另一个数字的一种方法。这样写range(count-1, -1, -1)倒计时。你知道吗

"".join()是一种获取iterable并将各个部分组合在一起的方法。你知道吗

map()是一种获取函数并将其应用于iterable的方法。你知道吗

lambda是一种在一行中编写函数的方法。我当时很懒,本来可以再写一篇def func_name(y),效果也一样。你知道吗

>>是一种移位位的方法。(我认为理解这一点是理解你的问题的关键)

相关问题 更多 >