Google Gemini回答如下
def is_positive_integer(n):
"""
判斷輸入是否為正整數
Args:
n: 要判斷的數字
Returns:
如果 n 為正整數,則回傳 True;否則回傳 False。
"""
try:
n = int(n)
return n > 0
except ValueError:
return False
def sum_of_even_numbers(n):
"""
計算 1 到 n 的所有偶數總和
Args:
n: 正整數
Returns:
1 到 n 的所有偶數總和
"""
total = 0
for num in range(1, n + 1):
if num % 2 == 0:
total += num
return total
while True:
number_str = input("請輸入一個正整數:")
if is_positive_integer(number_str):
number = int(number_str)
even_sum = sum_of_even_numbers(number)
print(f"1 至 {number} 的所有偶數總和為:{even_sum}")
break
else:
print("請輸入一個正整數:")
這段程式碼首先定義了兩個函式:
is_positive_integer(n)
:判斷輸入是否為正整數。此函式會嘗試將輸入轉換為整數,如果成功且大於 0,則回傳 True;否則回傳 False。sum_of_even_numbers(n)
:計算 1 到 n 的所有偶數總和。此函式會遍歷 1 到 n 的所有數字,如果數字為偶數,則將其加入總和中。接著,程式會使用 while True
迴圈來不斷要求使用者輸入正整數。在每次迴圈中,程式會先呼叫 is_positive_integer(number_str)
函式來判斷輸入是否為正整數。如果為正整數,則程式會將輸入轉換為整數,並呼叫 sum_of_even_numbers(number)
函式來計算偶數總和。最後,程式會將偶數總和列印出來。
如果使用者輸入的不是正整數,則程式會顯示警告訊息【請輸入一個正整數:】。
以下是程式的執行範例:
請輸入一個正整數:10
1 至 10 的所有偶數總和為:30
在這個範例中,使用者輸入了 10,程式計算出 1 到 10 的所有偶數總和為 30。
您可以根據自己的需求修改程式碼。例如,您可以新增功能來驗證使用者輸入的數字是否大於 0,或者您可以新增功能來列印出所有偶數。
ChatGPT:
你可以使用以下的Python程式碼來實現這個功能:
def get_positive_integer():
while True:
try:
num = int(input("請輸入一個正整數:"))
if num <= 0:
raise ValueError
return num
except ValueError:
print("請輸入一個正整數。")
def sum_of_even_numbers(n):
return sum(i for i in range(1, n + 1) if i % 2 == 0)
if __name__ == "__main__":
num = get_positive_integer()
result = sum_of_even_numbers(num)
print("1 至 %d 的所有偶數總和為:%d" % (num, result))
這個程式碼會先定義兩個函式,get_positive_integer 用來取得使用者輸入的正整數,而 sum_of_even_numbers 則是計算從1到該整數的所有偶數總和。然後在 main 區塊中,程式會先呼叫 get_positive_integer 函式取得正整數,然後再呼叫 sum_of_even_numbers 函式計算總和,最後將結果列印出來。