将带有条件的for循环从c转换为python
变量:将带有条件的for循环从c转换为python,python,c,loops,if-statement,while-loop,Python,C,Loops,If Statement,While Loop,变量: n = 378282246310005 m = n i = 1 sum1 = 0 sum2 = 0 sum11 = 0 我想将以下c代码转换为python代码: for (m = n, i = 1; m != 0; m = m / 10, i++) { r = m % 10; if (i % 2 != 0) { sum1 += r; } else {
n = 378282246310005
m = n
i = 1
sum1 = 0
sum2 = 0
sum11 = 0
我想将以下c代码转换为python代码:
for (m = n, i = 1; m != 0; m = m / 10, i++)
{
r = m % 10;
if (i % 2 != 0)
{
sum1 += r;
}
else
{
sum2 += r * 2;
}
while (sum2 > 0)
{
z = sum2 % 10;
sum11 = sum11 + z;
sum2 = sum2 / 10;
}
}
我为python编写了以下代码,但它不起作用:
for m in range(m!=0):
r = m % 10
if (i % 2 != 0):
sum1 += r
else:
sum2 += r * 2
while sum2 > 0:
z = sum2 % 10
sum11 = sum11 + z
sum2 = sum2 / 10
m = m / 10
i = i + 1
我必须在哪里更改逻辑或代码才能使其工作?变量初始化:
n = 378282246310005
m = n
i = 1
sum1 = 0
sum2 = 0
sum11 = 0
您可以使用while循环:
while(m!=0):
r = m % 10
if (i % 2) != 0 :
sum1 += r
else:
sum2 += r * 2
while (sum2 > 0):
z = sum2 % 10
sum11 = sum11 + z
sum2 = sum2 // 10
m = m // 10
i+=1
EDIT1:是的,你是对的,范围(m!=0)是正确的。我不知道,你刚刚教了我一个新东西谢谢
我添加了双破折号(m=m//10)变量初始化:
n = 378282246310005
m = n
i = 1
sum1 = 0
sum2 = 0
sum11 = 0
您可以使用while循环:
while(m!=0):
r = m % 10
if (i % 2) != 0 :
sum1 += r
else:
sum2 += r * 2
while (sum2 > 0):
z = sum2 % 10
sum11 = sum11 + z
sum2 = sum2 // 10
m = m // 10
i+=1
EDIT1:是的,你是对的,范围(m!=0)是正确的。我不知道,你刚刚教了我一个新东西谢谢
我添加了双破折号(m=m//10)
范围内的m(m!=0):
不是(…;m!=0;…)
?将范围内的m(m!=0)替换为m=ni=1,而(m!=0):
(三行代码)sum2/10
将在Python 3中生成浮点结果。如果您想要整数除法,请使用sum2//10
m范围内(m!=0):
不是(…;m!=0;…)
?将范围内(m!=0)
的m替换为m=ni=1,而(m!=0):
(三行代码)sum2/10
将在Python 3中生成浮点结果。如果您想要整数除法,请使用sum2//10
。如果m是整数,您可能需要使用//而不是/否则终止条件可能永远不会达到范围(m!=0)内的m
完全有效,但不会满足OP的要求代码中不需要括号字符,它们也不被认为是好的样式如果m是一个整数,您可能希望使用//而不是/否则终止条件可能永远不会达到m范围(m!=0)
完全有效,但不会达到OP想要的效果代码中不需要括号字符,它们也不被认为是好的样式