Python高级程序设计作业三

部分来着网络,侵删,仅供参考

  1. 写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成批修改操作
def modify(add,o,n):
    import os
    with open(r'%s'%add, mode='rt', encoding='utf-8') as read_f,\
            open(r".%s"%add,mode='wt',encoding='utf-8') as write_f:
        for line in read_f:
            write_f.write(line.replace(o,n))

    os.remove(r'%s'%add)
    os.rename(r'.%s'%add,r'%s'%add)

add = input('修改的文件路径:').strip()
o = input('要修改的内容:').strip()
n = input('修改后的内容:').strip()
modify(add,o,n)
  1. 写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数。
def count(x):
    y = []
    for z in x:
        if z not in y:
            y.append(z)
    for z in y:
        print('%s有%s'%(z,x.count(z)))

x = input('输入字符串:')
count(x)
  1. 写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
def estimateLength(data):
    if len(data)>5:
        print("该参数长度大于5")
    else:
        print("该参数长度不大于5")
str="yangfan"
list=[1,2,3,4,5]
tuple={"1","2"}
estimateLength(str)
estimateLength(list)
estimateLength(tuple)
  1. 写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def len(x):
    print(x[0:2])
    return x[0:2]
len([1,2,3])
  1. 写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
def odd(*args):
    x = list(args[0:-1:2])
    print(x)
    return x
odd(1,2,3,4,5,6)
  1. 写函数,检查字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}

PS:字典中的value只能是字符串或列表

dic = {"k1": "v1v1", "k2": [11,22,33,44]}
def di(dic):
    dic1 = {}
    for k in dic:
        v = dic[k]
        v = v[0:2]
        dic1[k] = v
    print(dic1)
    return dic1
di(dic)
  1. 编写一个名为 make_shirt()的函数,它接受一个尺码以及要印到 T 恤上的字样。这个函数应打印一个句子,概要地说明 T 恤的尺码和字样。
    7.1使用位置实参调用这个函数来制作一件 T 恤;再使用关键字实参来调用这个函数。
    7.2 修改函数 make_shirt(),使其在默认情况下制作一件印有字样“I love Python”的大号 T 恤。调用这个函数来制作如下 T 恤:一件印有默认字样的大号 T 恤、 一件印有默认字样的中号 T 恤和一件印有其他字样的 T 恤(尺码无关紧要)。
def make_shirt(size,msg = 'I love Python'):
	print('这件t恤衫的尺寸是:' + size + ';印花文字为:' + msg)
make_shirt('大号T恤')
make_shirt('中号T恤')
make_shirt('小号T恤','123456')
  1. 编写一个函数,将一辆汽车的信息存储在一个字典中。这个函数总是接受制造商和型号,还接受任意数量的关键字实参。这样调用这个函数:提供必不可少的信息,以及两个名称—值对,如颜色和选装配件。这个函数必须能够像下面这样进行调用:
car = make_car('subaru', 'outback', color='blue', tow_package=True) 

打印返回的字典,确认正确地处理了所有的信息。

def make_car(manufacturer,model,**car_info):
    """创建一个字典,其中包含我们知道的有关用户的一切"""
    profile = {}
    profile['car_manufacturer'] = manufacturer
    profile['car_model'] = model
    for key, value in car_info.items():
        profile[key] = value
    return profile
car=make_car('subaru', 'outback', color='blue', tow_package=True)
print(car)
  1. 编写Python函数以验证给定字符串仅包含字母(大写或小写)和数字。因此,不允许使用空间和下划线“_”。调用函数时可以得到这样结果:
print(contains_only_characters_and_numbers('John')) # True 
print(contains_only_characters_and_numbers('John_Hunt')) # False 
print(contains_only_characters_and_numbers('42')) # True 
print(contains_only_characters_and_numbers('John42')) # True 
print(contains_only_characters_and_numbers('John 42')) # False
def contains_only_characters_and_numbers(X):
    return X.isalnum()
print(contains_only_characters_and_numbers('John')) # True 
print(contains_only_characters_and_numbers('John_Hunt')) # False 
print(contains_only_characters_and_numbers('42')) # True 
print(contains_only_characters_and_numbers('John42')) # True 
print(contains_only_characters_and_numbers('John 42')) # False
  1. 编写一个函数来验证英国邮政编码格式(称为verify_Postcode)。邮政编码的格式是两个字母后跟1或2个数字,后跟空格,后跟一个或两个数字,最后是两个字母。比如有的邮政编码是SY23 4ZZ,还有邮政编码可能是BB1 3PO,还有可能有AA1 56NN。调用这个函数完成下面的测试结果。
# True 
print("verify_postcode('SY23 3AA'):", verify_postcode('SY23 33AA')) 
# True 
print("verify_postcode('SY23 4ZZ'):", verify_postcode('SY23 4ZZ')) 
# True 
print("verify_postcode('BB1 3PO'):", verify_postcode('BB1 3PO')) 
# False 
print("verify_postcode('AA111 NN56'):", verify_postcode('AA111 NN56')) 
# True 
print("verify_postcode('AA1 56NN'):", verify_postcode('AA1 56NN')) 
# False 
print("verify_postcode('AA156NN'):", verify_postcode('AA156NN')) 
# False 
print("verify_postcode('AA NN'):", verify_postcode('AA NN'))
import re
def verify_postcode(str):
    if re.match(r'[A-Z]{2}\d{1,2} \d{1,2}[A-Z]{2}',str,flags=0) is None:
        return False
    else:
        return True
# True 
print("verify_postcode('SY23 3AA'):", verify_postcode('SY23 33AA')) 
# True 
print("verify_postcode('SY23 4ZZ'):", verify_postcode('SY23 4ZZ')) 
# True 
print("verify_postcode('BB1 3PO'):", verify_postcode('BB1 3PO')) 
# False 
print("verify_postcode('AA111 NN56'):", verify_postcode('AA111 NN56')) 
# True 
print("verify_postcode('AA1 56NN'):", verify_postcode('AA1 56NN')) 
# False 
print("verify_postcode('AA156NN'):", verify_postcode('AA156NN')) 
# False 
print("verify_postcode('AA NN'):", verify_postcode('AA NN'))

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值