将for循环合并到整数除法中
Incorporate a for loop into integer division
我想用整数除法将一个数除以另一个数,直到我的结果为零,并记录我做了多少次除法。但是,每当我尝试合并 for 循环时,我总是收到 'int' object not iterable 错误。我没有 for 循环的代码是:
x = 4
y = 2
numofdiv = 0
if x // y != 0:
x // y
numofdiv += 1
关于如何结合 for 循环或任何其他方法解决此问题的任何建议?
这是一种方法:
x = 4
y = 2
numofdiv = 0
while x != 0:
numofdiv += 1
x = x // y
print(numofdiv)
有很多方法,但这里有 2 个简单的方法:
x=4
y=2
numdiv = 0
while True:
if x//y > 0:
x= x//y
numdiv +=1
else:
break
print (numdiv)
或
x=4
y=2
numdiv = 0
while x//y > 0:
x= x//y
numdiv +=1
print (numdiv)
使用while循环检查是否满足条件,如果不满足则停止:
x = 4
y = 2
numOfDiv = 0
while x > 0:
x = x // y
numOfDiv += 1
print("number of divison:{}".format(numOfDiv))
创建一个生成器函数,为我们提供一个值,如果不满足条件,它将停止生成,使用相同的 while 循环。然后我们可以从生成器开始迭代,直到使用 for 循环耗尽所有值。
x = 4
y = 2
def int_div(x,y):
while x > 0:
x,y = x // y, y
yield x
for numOfDiv, value in enumerate(int_div(x,y),1):
pass
print("number of divison:{}".format(numOfDiv))
在列表理解中使用相同的生成器来查找我们想要的所有值,然后打印列表的大小,因为这是它进行了多少次划分。
x = 4
y = 2
def int_div(x,y):
while x > 0:
x,y = x // y, y
yield x
a = [i for i in int_div(x,y)]
print("number of divison:{}".format(len(a)))
如前所述,while 循环可能更合适。 for 循环版本可能如下所示:
x=4
y=2
divisions = 0
max_divisions = 1000
for i in range(max_division):
if x//y > 0:
x = x//y
divisions +=1
else:
break
print(divisions)
我想用整数除法将一个数除以另一个数,直到我的结果为零,并记录我做了多少次除法。但是,每当我尝试合并 for 循环时,我总是收到 'int' object not iterable 错误。我没有 for 循环的代码是:
x = 4
y = 2
numofdiv = 0
if x // y != 0:
x // y
numofdiv += 1
关于如何结合 for 循环或任何其他方法解决此问题的任何建议?
这是一种方法:
x = 4
y = 2
numofdiv = 0
while x != 0:
numofdiv += 1
x = x // y
print(numofdiv)
有很多方法,但这里有 2 个简单的方法:
x=4
y=2
numdiv = 0
while True:
if x//y > 0:
x= x//y
numdiv +=1
else:
break
print (numdiv)
或
x=4
y=2
numdiv = 0
while x//y > 0:
x= x//y
numdiv +=1
print (numdiv)
使用while循环检查是否满足条件,如果不满足则停止:
x = 4
y = 2
numOfDiv = 0
while x > 0:
x = x // y
numOfDiv += 1
print("number of divison:{}".format(numOfDiv))
创建一个生成器函数,为我们提供一个值,如果不满足条件,它将停止生成,使用相同的 while 循环。然后我们可以从生成器开始迭代,直到使用 for 循环耗尽所有值。
x = 4
y = 2
def int_div(x,y):
while x > 0:
x,y = x // y, y
yield x
for numOfDiv, value in enumerate(int_div(x,y),1):
pass
print("number of divison:{}".format(numOfDiv))
在列表理解中使用相同的生成器来查找我们想要的所有值,然后打印列表的大小,因为这是它进行了多少次划分。
x = 4
y = 2
def int_div(x,y):
while x > 0:
x,y = x // y, y
yield x
a = [i for i in int_div(x,y)]
print("number of divison:{}".format(len(a)))
如前所述,while 循环可能更合适。 for 循环版本可能如下所示:
x=4
y=2
divisions = 0
max_divisions = 1000
for i in range(max_division):
if x//y > 0:
x = x//y
divisions +=1
else:
break
print(divisions)