Python课程第四天作业
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课程第四天作业的更多相关文章
- Python课程第五天作业
1.利用字典推导式和列表推导式完成数据的相互转化: dic = {'name': 'Owen', 'age': 18, 'gender': '男'} ls = [('name', 'Owen'), ( ...
- python第二十四天-----作业终于完成啦
作业 1, ATM:模拟实现一个ATM + 购物商城程序 额度 15000或自定义实现购物商城,买东西加入 购物车,调用信用卡接口结账可以提现,手续费5%支持多账户登录支持账户间转账记录每月日常消费流 ...
- Python课程第三天作业
一.统计⽂件数据中出现的的所有字符与该字符出现的个数(不区分⼤⼩写,标点与空格也算) ⽂件内容: hello friend, can you speak English! # 结果: { 'h': 1 ...
- BUAA OO 2019 第四单元作业总结
目录 第四单元总结 总 UML UML 类图 UML 时序图 UML 状态图 架构设计 第十三次作业 第十四次作业 课程总结 历次作业总结 架构设计 面向对象方法理解 测试方法理解与实践 改进建议 尽 ...
- oo第四单元作业总结暨课程总结
oo第四单元作业总结暨课程总结 一.本单元作业架构设计 本单元需要构建一个UML解析器,通过对输入的UML类图/顺序图/状态图的相关信息进行解析以供查询,其中课程组已提供输入整体架构及输入解析部分,仅 ...
- OO第四单元作业总结以及课程总结
第四单元总结--UML 第四单元作业架构分析 第一次作业其实是本单元三次作业中最难的一次.由于第一次是第一次作业,要考虑到搭建框架和设计架构,这次作业的思维性很强.在了解了各个类型元素(Element ...
- 【OO学习】OO第四单元作业总结及OO课程总结
[OO学习]OO第四单元作业总结及OO课程总结 第四单元作业架构设计 第十三次作业 第十四次作业 总结 这两次作业架构思路上是一样的. 通过将需要使用的UmlElement,封装成Element的子类 ...
- 北航OO第四单元作业总结(4.1~4.3)及课程总结
前言 在学习过JML规格描述语言之后,本单元进行了UML(Unified Modeling Language)的学习.和JML单纯用语言描述的形式不同,UML通过可视化的图形形式,对一系列有关类的元素 ...
- 2019OO第四单元作业总结&OO课程整体总结
第四单元作业总结 第四单元的作业主题是UML图的解析,通过对UML图代码的解析,我对UML图的结构以及各种元素之间的关系的理解更加深入了. ------------------------------ ...
随机推荐
- 转 Postman访问Webapi的Get/Post/Put/Delte请求
Postman访问Webapi的Get/Post/Put/Delte请求 2018年07月26日 15:04:46 DoNotWorkOvertime 阅读数:348 标签: WebApiPostma ...
- laravel 错误提示Fatal Error: Class 'Pheanstalk\Pheanstalk' not found
本地环境版本: composer -V Composer version -- ::10 php artisan -V Laravel Framework 5.6.39 错误提示: Fatal Err ...
- Oracle数据库:ORA-54013错误解决办法
ORA-54013: 不允许对虚拟列执行 INSERT 操作 这是Oracle 11 的新特性 —— 虚拟列. 在以前的Oracle 版本,当我们需要使用表达式或者一些计算公式时,我们会创建数据库视图 ...
- JS拖拽div(移动)
<!doctype html><html><head> <meta charset="utf-8"> <title>JS ...
- VS2013 Winform程序打包部署 InstallShield2015LimitedEdition
VS2013 Winform程序打包部署 VS2013默认是没有安装打包程序的,需要手动安装,我安装的是 InstallShield2015LimitedEdition. 1.点击解决方案,右键,选择 ...
- centos 7 中安装 mysql 5.7
centos 7 中安装 mysql 5.7 环境说明: 查看centos的版本:cat /etc/redhat-release 安装和配置步骤: 下载 mysql 源安装包: sudo curl - ...
- JVM垃圾收集器-G1收集器
G1收集器是当前收集器技术发展的最前沿成果,在JDK1.6_Updata14中提供了Early Access版本的G1收集器以供适用.G1收集器是垃圾收集器理论进一步发展的产物,它与前面的CMS收集器 ...
- Centos6.5下使用LAMP搭建discuz论坛(编译安装 PS :自学中 写的不好请见谅)
wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.27.tar.gz 下载Apache软件包 wget http://downloads.my ...
- docker 网络 路由
通过在Docker宿主机上添加静态路由实现跨宿主机通信 模拟环境 主机1(192.168.58.144) 设置docker0 网关 (172.17.0.1/16) 主机2 ...
- httpd日志格式
日志的缺省格式有如下几种: LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{U ...