python教材第三章答案_小圆圈第三章答案

1.写函数,计算传入数字参数的和。(动态传参)

def sum_count(*args):

return sum(args)

v = sum_count(1, 2, 3, 4) # 传参数

print(v)

2.写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作

import os

def func():

usee_path = input('请输入要修改的文件名:')

if not os.path.exists(usee_path+'.txt'):

print('输入的文件不存在')

usee = input('要修改的内容:')

usee_s = input('内容修改为 :')

with open(usee_path+'.txt',mode='r',encoding='utf-8') as f:

for i in f :

print(i.strip().replace(usee,usee_s))

func()

3.写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。

def func(*args):

if not all(args):

return '有空内容'

return '没有空内容'

v = func(1,2,3,0)

print(v)

4.写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容(对value的值进行截断),

并将新内容返回给调用者,注意传入的数据可以是字符、list、dict

dic = {'k1':'alex','k2':'aaaaaaaaaaaaaaa','k3':'sb'}

def func(a):

for k,v in a.items():

if not len(v) == 2:

a[k]=v[ : 2]

return a

v = func(dic)

print(v)

5.解释闭包的概念

def func(arg):

def info():

return arg

return info

v = func('alex')

v1 = v()

print(v1)

6.写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组

例如:[(‘红心’,2),(‘草花’,2), …(‘黑桃a’)]

lst = [ i for i in range(2,11)]

lis = ['j','q','k','a']

data = lst + lis

info = ['红心','黑桃','梅花','红方']

v =[]

for line in info:

for i in data:

i = tuple((line,i))

v.append(i)

print(v)

7.写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值}

def func(*args):

count = max(args)

count_min = min(args)

return {'max':count,'min':count_min}

v = func(1,2,3,4,33,4,4,5,5566,)

print(v)

8,8. 写函数,专门计算图形的面积

其中嵌套函数,计算圆的面积,正方形的面积和长方形的面积

调用函数area(‘圆形’,圆半径) 返回圆的面积

调用函数area(‘正方形’,边长) 返回正方形的面积

调用函数area(‘长方形’,长,宽) 返回长方形的面积

def area(a1,a2,a3=0):

'''

计算 图形面积

:param a1: 圆形

:param a2: 半径/长

:param a3:宽

:return:

'''

def circular():

print('圆的面积: %s'%(3.14*a2*a2,))

def square():

print('正方形的面积:%d'%(a2*a2,))

def rectangle():

print('长方形的面积 %d'%(a3*a2,))

# 判断瀛湖输入的图形以调用

if a1 =='圆形':

circular()

elif a1 =='正方形':

square()

else:

rectangle()

# 用户输入

usee_graphical = input('请输入要计算的图形 :')

if usee_graphical == '圆形':

usee_radius = int(input('圆的半径:'))

area(usee_graphical,usee_radius)

elif usee_graphical == '正方形':

usee_wide = int(input('正方形的边长:'))

area(usee_graphical,usee_wide)

elif usee_graphical=='长方形':

usee_long = int(input('长方形的长:'))

usee_long_wode = int(input('长方形的宽 :'))

area(usee_graphical,usee_long,usee_long_wode)

9 .写函数,传入一个参数n,返回n的阶乘

def info (arg):

sum =1

for i in range(1,arg):

sum *=i

return sum

v = info(7)

print(v)

10 编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),要求登录成功一次,后续的函数都无需再输入用户名和密码

dic = {'账号': 'alex', '密码': 123, '登陆': false}

def func(arg):

def info():

if dic['登陆'] == true:

print('已经登录')

arg()

usee = input('请输入账号:')

usee_s = int(input('请输入密码:'))

if usee == dic['账号'] and usee_s == dic["密码"]:

print('登陆成功')

dic['登陆']=true

arg()

else:

print('账号或密码错误')

return info

@func

def inner():

print('____欢迎来到_____')

@func

def data():

print('alexnb')

inner()

data()

11.用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb

name=['alex','wupeiqi','yuanhao','nezha']

v = map(lambda x :x+'_sb',name)

for i in v:

print(i)

12.用filter函数处理数字列表,将列表中所有的偶数筛选出来

age = [1,2,34,4,5,66,]

v = filter(lambda x :x%2==0,age)

for i in v:

print(i)

13.如下,每个小字典的name对应股票名字,shares对应多少股,price对应股票的价格

通过哪个内置函数可以计算购买每支股票的总价

用filter过滤出,单价大于100的股票有哪些

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值