若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。
第一題:迴文用Python解
https://zerojudge.tw/ShowProblem?problemid=a022
# 從字串的頭與尾開始比較是否相同
# 假設字串長度為 n
# str[0] == str[n-1]
# str[1] == str[n-2]
# str[2] == str[n-3]
# .... etc 一直比到 str[n/2] == str[n/2] 即可
def isPalindrome(str):
strLen = len(str)
for idx in range(strLen//2):
if str[idx] != str[strLen-idx-1]:
return "no"
return "yes"
str = input()
print(isPalindrome(str))
第二題:設計一個可以對陣列加總的 add 函式。
# 使用一個變數 total 來記錄總和
# 當然也可以用 sum 函式來解
def add(array):
total = 0
for x in array:
total += x
return total
data = [1, 3, 9, 10]
print(f'add({data}) = {add(data)}')
使結果為 add([1, 3, 9, 10]) = 23。
第三題:排序
Python 由小排到大排序程式範例
number = [3, 1, -1, 5, 111, 78]
number.sort()
print(number)
請將此程式改成由大到小排序
number = [3, 1, -1, 5, 111, 78]
# 由小排到大
number.sort()
# 使用反序函式 reverse(),變成由大排到小
number.reverse()
print(number)
使結果為 [111, 78, 5, 3, 1, -1]。
第四題:遞迴函式
底下為加總的 Python 遞迴函式:
def rSum(n):
if n <= 1:
return n
return n + rSum(n-1)
print(rSum(5))
請完成階乘的 Python 遞迴函式:
def rMul(n):
if n <= 1:
return n
return n * rMul(n-1)
print(f'rMul(5) = {rMul(5)}')
使結果為 rMul(5) = 120。
沒有留言:
張貼留言