这段代码中的op =“”是什么意思?

时间:2013-04-13 14:36:55

标签: python variables

def three():
    op = ""      
    num = int(input("Input a number:"))
    while num > 0:
        r = num % 2
        num = num // 2
        op = str(r) + op  
    print (op)
  • 有人可以解释代码的第二行,因为它似乎没有设置任何内容吗?
  • 另外,有人还可以解释第二个底线是做什么的吗?

2 个答案:

答案 0 :(得分:3)

op只是一个最初为空的字符串(第2行),它由循环内的r的字符串表示(第二行最后一行)加上前缀。

说选择的数字是5.这些是循环的迭代:

  1. r = 5%2 = 1

    num = 5 // 2 = 2

    op =“1”

  2. r = 2%2 = 0

    num = 2 // 2 = 1

    op =“0”+“1”=“01”

  3. r = 1%2 = 1

    num = 1 // 2 = 0

    op =“1”+“01”=“101”

  4. 总的来说,循环产生一个字符串,它是输入数字的二进制表示。

答案 1 :(得分:0)

op需要在while循环中使用之前声明为变量;否则会出现语法错误。删除第一行并查看。

它被分配了“”,因为稍后它会被添加到(或者更确切地说,替换为新的文本及其最后的当前值)。所以只是做

op = None

不会有效(你不能添加str和None)

第二个底线连接; r需要转换为字符串(因为它是一个int),因此它最终将r的值作为字符串添加到op。