1.定义一个函数,该函数可以实现控制台输入,最终返回一个int类型的正整数

def chr_to_int():
user_input = input('请输您要转换的字符串:')
if user_input.isdigit():
return int(user_input)
return False

2.定义一个函数,该函数可以实现用户录入,最终返回一个int类型的负整数

def chr_to_neg():
user_input = input('请输您要转换的字符串:')
if user_input.startswith('-') and user_input.split('-')[1].isdigit():
return int(user_input)
return False

3.定义一个函数,实现传入一个数或是字符串,返回值是 是否 是可转换为整数类型的数据

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.定义一个函数,实现传入一个整型数字,判断并直接打印该数字是否是奇数还是偶数

def odd_or_even(user_input):
if user_input.isdigit():
if int(user_input) % 2 == 1:
print('是奇数')
else:
print('是偶数')
return False 

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时退出,否则判断是否为可转换为整数类型的数据,可以的话输出该数是奇数还是偶数,否则直接输出该字符串

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.定义一个函数,实现列表与元组类型的反转功能

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四种类型数据的循环变量打印,不是这四种,则打印 "暂不支持该数据遍历"

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.定义一个函数,实现对单列集合进行去除的功能

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.定义一个函数,实现文件(不一定是文本文件)的跨文件夹的移动

import shutil
def file_mv(source_file,target_dir):
shutil.move(source_file,target_dir)  

12..写出完整的装饰器(不⽤考虑带参装饰器,就是普通装饰器)语法

def outer(func):
def inner(*args, **kwargs):
#装饰前操作
res = func(*args, **kwargs)
#装饰后操作
return res
return inner @outer
def func(*args, **kwargs):
pass

13.有⼀个计算两个数和的⽅法,为其添加⼀个确保两个参数都是int或float类型的装饰器,保证运算不会抛异常

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.有⼀个⼀次性录⼊⼈名并返回⼈名的⽅法(⼈名只考虑存英⽂),为其添加⼀个装饰器,使得处理后⼈名⾸字⺟⼀定⼤写

def outer1(func):
def inner(*args, **kwargs):
res = func(*args, **kwargs)
return res.title()
return inner @outer1
def retun_name(name):
return name

  

Python课程第四天作业的更多相关文章

  1. Python课程第五天作业

    1.利用字典推导式和列表推导式完成数据的相互转化: dic = {'name': 'Owen', 'age': 18, 'gender': '男'} ls = [('name', 'Owen'), ( ...

  2. python第二十四天-----作业终于完成啦

    作业 1, ATM:模拟实现一个ATM + 购物商城程序 额度 15000或自定义实现购物商城,买东西加入 购物车,调用信用卡接口结账可以提现,手续费5%支持多账户登录支持账户间转账记录每月日常消费流 ...

  3. Python课程第三天作业

    一.统计⽂件数据中出现的的所有字符与该字符出现的个数(不区分⼤⼩写,标点与空格也算) ⽂件内容: hello friend, can you speak English! # 结果: { 'h': 1 ...

  4. BUAA OO 2019 第四单元作业总结

    目录 第四单元总结 总 UML UML 类图 UML 时序图 UML 状态图 架构设计 第十三次作业 第十四次作业 课程总结 历次作业总结 架构设计 面向对象方法理解 测试方法理解与实践 改进建议 尽 ...

  5. oo第四单元作业总结暨课程总结

    oo第四单元作业总结暨课程总结 一.本单元作业架构设计 本单元需要构建一个UML解析器,通过对输入的UML类图/顺序图/状态图的相关信息进行解析以供查询,其中课程组已提供输入整体架构及输入解析部分,仅 ...

  6. OO第四单元作业总结以及课程总结

    第四单元总结--UML 第四单元作业架构分析 第一次作业其实是本单元三次作业中最难的一次.由于第一次是第一次作业,要考虑到搭建框架和设计架构,这次作业的思维性很强.在了解了各个类型元素(Element ...

  7. 【OO学习】OO第四单元作业总结及OO课程总结

    [OO学习]OO第四单元作业总结及OO课程总结 第四单元作业架构设计 第十三次作业 第十四次作业 总结 这两次作业架构思路上是一样的. 通过将需要使用的UmlElement,封装成Element的子类 ...

  8. 北航OO第四单元作业总结(4.1~4.3)及课程总结

    前言 在学习过JML规格描述语言之后,本单元进行了UML(Unified Modeling Language)的学习.和JML单纯用语言描述的形式不同,UML通过可视化的图形形式,对一系列有关类的元素 ...

  9. 2019OO第四单元作业总结&OO课程整体总结

    第四单元作业总结 第四单元的作业主题是UML图的解析,通过对UML图代码的解析,我对UML图的结构以及各种元素之间的关系的理解更加深入了. ------------------------------ ...

随机推荐

  1. winform checkedlistbox 设置行颜色

    重写OnDrawItem事件 public class ColorCodedCheckedListBox : CheckedListBox{ protected override void OnDra ...

  2. python开发流程及项目目录规范

    # 项目开发流程 1.调研 2.需求分析   ---产品经理 3.任务分配   ---项目经理 4.写项目demo   ---项目经理.架构师.程序猿 5.架构分析   ---项目经理.架构师 6.编 ...

  3. spring AOP知识点总结以及日志的输出

    AOP的作用就是在基于OCP在不改变原有系统核心业务代码的基础上动态添加一些扩展功能.通常应用于日志的处理,事务处理,权限处理,缓存处理等等 首先,使用AOP需要添加的依赖有:spring-conte ...

  4. Python之删除空白

    Python能够找出字符串开头.末尾.两端多余的空白. lstrip()方法可以剔除字符串开头的空白: rstrip()方法可以剔除字符串末尾的空白: strip()可以剔除字符串两端的空白: fav ...

  5. concat_ws 使用在hive spark-sql上的区别

    concat_ws() 在hive中,被连接对象必须为string或者array<string>,否则报错如下: hive> select concat_ws(',',unix_ti ...

  6. 对于"单链表逆置和递归"的问题的理解.

    一. 相关知识要点: 学习或了解基础数据结构和C语言, 对基础链表知识或相关知识有概况性认识. 例如: 本题目结构为: #define elem_type int typedef struct _si ...

  7. ROS * 通过launch文件添加多个模型

    我添加的是dae模型,urdf文件过两天贴 方法一 : <launch> <!-- these are the arguments you can pass this launch ...

  8. 虚拟机无法上网,没有eth0

    虚拟机无法上网,找不到eth0解决方案如下: Ifconfig -a 第一步,输入如下命令,编辑对应文件(使用管理员权限执行,下同) # vim /etc/default/grub 在"GR ...

  9. 解决ubuntu输入正确用户密码重新跳到无法登录

    解决方法:我们需要将.Xauthority的拥有者改为登陆用户(或者干脆将.Xauthority删除,此法转自网上,本人未验证)开机后在登陆界面按下shift + ctrl + F1进入tty命令行终 ...

  10. c# 坑人的发邮件组件

    System.Net.Mail 在服务器25端口被封禁的情况下,无法使用其它诸如SSL 465端口发送.用过时的System.Web.Mail却可以.是微软更新速度太快呢,还是标准不一致呢. Syst ...