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

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

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

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

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

  1. def chr_to_int_neg():
  2. user_input = input('请输您要转换的字符串:')
  3. if user_input.isdigit():
  4. return True
  5. elif user_input.startswith('-') and user_input.split('-',1)[1].isdigit():
  6. return True
  7. return False  

4.定义一个函数,实现传入一个整型数字,判断并直接打印该数字是否是奇数还是偶数

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

5.定义一个函数,实现判断传入数据的类型,并直接打印其类型

  1. def judge_type(user_input):
  2. type_list=[str,int,list,set,dict,tuple,float,bool,complex]
  3. for i in type_list:
  4. if isinstance(user_input, i):
  5. print(i) 

6.定义一个函数,实现可以重复录入键盘信息,当用户输入q或Q时退出,否则判断是否为可转换为整数类型的数据,可以的话输出该数是奇数还是偶数,否则直接输出该字符串

  1. def digital_conversion():
  2. while True:
  3. user_input = input('请输您的内容:')
  4. if user_input.isdigit():
  5. if int(user_input) % 2 == 1:
  6. print('是奇数')
  7. else:
  8. print('是偶数')
  9. elif user_input.startswith('-') and user_input.split('-',1)[1].isdigit():
  10. if int(user_input) % 2 == 1:
  11. print('是奇数')
  12. else:
  13. print('是偶数')
  14. elif user_input == 'Q' or user_input == 'q':
  15. return 0
  16. else:
  17. print(user_input)  

7.定义一个函数,只要传入 "k1:v1,...,kn:vn" 格式的字符串,都可以将其转换为 {'k1':'v1',...,'kn':'vn'}  

  1. def str_to_dict(user_input):
  2. x = {}
  3. for i in user_input.split(','):
  4. k, v = i.split(':')
  5. x[k] = v
  6. print(x)

8.定义一个函数,实现列表与元组类型的反转功能

  1. def lsit_and_tuple(user_input):
  2. if isinstance(user_input, tuple):
  3. return list(user_input)
  4. if isinstance(user_input, list):
  5. return tuple(user_input)  

9.定义一个函数,可以完成对list、tuple、dict、set四种类型数据的循环变量打印,不是这四种,则打印 "暂不支持该数据遍历"

  1. def list_tuple_dict_set(user_input):
  2. ls=[list,tuple,dict,set]
  3. for i in ls:
  4. if isinstance(user_input,i):
  5. for k in user_input:
  6. print(k)
  7. return
  8. else:
  9. print('暂不支持该数据遍历') 

10.定义一个函数,实现对单列集合进行去除的功能

  1. def get_clear(data):
  2. if isinstance(data, set):
  3. return data
  4. temp_list = []
  5. for v in data:
  6. if v not in temp_list:
  7. temp_list.append(v)
  8. if isinstance(data, tuple):
  9. return tuple(temp_list)
  10. return temp_list

11.定义一个函数,实现文件(不一定是文本文件)的跨文件夹的移动

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

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

  1. def outer(func):
  2. def inner(*args, **kwargs):
  3. #装饰前操作
  4. res = func(*args, **kwargs)
  5. #装饰后操作
  6. return res
  7. return inner
  8.  
  9. @outer
  10. def func(*args, **kwargs):
  11. pass

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

  1. def outer(func):
  2. def inner(*args, **kwargs):
  3. for i in args:
  4. if not (isinstance(i,int) or isinstance(i,float)):
  5. print('参数不合法')
  6. return False
  7. res = func(*args, **kwargs)
  8. return res
  9. return inner
  10.  
  11. @outer
  12. def num_sum(a,b):
  13. print(a + b)  

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

  1. def outer1(func):
  2. def inner(*args, **kwargs):
  3. res = func(*args, **kwargs)
  4. return res.title()
  5. return inner
  6.  
  7. @outer1
  8. def retun_name(name):
  9. 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. Javascript仿贪吃蛇出现Bug的反思

    bug现象:    图一

  2. 代码中设置color的selector

    //应该用getColorStateList这种方式 xml中设置时直接color引用就可以了 textView.setTextColor(getResources().getColorStateLi ...

  3. Learning Structured Representation for Text Classification via Reinforcement Learning 学习笔记

    Representation learning : 表征学习,端到端的学习 pre-specified  预先指定的 demonstrate  论证;证明,证实;显示,展示;演示,说明 attempt ...

  4. JVM垃圾收集器-Parallel Scavenge收集器

    今天我给大家讲讲JVM垃圾收集器-Parallel Scavenge收集器 Parallel Scavenge收集器 Parallel Scavenge收集器也是一个新生代收集器,它也是使用复制算法的 ...

  5. leetcode 刷题(3)--- 无重复字符的最长子串

    给定一个字符串,找出不含有重复字符的最长子串的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 无重复字符的最长子串是 "abc",其长度为 ...

  6. js 实现仿 淘宝 五星评价 demo

    <style> @font-face { font-family: 'iconfont'; /* project id 247957 */ src: url('//at.alicdn.co ...

  7. AX3298添加新sensor

    这是编译的工程目录. 1,先把sensor对应的驱动比如GC1034.c添加到工程.然后编译成库.会在res目录下生产sensor.bin文件 流程:编译后在debug目录生成 elf 文件AX329 ...

  8. the status bar issue of react-native Modal on Android ( RN v0.57.0)

    Problem: When use Modal in react-native, the status bar is not included if you make a full-screen ma ...

  9. OO第一次博客作业(第一单元总结)

    Q:菜是绿的,鸡是黄的,那菜鸡是什么颜色的? A:红的,强测全WA了,能不红么. 菜不菜的问题先不说了,认真研究一下这次的题目,以及WA的原因吧. 程序结构简析 三次实验的核心结构都是差不多 第一次的 ...

  10. Mac OS环境下DOSBox汇编环境的搭建

    平台: mac 工具: DOSBox(点击下载DOSBox官网) debug.edit.link.masm等等(点击下载masm汇编开发工具,提取码: skc8) 步骤: 1 .安装DOSBox: 解 ...