【Python期末大作业】西电Lgx老师(实验二)满分代码实现

题目见下:

1.编写函数,接收一个字符串,分别统计大写字母、小写字母、数字、其他字符的个数,并以元组的形式返回结果。
2.找出[‘Anne’, ‘Amy’, ‘Bob’, ‘David’, ‘Carrie’, ‘Barbara’, ‘Zach’]中以‘A’开头的名字(要求使用lambda,且仅用一行代码完成,结果是一个列表)
3. 编写函数,模拟内置函数sorted()。
4. 以字典为基础建立一个通讯录,向字典中添加和删除通讯人(名字、电话、email、工作单位等),查询某个人的信息,然后输出通讯录中所有人的信息。
5. 编写一个函数对输入的一个2维列表进行原地转置。如[[1,2],[3,4]]转置为[[1,3],[2,4]]。

test1

if __name__ == "__main__":
    string  = input("请输入一个字符串: ")
    num_upper = num_lower = num_num = num_else = 0
    for i in string:
        if i.isupper():
            num_upper += 1
        elif i.islower():
            num_lower += 1
        elif i.isalnum():
            num_num += 1
        else:
            num_else += 1
    print("大写字母%d个, 小写字母%d个, 数字%d个, 其他字符%d个。" %( num_upper, num_lower, num_num, num_else))
    

    

test2

if __name__ == '__main__':
    print(list(filter(lambda x:x if x[0] == 'A' else '', ['Anne', 'Amy', 'Bob', 'David', 'AAA', "Zack"])))

test3

#! usr/bin/env python
def Sorted(iterr, key=None, reverse=False):
    if isinstance(iterr, list):
        help_ = iterr[:]
    else:
        help_ = list(iterr)
    if key is not None:
        help_.sort(key=key)
    else:
        help_.sort()
    if reverse:
        help_.reverse()
    return help_

if __name__ == '__main__':
    x = Sorted([2, 4, 1, 6, 3, 7])
    print(x)
    to_sort = [('A', 11), ('B', 12), ('C', 13)]
    x = Sorted(to_sort, key=lambda i: i[1])
    print(x)
    x = Sorted(to_sort, key=lambda i: i[1], reverse=True)
    print(x)

test4

card_dict = []
def add_in_inform():
    name_str = input("Name>")
    tel_str = input("TEL>")
    email_str = input("Email>")
    address_str = input("Work_Address>")
    part = {
        "Name" : name_str,
        "TEL" : tel_str,
        "Email" : email_str,
        "Work_Address" : address_str
    }
    card_dict.append(part)
    print("%s Added !" %name_str)

def show_all():
    if card_dict:
        print("Name\tTEL\t\tEmail\tWork_Address")
        for i in card_dict:
            print("%s\t%s\t\t%s\t%s" %(i["Name"], i["TEL"], i["Email"], i["Work_Address"]))
    else:
        print("No Contacts !")        

def serach_singleguy():
    if card_dict:
        name_to_find = input("who to find>")
        for i in card_dict:
            if i["Name"] == name_to_find:
                print("Name\tTEL\t\tEmail\tWork_Address")
                print("%s\t%s\t\t%s\t%s" %(i["Name"], i["TEL"], i["Email"], i["Work_Address"]))
                return
    else:
        print("No Contacts !")

if __name__ == "__main__":
    while True:
        option = input("Thanks for using!\nPlease choose the function you expect below:\n1.Add 2.Show 3.Search 0.exit>")
        if option == "1":
            add_in_inform()
        elif option == "2":
            show_all()
        elif option == "3":
            serach_singleguy()
        elif option == "0":
            break
        else:
            print("Invalid Option !")

test5

#! usr/bin/env python

def transpose_2d(matrix):
    lenth = len(matrix)
    for i in range(lenth):
        for j in range(i+1, lenth):
            matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]

if __name__ == '__main__':
    matrix = []
    matrix_str = input("请以[[1, 2],[3, 4]]的形式输入二维数组: ")
    matrix_str = matrix_str[2:-2].split('],[')
    for row in matrix_str:
        help = list(map(int, row.split(',')))
        matrix.append(help)
    transpose_2d(matrix)
    print("After transposition: ", matrix)

附加题(天气爬虫)(注:这道题如果老师没说可以不用完成)

笔者期末的时候这题真是不会,也没时间从头开始学,期末考完后采取了解相关知识,以下代码可以实现上述要求功能,可以参考下哈~

【python爬虫实战】耗时三天,天气虫虫高级版来啦(所有城市均可访问 + 鲁棒性强化 + 使用体验)-CSDN博客

~ 希望对你有帮助,也欢迎批评指正 ~ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值