Python课程第四天作业
1.定义一个函数,该函数可以实现控制台输入,最终返回一个int类型的正整数
1 2 3 4 5 | def chr_to_int(): user_input = input( '请输您要转换的字符串:' ) if user_input.isdigit(): return int (user_input) return False |
2.定义一个函数,该函数可以实现用户录入,最终返回一个int类型的负整数
1 2 3 4 5 | def chr_to_neg(): user_input = input( '请输您要转换的字符串:' ) if user_input.startswith( '-' ) and user_input.split( '-' )[1].isdigit(): return int (user_input) return False |
3.定义一个函数,实现传入一个数或是字符串,返回值是 是否 是可转换为整数类型的数据
1 2 3 4 5 6 7 | def chr_to_int_neg(): user_input = input( '请输您要转换的字符串:' ) if user_input.isdigit(): return True elif user_input.startswith( '-' ) and user_input.split( '-' ,1)[1].isdigit(): return True return False |
4.定义一个函数,实现传入一个整型数字,判断并直接打印该数字是否是奇数还是偶数
1 2 3 4 5 6 7 | def odd_or_even(user_input): if user_input.isdigit(): if int (user_input) % 2 == 1: print( '是奇数' ) else : print( '是偶数' ) return False |
5.定义一个函数,实现判断传入数据的类型,并直接打印其类型
1 2 3 4 5 | def judge_type(user_input): type_list=[str, int ,list, set ,dict,tuple, float , bool ,complex] for i in type_list: if isinstance(user_input, i): print(i) |
6.定义一个函数,实现可以重复录入键盘信息,当用户输入q或Q时退出,否则判断是否为可转换为整数类型的数据,可以的话输出该数是奇数还是偶数,否则直接输出该字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | def digital_conversion(): while True: user_input = input( '请输您的内容:' ) if user_input.isdigit(): if int (user_input) % 2 == 1: print( '是奇数' ) else : print( '是偶数' ) elif user_input.startswith( '-' ) and user_input.split( '-' ,1)[1].isdigit(): if int (user_input) % 2 == 1: print( '是奇数' ) else : print( '是偶数' ) elif user_input == 'Q' or user_input == 'q' : return 0 else : print(user_input) |
7.定义一个函数,只要传入 "k1:v1,...,kn:vn" 格式的字符串,都可以将其转换为 {'k1':'v1',...,'kn':'vn'}
def str_to_dict(user_input):
x = {}
for i in user_input.split(','):
k, v = i.split(':')
x[k] = v
print(x)
8.定义一个函数,实现列表与元组类型的反转功能
1 2 3 4 5 | def lsit_and_tuple(user_input): if isinstance(user_input, tuple): return list(user_input) if isinstance(user_input, list): return tuple(user_input) |
9.定义一个函数,可以完成对list、tuple、dict、set四种类型数据的循环变量打印,不是这四种,则打印 "暂不支持该数据遍历"
1 2 3 4 5 6 7 8 9 | def list_tuple_dict_set(user_input): ls=[list,tuple,dict, set ] for i in ls: if isinstance(user_input,i): for k in user_input: print(k) return else : print( '暂不支持该数据遍历' ) |
10.定义一个函数,实现对单列集合进行去除的功能
1 2 3 4 5 6 7 8 9 10 | def get_clear(data): if isinstance(data, set ): return data temp_list = [] for v in data: if v not in temp_list: temp_list.append(v) if isinstance(data, tuple): return tuple(temp_list) return temp_list |
11.定义一个函数,实现文件(不一定是文本文件)的跨文件夹的移动
1 2 3 | import shutil def file_mv(source_file,target_dir): shutil.move(source_file,target_dir) |
12..写出完整的装饰器(不⽤考虑带参装饰器,就是普通装饰器)语法
1 2 3 4 5 6 7 8 9 10 11 | def outer(func): def inner(*args, **kwargs): #装饰前操作 res = func(*args, **kwargs) #装饰后操作 return res return inner @outer def func(*args, **kwargs): pass |
13.有⼀个计算两个数和的⽅法,为其添加⼀个确保两个参数都是int或float类型的装饰器,保证运算不会抛异常
1 2 3 4 5 6 7 8 9 10 11 12 13 | def outer(func): def inner(*args, **kwargs): for i in args: if not (isinstance(i, int ) or isinstance(i, float )): print( '参数不合法' ) return False res = func(*args, **kwargs) return res return inner @outer def num_sum(a,b): print(a + b) |
14.有⼀个⼀次性录⼊⼈名并返回⼈名的⽅法(⼈名只考虑存英⽂),为其添加⼀个装饰器,使得处理后⼈名⾸字⺟⼀定⼤写
1 2 3 4 5 6 7 8 9 | def outer1(func): def inner(*args, **kwargs): res = func(*args, **kwargs) return res.title() return inner @outer1 def retun_name(name): return name |
"一劳永逸" 的话,有是有的,而 "一劳永逸" 的事却极少
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具