Python 3.4.1 打印新行
我有个简单的问题,已经想了很久了。我正在写一段代码,这段代码可以接受输入的数字范围(一个高值和一个低值),然后用一个输入的数字来查找这个范围内是否有这个数字的倍数。接着,它会计算出奇数和偶数的总和,并统计它们的数量。我已经把所有的计算都做对了,但我遇到的问题是,无法把“90 75 60 45 30”这一行和“3个偶数总和为180”这一行分开。我相信这应该是个简单的问题,但我就是想不明白。有没有人能给我一些指引?非常感谢你的时间和考虑。
下面的代码返回:
Number of high range?: 100
Number of low range?: 20
Multiple to find?: 15
90 75 60 45 30 3 even numbers total to 180
2 odd numbers total to 120
代码:
def main():
x = int(input('Number of high range?: '))
y = int(input('Number of low range?: '))
z = int(input('Multiple to find?: '))
show_multiples(x,y,z)
def show_multiples(x,y,z):
for a in range(x,y,-1):
if a % z == 0:
print (a,end=' ')
even_count = 0
even_sum = 0
odd_count = 0
odd_sum = 0
for num in range(x,y,-1):
if num % z == 0 and num % 2 == 0:
even_count += 1
even_sum += num
for number in range(x,y,-1):
if number % z == 0 and number % 2 == 1:
odd_count += 1
odd_sum += number
print(even_count,'even numbers total to',even_sum)
print(odd_count,'odd numbers total to',odd_sum)
main()
3 个回答
0
代码的输出结果
定义一个主函数:
x = int(input('Number of high range?: '))
y = int(input('Number of low range?: '))
z = int(input('Multiple to find?: '))
print("The numbers are as follows:")
show_multiples(x,y,z)
定义一个显示倍数的函数,参数有x、y和z:
for a in range(x,y,-1):
if a % z == 0:
print (a,end=' ')
even_count = 0
even_sum = 0
odd_count = 0
odd_sum = 0
for num in range(x,y,-1):
if num % z == 0 and num % 2 == 0:
even_count += 1
even_sum += num
for number in range(x,y,-1):
if number % z == 0 and number % 2 == 1:
odd_count += 1
odd_sum += number
print(' ')
print(even_count,'even numbers total to',even_sum)
print(odd_count,'odd numbers total to',odd_sum)
调用主函数:
1
这是问题的一个简单示例:
>>> def test1():
for _ in range(3):
print("foo", end=" ")
print("bar")
>>> test1()
foo foo foo bar # still using end=" " from inside the loop
这是一个解决方案的简单示例:
>>> def test2():
for _ in range(3):
print("foo", end=" ")
print() # empty print to get the default end="\n" back
print("bar")
>>> test2()
foo foo foo
bar
这个空的 print
可以放在你打印每个数字的 for
循环结束和 print(even_count, ...
之间的任何地方,比如:
...
odd_sum += number
print()
print(even_count, 'even numbers total to', even_sum)
7
print('\n', even_count, ' even numbers total to ', even_sum, sep='')
这样做就可以了。只需要在某个地方手动添加一个新行就行。