Python 實作練習題 2022.08.12

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

If you like this post, please click the ads on the blog or buy me a coffee. Thank you very much.

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


沒有留言: