如何使用范围和字符串格式在函数中打印分数?
How to print fractions in a function using range and string formatting?
Write a function displayFractions()
that has one integer parameter: n
. The function will DISPLAY (not return) the fractions for 1/n, 2/n, 3/n, …, n/n. The function must use range()
function in the for
loop and format string to display exactly 3 decimal places. The width does not have to be specified, so that number is not required. The values should print on the same line, each value separated with a comma followed by a space
这是我得到的:
def displayFractions(n):
for i in range(n, n+1):
print('{:.3f}'.format(1/i, i/i), end=', ')
我知道我对 range()
和 format()
的论点有误,但我完全不知道该插入什么。我读了又读了教科书,看了几十个例子,还是想不通。
你快到了。您的字符串上只有 one 占位符槽,因此您只传入一个参数。您的 range()
应该从 1(第一个参数)开始:
def displayFractions(n):
for i in range(1, n + 1):
print('{:.3f}'.format(1/i), end=', ')
这会打印 一个额外的逗号 。您可以忽略循环中的最后一次迭代,只需在循环外添加一个额外的 print()
调用来打印最后一个分数:
def displayFractions(n):
for i in range(1, n):
print('{:.3f}'.format(1/i), end=', ')
print('{:.3f}'.format(1/n))
由于有人已经修复了您的代码,我将给出一个使用 Python.
中其他一些简洁内容的答案
def displayFractions(n):
print(', '.join( '{:.3f}'.format(i/n) for i in range(1, n+1) ))
str.join
方法对于在可迭代项之间插入文本非常有用。例如:
>>> ', '.join(range(10))
'0, 1, 2, 3, 4, 5, 6, 7, 8, 9'
在我的函数中,生成器被传递给 str.join
方法。这避免了为分数创建中间列表。
知道了!
def displayFractions(n):
for i in range(1, n+1):
print('{:.3f}'.format(i/n, i/i), end=', ')
感谢大家的帮助。
Write a function
displayFractions()
that has one integer parameter:n
. The function will DISPLAY (not return) the fractions for 1/n, 2/n, 3/n, …, n/n. The function must userange()
function in thefor
loop and format string to display exactly 3 decimal places. The width does not have to be specified, so that number is not required. The values should print on the same line, each value separated with a comma followed by a space
这是我得到的:
def displayFractions(n):
for i in range(n, n+1):
print('{:.3f}'.format(1/i, i/i), end=', ')
我知道我对 range()
和 format()
的论点有误,但我完全不知道该插入什么。我读了又读了教科书,看了几十个例子,还是想不通。
你快到了。您的字符串上只有 one 占位符槽,因此您只传入一个参数。您的 range()
应该从 1(第一个参数)开始:
def displayFractions(n):
for i in range(1, n + 1):
print('{:.3f}'.format(1/i), end=', ')
这会打印 一个额外的逗号 。您可以忽略循环中的最后一次迭代,只需在循环外添加一个额外的 print()
调用来打印最后一个分数:
def displayFractions(n):
for i in range(1, n):
print('{:.3f}'.format(1/i), end=', ')
print('{:.3f}'.format(1/n))
由于有人已经修复了您的代码,我将给出一个使用 Python.
中其他一些简洁内容的答案def displayFractions(n):
print(', '.join( '{:.3f}'.format(i/n) for i in range(1, n+1) ))
str.join
方法对于在可迭代项之间插入文本非常有用。例如:
>>> ', '.join(range(10))
'0, 1, 2, 3, 4, 5, 6, 7, 8, 9'
在我的函数中,生成器被传递给 str.join
方法。这避免了为分数创建中间列表。
知道了!
def displayFractions(n):
for i in range(1, n+1):
print('{:.3f}'.format(i/n, i/i), end=', ')
感谢大家的帮助。