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

  

 

posted @ 2019-04-18 14:08  百衲本  阅读(368)  评论(0编辑  收藏  举报
cnblogs_post_body { color: black; font: 0.875em/1.5em "微软雅黑" , "PTSans" , "Arial" ,sans-serif; font-size: 15px; } cnblogs_post_body h1 { text-align:center; background: #333366; border-radius: 6px 6px 6px 6px; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); color: #FFFFFF; font-family: "微软雅黑" , "宋体" , "黑体" ,Arial; font-size: 23px; font-weight: bold; height: 25px; line-height: 25px; margin: 18px 0 !important; padding: 8px 0 5px 5px; text-shadow: 2px 2px 3px #222222; } cnblogs_post_body h2 { text-align:center; background: #006699; border-radius: 6px 6px 6px 6px; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); color: #FFFFFF; font-family: "微软雅黑" , "宋体" , "黑体" ,Arial; font-size: 20px; font-weight: bold; height: 25px; line-height: 25px; margin: 18px 0 !important; padding: 8px 0 5px 5px; text-shadow: 2px 2px 3px #222222; } cnblogs_post_body h3 { background: #2B6695; border-radius: 6px 6px 6px 6px; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); color: #FFFFFF; font-family: "微软雅黑" , "宋体" , "黑体" ,Arial; font-size: 18px; font-weight: bold; height: 25px; line-height: 25px; margin: 18px 0 !important; padding: 8px 0 5px 5px; text-shadow: 2px 2px 3px #222222; } 回到顶部 博客侧边栏 回到顶部 页首代码 回到顶部 页脚代码