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. snprintf笔记

    在weibo上看到Laruence大神修复了一个使用snprintf的bug (http://t.cn/Rm6AuFh) 引起了TK教主的关注.TK教主着重提到了在windows下snprintf与_ ...

  2. Fedora 系统屏幕亮度修改

    在某些笔记本电脑上,屏幕亮度卡在最大值,功能键或桌面设置似乎没有做任何事情. 有一件事要尝试通常可以解决这个问题.打开/ etc / default / grub 并找到以GRUB_CMDLINE_L ...

  3. 利用位运算进行a+b的计算(Java&&Python)

    题目链接 需要用到的位运算操作:异或(^).与(&).右移(<<) 异或运算:又称不进位加法,a^b得到的结果为a与b相加,但是需要进位的地方不进位得到的结果 与运算:找出来a和b ...

  4. 零基础学习python(2)

    再讲新知识之前,先将一些之前没提的东西再介绍一下: (1) 命令行模式 在Windows开始菜单选择“命令提示符”(或者是在搜索栏中输入“cmd”),就进入到命令行模式,它的提示符类似C:\>: ...

  5. windows下启动mysql服务

    当你无法连接你的mysql数据库时,或者因为某些原因导致与mysql数据库的连接丢失时,可通过以下方式启动mysql服务 1.命令行下启动mysql服务 以管理员身份运行cmd,进入mysql安装目录 ...

  6. 贴图平移&凹凸贴图偏移

      1. 平移(UV坐标动画) UV 坐标动画或 UV 平移的含义是,水平 (U) 和/或垂直 (V) 移动纹理的 UV 坐标,以产生复杂动画的错觉. 在以下示例中,火焰纹理沿着 U(水平)方向平移, ...

  7. js转盘游戏

    1----- @-webkit-keyframes spin { 0%   { -webkit-transform: rotate(0deg); -ms-transform: rotate(0deg) ...

  8. python selenium-webdriver 下拉菜单处理 (九)

    测试过程中经常遇到下来菜单,比如说分页,每页显示的条数,以及语言的切换,很多时候经常是以下来菜单的形式展现,下面我们看一下selenium如何处理下来菜单. 首先selenium 很人性化的给提供了一 ...

  9. tomcat 发布后中文乱码问题

    接口收到数据,使用Eclipse运行调试中文正常显示,发布到Tomcat后中文出现乱码情况: 解决方法: tomcat启动时默认使用系统编码,可更改tomcat bin目录下catalina.bat文 ...

  10. 时间复杂度O()与KMP算法

    要得到某个结果,可以有很多种方式,算法就是为了寻找一条最快的方式. 而评判其好坏的标准就是时间复杂度. O(1): 我们把执行一次的时间复杂度定义为O(1) sum = a +b; cout < ...