Python簡單試題1

1,相乘次數算法

題目要求描述: 一個整數每一位上的數字相乘,判斷是否爲個位數,如果則程序結束 ,不是則繼續相乘,要求返回相乘次數。
例:39 > 3*9=27 > 2*7=14 > 1*4=4 返回 3 105 > 1*0*5=0 返回0 4 返回0
def multiplicative_times(num):
    i = 0 #用來計算相乘次數
    while num // 10 > 0 : # 注意要用 // 這是向下取整除法
        num1 = 1
        while num != 0: # 循環,直到 num=0
            num1 = (num%10)*num1 # 取出個位而後相乘
            num = num // 10 # 除以十,不要小數部分
        i += 1 # i = i+ 1
        num = num1 # 循環繼續
    return i

2,篩選出四個字母的字符串。app

給定一個列表,其中包含都是字符串,但字符串長度不相同,讓你寫一個函數,找出長度爲四 的字符串。
def friend(x):
    y = [] # 定義一個空列表
    for i in x: # 循環給定的列表
        if len(i) == 4: # 判斷字符串長度是否爲4
            y.append(i) # 將長度爲4的字符串加入到列表中
    return y

3,斐波那鍥數列的問題函數

相似於斐波那鍥數列的算法,給定一個列表,其中包含三個數字,每個元素爲前面三個元素的和(前三個元素除外),你寫一個函數
,參數爲一個列表,一個整數。列表包含三個參數,數字表示返回生成列表的前n項。 例tribonacci([
1.1.1], 5) >>> 5 tribonacci([0,0,1],4) >>> 1
def tribonacci(signature, n):
    for i in range(3,n): # 3 到 n-1循環
        signature.append(signature[i-1] + signature[i-2] + signature[i-3]) # 根據算法寫公式
    return signature[0:n] 
# 注意:最後返回值不能夠寫成return signature這樣當n爲1,2,時不符合題意

4,求多項式的和spa

1 + 1/4 + 1/7 +1/10 + 1/13...形如這樣的多項式計算前幾項的和, 寫一個函數返回計算的和值,傳入參數爲天然數,返回值保留兩位小數,以字符串形式返回
例: 1      1.00 2    1.25 3       1.39 4         1.49
def series_sum(n):
    sum = 1
    if n == 1 :
        return ('%.2f' % sum) # 格式化輸出,將浮點數轉化爲字符串並保留兩位小數
    elif n == 0 :
        return ('%.2f' % 0)
    else :
        for i in range(1,n):
            sum += 1/(i*3+1)
    return ('%.2f' % sum)
# 注意天然數中包括零

5,求重複次數字母的數量code

寫一個函數,參數爲字符串,用來求出字符串中出現重複字符的個數,
假定字符串只包含字母和數字,字母不區分大小寫
"abcde" -> 0 # 沒有出現重複的字符 "aabbcde" -> 2 # 'a' 和 'b' "aabBcde" -> 2 # 'a' 出現兩次 'b' 出現兩次 (`b` 和 `B`) "indivisibility" -> 1 # 'i' 出現六次 "Indivisibilities" -> 2 # 'i' 出現七次 's' 出現兩次 "aA11" -> 2 # 'a' 和 '1' "ABBA" -> 2 # 'A' 和 ‘B'都出響兩次
def duplicate_count(text):
    text = text.upper() # 將字符串字母都大寫
    #不能寫成 text,upper() 由於字符串是不可變得
    #或者 text = text.lower 將字符串字母小寫
    x = set(text) # 建立一個集合 集合具備無序性,不重複性,會去掉重複的字母
    count = 0 # 用來計算出現重複字母的次數
    x = list(x) # 將集合轉化爲列表,由於集合沒法按照位置進行存取
    for i in x:
        if text.count(i) > 1:
            count+=1
    return count
相關文章
相關標籤/搜索