题目见下:
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博客
~ 希望对你有帮助,也欢迎批评指正 ~