這是問題:
撰寫一個 Python 程式,讀取一個正整數 n 并找出 1 到 n 之間所有奇數的平均值。您的程式不應接受 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。有什么提示嗎?
uj5u.com熱心網友回復:
如果我們使用 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
uj5u.com熱心網友回復:
您在最后一行中使用了 sum(內置函式名稱)而不是 sum1(您的變數名稱)。此外,您需要計算奇數的總數并使用該數字而不是輸入進行除法。
uj5u.com熱心網友回復:
好的,我回顧了這個問題,這里是答案:
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/358593.html
上一篇:嘗試運行自定義鉤子,使用了這個api“https://type.fit/api/quotes”。我能夠在物件中獲得一堆引號,但無法獲得引號
下一篇:在GDB中顯示地址部分
