写一个Python程序,读取一个正整数n,求1到n之间所有奇数的平均值
Write a Python program that reads a positive integer n and finds the average of all odd numbers between 1 and n
这是问题:
Write a Python program that reads a positive integer n and finds the
average of all odd numbers between 1 and n. Your program should not
accept a negative value for n.
这是我的代码,奇怪的是它不起作用:
k = int(input('Enter a positive integer: '))
while k <= 0:
print('Please enter a positive integer!! \n')
k = int(input('Enter a positive integer: '))
else:
b = 1
sum1 = 0
while b <= k:
if b % 2 == 1:
sum1 = sum1+b
b += 1
avg = sum/k
print(avg)
示例:输入:8 和输出:2.5,而它应该是 4。有什么提示吗?
您在倒数第二行中使用了 sum(内置函数名)而不是 sum1(您的变量名)。此外,您需要计算奇数的总数并使用该数字而不是输入进行除法。
好的,我查看了问题,这里是答案:
k = int(input('Enter a positive integer: '))
while k <= 0:
print('Please enter a positive integer!! \n')
k = int(input('Enter a positive integer: '))
else:
b = 1
sum1 = 0
c = 0
while b <= k:
if b % 2 == 1: #determines if odd
sum1 = sum1+b
c += 1 #variable which counts the odd elements
b += 1 #counter
avg = sum1/c
print(avg)
如果我们使用 while True,程序将 运行 直到它收到一个正数。当我们得到一个正数时,然后我们执行指令并使用 break
关闭循环
1 个版本列表:
n = int(input())
while True:
if n <= 0:
n = int(input('Enter a positive number: '))
else:
numbers = [i for i in range(1, n + 1) if i % 2 == 1]
print(sum(numbers) / len(numbers))
break
2 版本列表:
n = int(input())
while True:
if n <= 0:
n = int(input('Enter a positive number: '))
else:
numbers = []
for i in range(1, n+1):
if i % 2 == 1:
numbers.append(i)
break
print(sum(numbers)/len(numbers))
3 版本带计数器
n = int(input())
while True:
if n <= 0:
n = int(input('Enter a positive number: '))
else:
summ = 0
c = 0
for i in range(1, n+1):
if i % 2 == 1:
summ += i
c += 1
print(summ/c)
break
这是问题:
Write a Python program that reads a positive integer n and finds the average of all odd numbers between 1 and n. Your program should not accept a negative value for n.
这是我的代码,奇怪的是它不起作用:
k = int(input('Enter a positive integer: '))
while k <= 0:
print('Please enter a positive integer!! \n')
k = int(input('Enter a positive integer: '))
else:
b = 1
sum1 = 0
while b <= k:
if b % 2 == 1:
sum1 = sum1+b
b += 1
avg = sum/k
print(avg)
示例:输入:8 和输出:2.5,而它应该是 4。有什么提示吗?
您在倒数第二行中使用了 sum(内置函数名)而不是 sum1(您的变量名)。此外,您需要计算奇数的总数并使用该数字而不是输入进行除法。
好的,我查看了问题,这里是答案:
k = int(input('Enter a positive integer: '))
while k <= 0:
print('Please enter a positive integer!! \n')
k = int(input('Enter a positive integer: '))
else:
b = 1
sum1 = 0
c = 0
while b <= k:
if b % 2 == 1: #determines if odd
sum1 = sum1+b
c += 1 #variable which counts the odd elements
b += 1 #counter
avg = sum1/c
print(avg)
如果我们使用 while True,程序将 运行 直到它收到一个正数。当我们得到一个正数时,然后我们执行指令并使用 break
关闭循环1 个版本列表:
n = int(input())
while True:
if n <= 0:
n = int(input('Enter a positive number: '))
else:
numbers = [i for i in range(1, n + 1) if i % 2 == 1]
print(sum(numbers) / len(numbers))
break
2 版本列表:
n = int(input())
while True:
if n <= 0:
n = int(input('Enter a positive number: '))
else:
numbers = []
for i in range(1, n+1):
if i % 2 == 1:
numbers.append(i)
break
print(sum(numbers)/len(numbers))
3 版本带计数器
n = int(input())
while True:
if n <= 0:
n = int(input('Enter a positive number: '))
else:
summ = 0
c = 0
for i in range(1, n+1):
if i % 2 == 1:
summ += i
c += 1
print(summ/c)
break