首页 > 其他 > 详细

09 练习题:函数、参数

时间:2020-07-07 00:08:44      阅读:87      评论:0      收藏:0      [点我收藏+]

1.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

def odd_index(iterable):
return iterable[1::2]

2.写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。

def longer_than_5(iterable):
return True if len(iterable) > 5 else False

3.写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

def retain_2(list):
return list if len(list) <= 2 else list[:2]

4.写函数,计算传入函数的字符串中,[数字]、[字母] 以及 [其他]的个数,并返回结果。

def count_type(string):
count_list = [0, 0, 0]
for char in string:
if char.isdecimal() == True:
count_list[0] += 1
elif char.isalpha() == True:
count_list[1] += 1
else:
count_list[2] += 1
return count_list

5.写函数,接收两个数字参数,返回比较大的那个数字。

def cmp(digit_1, digit_2):
return digit_1 if digit_1 > digit_2 else digit_2

6.写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

dic = {"k1": "v1v1", "k2": [11,22,33,44]}

PS:字典中的value只能是字符串或列表

def retain_value_2(dic):
for key in dic.keys():
dic[key] = dic[key] if len(dic[key]) < 2 else dic[key][:2]
return dic

7.写函数,此函数只接收一个参数且此参数必须是列表数据类型,此函数完成的功能是返回给调用者一个字典,此字典的键值对为此列表的索引及对应的元素。例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。

def list_to_dic(list):
dic = {}
for i in range(len(list)):
dic.setdefault(i, list[i])
return dic

8.写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。用户通过输入这四个内容,然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中。

def append_student(name, gender, age ,degree):
with open(r‘03 作业\student_msg.txt‘, encoding=‘utf-8‘, mode=‘a‘) as file_handler:
file_handler.write(name + ‘ ‘ + gender + ‘ ‘ + age + ‘ ‘ + degree + ‘\n‘)
while 1:
name = input(‘name:\n‘)
gender = input(‘gender:\n‘)
age = input(‘age:\n‘)
degree = input(‘degree:\n‘)
append_student(name, gender, age, degree)
if input(‘continue append?(input q or Q to exit)\n‘).upper() == ‘Q‘:
break

9.对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。

def append_student(name, age ,degree, gender=‘girl‘):
with open(r‘03 作业\student_msg.txt‘, encoding=‘utf-8‘, mode=‘a‘) as file_handler:
file_handler.write(name + ‘ ‘ + gender + ‘ ‘ + age + ‘ ‘ + degree + ‘\n‘)
while 1:
name = input(‘name:\n‘)
gender = input(‘gender:\n‘)
age = input(‘age:\n‘)
degree = input(‘degree:\n‘)
if gender == ‘‘:
append_student(name, age, degree)
else:
append_student(name, age, degree, gender)
if input(‘continue append?(input q or Q to exit)\n‘).upper() == ‘Q‘:
break

写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(选做题)。

def revise_file(old_contents, new_contents, file_name):
import os
with open(r‘03 作业{}‘.format(file_name), encoding=‘utf-8‘, mode=‘r‘) as file_handler_1,
open(r‘03 作业{}.bak‘.format(file_name), encoding=‘utf-8‘, mode=‘w‘) as file_handler_2:
for line in file_handler_1:
line = line.replace(old_contents,new_contents)
file_handler_2.write(line)
os.remove(r‘03 作业{}‘.format(file_name))
os.rename(r‘03 作业{}.bak‘.format(file_name), r‘03 作业{}‘.format(file_name))
revise_file(‘alex‘, ‘SB‘, ‘alex自述‘)

09 练习题:函数、参数

原文:https://www.cnblogs.com/raygor/p/13258294.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!