1.写函数:

根据范围获取其中3和7整除的所有数的和,并返回调用者:

符合条件的数字个数以及符合条件的数字的总和,如:def func(start,end):

def func(start,end):
count=0
s=0
for i in range(start,end):
if i%3==0 and i%7==0:
count+=1
s+=i
print(i)
return s,count print(func(0,100))

2.函数传递参数时,是引用还是复制值,并证明
引用

def test(a):
print(id(a))
b=1
print(id(b))
test(b)

3.简述三元运算的书写格式以及应用场景
变量=值1  if  条件1   else   值2

将简单的条件判断精简写

4.简述lambda表达式书写格式以及应用场景

函数名=lambda 形参:功能      不写函数名也可以

5.使用set集合获取两个列表l1=[11,22,33],l2=[22,33,44]中相同的元素集合

l1=[11,22,33]
l2=[22,33,44]
set(l1)&set(l2)

6.定义函数统计一个字符串中大写字母、小写字母、数字的个数,并以字典为结果返回

提示:可以用id进行判断

d={'Al':0,'low':0,'num':0}
def tongji(s):
for i in s :
if i.isupper():
d.update(Al=d.get('Al')+1)
elif i.islower():
d.update(low=d.get('low') + 1)
elif i.isnumeric():
d.update(num=d.get('num')+1)
return d t=tongji('Manuel123')
print(t)

7.简述函数的位置参数、关键字参数、默认参数、可变长参数的特点以及注意事项
位置参数:按形参的位置传入的参数叫位置参数,即普通参数

关键字参数:传入实参时指定形参的值

默认参数:形参直接指定默认值的参数

可变长参数:*args,**kwargs,一个*只能接收没有位置参数的实参或传入的列表、元组,两个*可以接收关键字参数和字典格式

8.检查代码,如有错误请改正:

a.

def func(x,y,z):

  print(x,y,z)

func(1,2,3)

>>>1,2,3

b.

def func(x,z,y=5)

  print(x,y,z)

func(1,3,3)

>>>1,3,3

c.

def func(x,y,*z):

  print(x,y,z)

func(1,2,3,4,5,6)

>>>1,2,(3,4,5,6,)

d.

def func(x,y,*z):

  print(x,y,z)

func(1,2,3,4,5,6,6)

>>>1,2,(3,4,5,6,6,)

e.

def func(x,*z,**y):

  print(x,y,z)

func(1,2,3)

>>>1,(2,3,)

f.

def func(x,*y,**z):

  print(x,y,z)

func(1,name=2,age=3)

>>>1,(),{'name':2,'age':3}

g.

def func(x=2,*y,**z):

  pirnt(x,y,z)

func(name=2,age=3)

>>>2,(),{'name':2,'age':3}

h.

def func(*y,**z):

  print(y,z)

func([1,2,3,4,5])

>>>([1,2,3,4,5],){}

i.

def func(*y,**z):

  print()

func(*[1,2,3,4,5])

>>>(1,2,3,4,5,){}

j.

def func(*y,**z):

  print(y,z)

func(*[1,2,3,4,5],name='alex',age=19)

>>>(1,2,3,4,5,){'name':'alex','age':19}

k.

def func(*y,**z):

  pirnt(y,z)

func(*[1,2,3,4,5],{'name':'alex','age':19})

>>>(1,2,3,4,5,{'name':'alex','age':19}){}

l.

def func(*y,**z):

  pirnt(y,z)

func(*[1,2,3,4,5],**{'name':'alex','age':19})

>>>(1,2,3,4,5,){'name':'alex','age':19}

m.

b='oldboy%d%%'%(12,)

print(b)

>>>oldboy12%

9.简述对象和类的关系

如果值是某类型,那这个值就是这个类的对象

10.内置函数all和any的区别

all如果为空,则为真,如果非空,全真则为真

any有一个为真则为真

11.简述文件打开模式‘r’和‘rb’的区别

‘r’:只读模式,解码方式默认为‘utf-8’

‘rb’:以二进制方式读文件,通常处理非txt文件

12.将‘老男人’转换成utf-8编码的字节类型

a='老男人'

b=a.encode('utf8')
c=bytes(a,'utf8')
print(b)
print(c)

13.利用内置函数zip,实现功能
l1=['alex',1,2,3,4],l2=['is',1,2,3],l3=['sb',2,5,6]

获取字符串s='alex_is_sb'

l1=['alex',1,2,3,4]
l2=['is',1,2,3]
l3=['sb',2,5,6]
s=zip(l1,l2,l3)
a='_'.join(list(s)[0])
print(a)

14.检查代码,写出运行结果

a.

name='alex'
def outer(func):
name='bili'
func()
def show():
print(name)#这里的name是全局的name,不是outer里面的name
outer(show)

>>>alex

b.

name='alex'
def outer():
name='bili'
def inner():
print(name)#这里的name是outer里的name,不是全局name
return inner()
ret=outer()
print(ret)

>>>bili
None

c.

name='alex'
def outer():
name='bili'
def inner():
print(name)
return inner
ret=outer()
ret()
print(ret)
result=ret()
print(result)

>>>bili

inner内存地址

bili

None

d.

def outer(func,z,y):
func(z)
def show(x):
return x*x
ret=outer(show,9,23)
print(ret)

>>>None

e.定义函数 实现阶乘

def func(n):
res=1
for i in range(n,1,-1):
res=res*i
return res
print(func(8))
#方法二:递归
def func(n):
if n==1:
return 1
return n*func(n-1)
print(func(8))
#方法三:
from functools import reduce
print(reduce(lambda x,y:x*y,range(1,5)))

15.写程序:利用with实现同时打开两个文件(一写,一读,并将读取的内容写入到写入模式的文件中)

with open('a','r') as x,open('b','w')as y:
y.write(x.read())

python练习题_03的更多相关文章

  1. Python练习题 028:求3*3矩阵对角线数字之和

    [Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得 ...

  2. Python练习题 027:对10个数字进行排序

    [Python练习题 027] 对10个数字进行排序 --------------------------------------------- 这题没什么好说的,用 str.split(' ') 获 ...

  3. Python练习题 026:求100以内的素数

    [Python练习题 026] 求100以内的素数. ------------------------------------------------- 奇怪,求解素数的题,之前不是做过了吗?难道是想 ...

  4. Python练习题 025:判断回文数

    [Python练习题 025] 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. ---------------------------------------- ...

  5. Python练习题 024:求位数及逆序打印

    [Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- ...

  6. Python练习题 004:判断某日期是该年的第几天

    [Python练习题 004]输入某年某月某日,判断这一天是这一年的第几天? ---------------------------------------------- 这题竟然写了 28 行代码! ...

  7. Python练习题-1.使用匿名函数对1~1000求和,代码力求简洁。

    Python 练习 标签(空格分隔): Python Python练习题 Python知识点 一.使用匿名函数对1~1000求和,代码力求简洁. 答案: In [1]: from functools ...

  8. PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。

    Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...

  9. python 基础 2.8 python练习题

    python 练习题:   #/usr/bin/python #coding=utf-8 #@Time   :2017/10/26 9:38 #@Auther :liuzhenchuan #@File ...

随机推荐

  1. gradle安装操作

    下载你所需要对应的版本,gradle-4.3.1-bin.zip 下载后解压到你想要的目录 设置环境变量 在cmd模式下查看,出现信息证明安装成功

  2. visual studio 2017 中默认无法开发 Android 8.0 及以上系统的解决方案

    一般默认比较旧有两个原因,系统版本过旧,Visual Studio 版本过旧. 第一步,将windows 更新到最新版,必须是windows 10 并且更新到最新. 第二步,将visual studi ...

  3. python-简单的登陆接口

    # 工作需求2 编写登陆接口(1输入用户名密码 2认证成功后显示欢迎信息 3输错三次后锁定)# 实现思路 1.用户名和密码是否正确,全部正确可正常登陆 输错三次无法登陆 2.是否已经注册 未注册 无法 ...

  4. 未能加载文件或程序集“SuperMap.Mapping, Version=7.0.0.0, Culture=neutral, PublicKeyToken=0635c574ea890381”或它的某一个依赖项。试图加载格式不正确的程序。

    开发SuperMap.Mapping的时候,蹦出来的错误!让人摸不着头脑.查找原因如下: (1)安装32位的super map iobject后,进行开发,vs上选择目标平台是x86位的,然后从控件列 ...

  5. JavaScript的定时器如何先触发一次再延时

    var data3=0; (function count3(){ console.log("count3:",data3++); setTimeout(count3,1000); ...

  6. 梯度消失(vanishing gradient)和梯度爆炸(exploding gradient)

    转自https://blog.csdn.net/guoyunfei20/article/details/78283043 神经网络中梯度不稳定的根本原因:在于前层上的梯度的计算来自于后层上梯度的乘积( ...

  7. python使用高阶函数计算整数阶乘

    from functools import reduce num = 10 print(reduce(lambda x, y: x * y, range(1, num + 1)))

  8. c# 观察者模式 匿名方法与Lambda

    //匿名方法 //和委托搭配使用 //方便我们快速对委托进行传参 //不需要我们去定义一个新的函数 //直接用delegate关键字代替方法名,后面跟上参数列表与方法体 //delegate(参数列表 ...

  9. python 简单图像识别--验证码

    python  简单图像识别--验证码 记录下,准备工作安装过程很是麻烦. 首先库:pytesseract,image,tesseract,PIL windows安装PIL,直接exe进行安装更方便( ...

  10. 使用pgrouting进行最短路径搜索

       PgRouting是基于开源空间数据库PostGIS用于网络分析的扩展模块,最初它被称作pgDijkstra,因为它只是利用Dijkstra算法实现最短路径搜索,之后慢慢添加了其他的路径分析算法 ...