def three():
op = ""
num = int(input("Input a number:"))
while num > 0:
r = num % 2
num = num // 2
op = str(r) + op
print (op)
答案 0 :(得分:3)
op
只是一个最初为空的字符串(第2行),它由循环内的r
的字符串表示(第二行最后一行)加上前缀。
说选择的数字是5.这些是循环的迭代:
r = 5%2 = 1
num = 5 // 2 = 2
op =“1”
r = 2%2 = 0
num = 2 // 2 = 1
op =“0”+“1”=“01”
r = 1%2 = 1
num = 1 // 2 = 0
op =“1”+“01”=“101”
总的来说,循环产生一个字符串,它是输入数字的二进制表示。
答案 1 :(得分:0)
op需要在while循环中使用之前声明为变量;否则会出现语法错误。删除第一行并查看。
它被分配了“”,因为稍后它会被添加到(或者更确切地说,替换为新的文本及其最后的当前值)。所以只是做
op = None
不会有效(你不能添加str和None)
第二个底线连接; r需要转换为字符串(因为它是一个int),因此它最终将r的值作为字符串添加到op。