Python 實作練習題 2022.08.12

Ping-Lun Liao
1 min readAug 12, 2022

--

Original: https://yunlinsong.blogspot.com/2022/08/python-20220812.html

第一題:迴文用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

--

--

No responses yet