Python循环:1/30+;2/29+;3/28
大家好,我有个问题 如何设置要打印的以下代码:Python循环:1/30+;2/29+;3/28,python,for-loop,while-loop,fractions,Python,For Loop,While Loop,Fractions,大家好,我有个问题 如何设置要打印的以下代码: 1/30+2/29+3/28………30/1 分子在增加\分母在减少 我有以下资料: for i in range(1,31): v = i for j in range(30,0,-1): t = j print(v/t) 但是指纹 1.0 1.0344827586206897 1.0714285714285714 1.1111111111111112 1.15384615384......... 如何获得1/30+2/
1/30+2/29+3/28………30/1
分子在增加\分母在减少
我有以下资料:
for i in range(1,31):
v = i
for j in range(30,0,-1):
t = j
print(v/t)
但是指纹
1.0
1.0344827586206897
1.0714285714285714
1.1111111111111112
1.15384615384.........
如何获得1/30+2/29+3/28…..
谢谢你的帮助和指导 您只需要一个循环!分母总是31减去分子
r = 0
for i in range(1,31):
r += i / (31 - i)
print(r)
你只需要一个循环!分母总是31减去分子
r = 0
for i in range(1,31):
r += i / (31 - i)
print(r)
这里发生的是,在打印之前,您的数字将被计算为浮点数。由于要打印它们而不进行求值,因此应该将它们插入字符串中。下一行演示如何在不计算变量的情况下将变量插入到输出中:
print "%d/%d" % (v,t)
有关如何格式化打印函数字符串的信息,请参阅
print (" + ".join(["%s/%s"%(num,denom)for num,denom in zip(range(1,31),range(30,0,-1))]))
但是,这仍然会将每个结果放在单独的一行上,因为打印函数会自动插入新行。您可以使用以下循环构建字符串(注意如何将其整齐地打包为一个循环而不是两个循环,因为您可以通过减法获得分母):
这将给你“1/30+2/29+…+30/1+”,但这仍然包括最后一个加号和周围的空格。要解决此问题,请将最后一行更改为
print string[:-3]
这将删除最后的字符
有关如何使用format函数的信息,请参阅。这里发生的情况是,在打印之前,您的数字将被计算为浮点数。由于要打印它们而不进行求值,因此应该将它们插入字符串中。下一行演示如何在不计算变量的情况下将变量插入到输出中:
print "%d/%d" % (v,t)
print (" + ".join(["%s/%s"%(num,denom)for num,denom in zip(range(1,31),range(30,0,-1))]))
有关如何格式化打印函数字符串的信息,请参阅
print (" + ".join(["%s/%s"%(num,denom)for num,denom in zip(range(1,31),range(30,0,-1))]))
但是,这仍然会将每个结果放在单独的一行上,因为打印函数会自动插入新行。您可以使用以下循环构建字符串(注意如何将其整齐地打包为一个循环而不是两个循环,因为您可以通过减法获得分母):
这将给你“1/30+2/29+…+30/1+”,但这仍然包括最后一个加号和周围的空格。要解决此问题,请将最后一行更改为
print string[:-3]
这将删除最后的字符
有关如何使用格式功能的信息,请参阅
print (" + ".join(["%s/%s"%(num,denom)for num,denom in zip(range(1,31),range(30,0,-1))]))
我想至少
将(1,2,3…,30)
和(30,29,28…,1)
压缩在一起会产生一个新的元组((1,30),(2,29),…,(30,1))
然后,将每个分子和分母放入一个字符串,生成一个列表,如,我们使用格式字符串%s/%s”%numerator,denominator
,虽然使用%d/%d
更好,但这是另一种情况
[“1/30”、“2/29”、“30/1”]
然后,您只需使用'+'
作为粘合剂加入此列表
我想至少
将(1,2,3…,30)
和(30,29,28…,1)
压缩在一起会产生一个新的元组((1,30),(2,29),…,(30,1))
然后,将每个分子和分母放入一个字符串,生成一个列表,如,我们使用格式字符串%s/%s”%numerator,denominator
,虽然使用%d/%d
更好,但这是另一种情况
[“1/30”、“2/29”、“30/1”]
然后您只需使用
'+'
作为粘合剂加入此列表我想您想要的是字符串而不是数值,对吗
s = ''
for j in range(30, 0, -1):
s += "{}/{} + ".format(31-j, j)
print s[:-2]
阅读以掌握它。本质上,它格式化字符串,使用两对大括号作为占位符,并在第一个槽中传入值31-j,在第二个槽中传入值j
当然有一种更优雅的方法,但这是一种快速而肮脏的方法。我想你想要的是字符串而不是数值,对吗
s = ''
for j in range(30, 0, -1):
s += "{}/{} + ".format(31-j, j)
print s[:-2]
阅读以掌握它。本质上,它格式化字符串,使用两对大括号作为占位符,并在第一个槽中传入值31-j,在第二个槽中传入值j
当然,有一种更优雅的方法可以做到这一点,但这是一种快速而肮脏的方法。我不确定你到底想做什么,但你只需要一个循环就可以做到。每次通过循环时,分母仅为31减去分子:
from fraction import Fraction
for num in range(1,31):
den = 31 - num
fraction_string = "%d/%d" % (num, den)
fraction_value = Fraction(num, den)
quotient = num / den
#... do stuff with whichever of the above you want
当您构建一个结果时——要么添加到一个和,要么追加到一个字符串,或者在每次迭代中输出一些东西——您可以使用列表理解和列表函数更简洁地实现这一点。例如,与此不同的是:
quotientList = []
for n in range(1,31):
quotientList.append( n / (31 - n) )
您可以这样做:
quotientList = [ n / (31 - n) for n in range(1,31) ]
total = sum(someList)
而不是这个:
total = 0
for n in someList:
total = total + n
您可以这样做:
quotientList = [ n / (31 - n) for n in range(1,31) ]
total = sum(someList)
把这些概念放在一起,我看到了三种可能的方法:
1/30+2/29+3/28+
…+30/1
:
print(“+”.join(“%d/%d”%(n,31-n)表示范围(1,31))内的n)
打印(范围(1,31)内n的总和(n/(31.0-n))
从分数导入分数
…
打印(范围(1,31)内n的和(分数(n,31-n)))
我不确定你到底想做什么,但你可以只用一个循环。每次通过循环时,分母仅为31减去分子:
from fraction import Fraction
for num in range(1,31):
den = 31 - num
fraction_string = "%d/%d" % (num, den)
fraction_value = Fraction(num, den)
quotient = num / den
#... do stuff with whichever of the above you want
当您构建一个结果时——要么添加到一个和,要么追加到一个字符串,或者在每次迭代中输出一些东西——您可以使用列表理解和列表函数更简洁地实现这一点。例如,与此不同的是:
quotientList = []
for n in range(1,31):
quotientList.append( n / (31 - n) )
您可以这样做:
quotientList = [ n / (31 - n) for n in range(1,31) ]
total = sum(someList)
而不是