Python 入门教程 14 ---- Practice Makes Perfect


 第一节

     1 介绍了Python的一种内置方法type(x),用来判断x的类型,比如type(5)是int,type("asf")是string等等

     2 练习:写一个函数为is_int,x作为参数,判断x是否为整数,但是要注意的是如果x的小数点全部为0那么x也认为是整数比如7.0

def is_int(x):
    if type(x) == int or x == int(x):
        return True
    else:
        return False


 第二节

     1 练习:写一个函数为digit_sum(),n作为参数,求n所有位数的和

def digit_sum(n):
    sum = 0
    while n > 0:
        sum += n%10
        n /= 10
    return sum


 第三节

     1 练习:写一个函数factorial,参数为x,求x的所有位数的乘积

def factorial(x):
    sum = 1
    while x > 0:
        sum *= x
        x -= 1
    return sum


 第四节

     1 写一个函数is_prime,参数是x,判断x是否为质数

def is_prime(x):
    if x <= 1:
        return False
    for i in range(2,x):
        if x%i == 0:
            return False
    return True


 第五节

     1 首先介绍了我们可以使用[::-1]来反转一个列表,一个字符串,比如my_list = [1,2,3,4],那么my_list[::-1]就是为[4,3,2,1]

     2 练习:写一个函数为reverse,参数是一个字符串text,把text逆向的串输出,比如"abcd"应该输出为"dcba"

def reverse(text):
    length = len(text)
    str = ""
    while length > 0:
        length -= 1
        str += text[length]
    return str


 第六节

     1 练习:写一个函数为anti_vowel,参数是字符串text,要求把所有是元音的字母全部去掉然后返回

def anti_vowel(text):
    str = ""
    length = len(text)
    for i in range(length):
        x = text[i].lower()
        if x != "a" and x != "i" and x != "o" and x != "u" and x != "e":
            str += text[i]
    return str


 第七节

     1 练习:写一个函数为scrabble_score参数为字符串word,根据提供的字典,求出word的得分

score = {"a": 1, "c": 3, "b": 3, "e": 1, "d": 2, "g": 2, 
         "f": 4, "i": 1, "h": 4, "k": 5, "j": 8, "m": 3, 
         "l": 1, "o": 1, "n": 1, "q": 10, "p": 3, "s": 1, 
         "r": 1, "u": 1, "t": 1, "w": 4, "v": 4, "y": 4, 
         "x": 8, "z": 10}

def scrabble_score(word):
    sum = 0
    length = len(word)
    for i in range(length):
        x = word[i].lower()
        sum += score[x]
    return sum


 第八节

     1 练习:写一个函数为censor,参数为两个字符串text和word,要求把text里面出现的word换成对应长度的"*"串

                    比如text为"hack is hack"word为"hack",那么输出为"**** is ****"

def censor(text , word):

    len_text = len(text)
    len_word = len(word)
    str = "" 
    i = 0
    
    while i < len_text:
        isOk = True
        pos = 0
        for j in range(i,i+len_word):
            if j >= len_text or text[j] != word[pos]:
                isOk = False
                break
            else:
                pos += 1
        if isOk:
            for j in range(len_word):
                str += "*"
            i += len_word
        else:
            str += text[i]   
            i += 1
    return str


 第九节

      1 练习:写一个函数为purify,参数是一个列表,要求把列表中的所有奇数删除,然后返回这个列表

def purify(my_list):
    while True:
        isOk = False;
        for num in my_list:
            if num%2:
                my_list.remove(num)
                isOk = True
                break
        if isOk == False:
            break
    return my_list


 第十节

      1 练习:写一个函数remove_duplicates,参数是一个列表,要求把所有的相同的元素去掉,返回一个新的列表

def remove_duplicates(my_list):
    my_list.sort()
    res = []
    length = my_list
    i = 0

    for num in my_list:
        if (num in res):
           continue
        else:
           res.append(num)

    return res



你可能感兴趣的:(Python 入门教程 14 ---- Practice Makes Perfect)