Python学习笔记(七):函数章节练习题

1.定义一个函数,该函数可接收一个list作为参数,该函数使用直接选择排序对list排序。
'''
1.定义一个函数,该函数可接收一个list作为参数,该函数使用直接选择排序对list排序。
选择排序的思想:从0索引开始,依次和后面的元素比较,小的往前放,第一次完毕,最小值出现在了最小索引处
'''
def test(list) :
    for i in range(len(list) - 1) :
        for j in range(1 + i, len(list)) :
            if list[i] > list[j] :
                list[i], list[j] = list[j], list[i]
    return list

my_list = [23, 14, 56, 37, 90, 68]
print(test(my_list))
2.定义一个函数,该函数可接收一个list作为参数,该函数使用冒泡排序对list排序。
'''
2.定义一个函数,该函数可接收一个list作为参数,该函数使用冒泡排序对list排序。
冒泡排序的思想:相邻元素两两比较,大的往后放,第一次完毕后,最大值出现在了最大索引处
'''
def test2(list) :
    for i in range(len(list) - 1) :
        for j in range(len(list) - 1 - i) :
            if list[j] > list[j + 1] :
                list[j], list[j + 1] = list[j + 1], list[j]
    return list

my_list = [22, 45, 12, 0, 34, 8]
print(test2(my_list))
3.定义一个is_leap(year)函数,该函数可判断year是否为闰年。若是闰年,则返回True;否则返回False。
'''
3.定义一个is_leap(year)函数,该函数可判断year是否为闰年。若是闰年,则返回True;否则返回False。
闰年的定义: 1.普通年份,能被4整除而不能被100整除。 2.整百年份,能被400整除。
'''
def is_leap(year) :
    if year % 4 == 0 and year % 100 != 0 :
        return True
    elif year % 400 == 0 :
        return True
    else:
        return False
year = int(input("请输入一个年份:"))
print(is_leap(year))
4.定义一个count_str_char(my_str)函数,该函数返回参数字符串中包含多少个数字,多少个英文字母,多少个空白字符,多少个其它字符
'''
4.定义一个count_str_char(my_str)函数,该函数返回参数字符串中包含多少个数字,多少个英文字母,多少个空白字符,多少个其它字符
'''
def count_str_char(my_str) :
    numericNum = 0
    alphaNum = 0
    spaceNum = 0
    otherNum = 0
    for i in my_str :
        if i.isnumeric() :
            numericNum += 1
        elif i.encode("utf-8").isalpha() :
            alphaNum  += 1
        elif i.isspace() :
            spaceNum += 1
        else :
            otherNum += 1
    print("数字有%d个" %numericNum)
    print("英文字母有%d个" % alphaNum)
    print("空格有%d个" % spaceNum)
    print("其它字符有%d个" % otherNum)

my_str = input("请输入一个字符串:")
count_str_char(my_str)
5.定义一个fn(n)函数,该函数返回1~n的立方和,即求1+2*2*2+3*3*3+...+n*n*n
'''
5.定义一个fn(n)函数,该函数返回1~n的立方和,即求1+2*2*2+3*3*3+...+n*n*n
'''
def test(n) :
    result = 0
    for i in range(1, n + 1) :
        result += i * i * i
    return result

num = int(input("请输入一个整数:"))
print(test(num))
6.定义一个fn(n)函数,该函数返回n的阶乘
'''
6.定义一个fn(n)函数,该函数返回n的阶乘
n! = n * (n-1) * ... * 2 * 1
'''
def test(n) :
    result = 1
    for i in range(1, n + 1) :
        result *= i
    return result

num = int(input("请输入一个整数:"))
result = test(num)
print(result)
7.定义一个函数,该函数可接收一个list作为参数,该函数用于去除list中重复的元素。
'''
7.定义一个函数,该函数可接收一个list作为参数,该函数用于去除list中重复的元素。
'''
def test(list) :
    # 定义一个new_list,用于存放去重后的元素
    new_list = []
    for i in list :
        if i not in new_list :
            new_list.append(i)
    return new_list

# 定义一个包含重复元素的list
my_list = ['hello', 25, 'crystal', 25, 'python', 'hello']
print("去重后的list:", test(my_list))
8.定义一个fn(n)函数,该函数返回一个包含n个不重复的0~100之间整数的元组。
'''
8.定义一个fn(n)函数,该函数返回一个包含n个不重复的0~100之间整数的元组。
'''
import random
def fn(n) :
    my_list = []
    for i in range(1, n + 1) :
        num = random.randint(0, 100)
        while num in my_list :
            num = random.randint(0, 100)
        else :
            my_list.append(num)
    return tuple(my_list)

while True :
    n = int(input("请输入一个整数:"))
    print(fn(n))
9.定义一个fn(n)函数,该函数返回一个包含n个不重复的大写字母的元组。
'''
9.定义一个fn(n)函数,该函数返回一个包含n个不重复的大写字母的元组。
'''
import random
def fn(n) :
    my_list = []
    for i in range(n) :
        ch = chr(random.randint(65, 90))
        while ch in my_list :
            ch = chr(random.randint(65, 90))
        else:
            my_list.append(ch)
    return tuple(my_list)

while True :
    n = int(input("请输入一个整数:"))
    print(fn(n))

猜你喜欢

转载自blog.csdn.net/weixin_44679832/article/details/113926642