python练习题_03
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的更多相关文章
- Python练习题 028:求3*3矩阵对角线数字之和
[Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得 ...
- Python练习题 027:对10个数字进行排序
[Python练习题 027] 对10个数字进行排序 --------------------------------------------- 这题没什么好说的,用 str.split(' ') 获 ...
- Python练习题 026:求100以内的素数
[Python练习题 026] 求100以内的素数. ------------------------------------------------- 奇怪,求解素数的题,之前不是做过了吗?难道是想 ...
- Python练习题 025:判断回文数
[Python练习题 025] 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. ---------------------------------------- ...
- Python练习题 024:求位数及逆序打印
[Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- ...
- Python练习题 004:判断某日期是该年的第几天
[Python练习题 004]输入某年某月某日,判断这一天是这一年的第几天? ---------------------------------------------- 这题竟然写了 28 行代码! ...
- Python练习题-1.使用匿名函数对1~1000求和,代码力求简洁。
Python 练习 标签(空格分隔): Python Python练习题 Python知识点 一.使用匿名函数对1~1000求和,代码力求简洁. 答案: In [1]: from functools ...
- PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。
Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...
- python 基础 2.8 python练习题
python 练习题: #/usr/bin/python #coding=utf-8 #@Time :2017/10/26 9:38 #@Auther :liuzhenchuan #@File ...
随机推荐
- 普通路由器刷开源固件DD-WRT的简单过程
DD-WRT是基于Linux的无线路由软件,功能强大,它提供了许多一般路由器的软体所没有的功能,将路由器固件升级到DD-WRT可以提升内建于预设固件的限制,并将其转换成强大且具有进阶功能的商业级路由器 ...
- 网络请求 selenium
网络请求 selenium 部分流程: 第一:爬虫引擎生成requests请求,送往scheduler调度模块,进入等待队列,等待调度.第二:scheduler模块开始调度这些requests,出队, ...
- Oracle数据csv导入
打开工具,在tool下面有个Text Importer 先选择Data from textfile选项卡 然后选择 Open data file ,打开要导入的文件 1\ 2\ 再先选择Data to ...
- python3-基础1
eval() --- 返回表达式计算结果 实际上就是把括号中的命令提取出来执行一遍. eval("print('ok')") ok 可变类型: 在ID不变的情况下,value可变 ...
- Android memory dump
1.读取指定pid和内存地址的字符: #include <stdlib.h> #include <stdio.h> #include <string.h> #inc ...
- 工控随笔_20_西门子_WinCC的VBS脚本_09_常量和流程控制_02
vbs不但提供了分支结构,还提供了丰富的循环形式.一共有3种循环: 1.for循环 2.do...loop循环 3.while循环 各种循环有各自的特点,在使用的时候可以进行转换. 前面已经描述过Fo ...
- LeetCode——688. Knight Probability in Chessboard
一.题目链接:https://leetcode.com/problems/knight-probability-in-chessboard/ 二.题目大意: 给定一个N*N的棋盘和一个初始坐标值(r, ...
- 20175311 2018-2019-2 《Java程序设计》第五周学习总结
20175311 2018-2019-2 <Java程序设计>第5周学习总结 教材学习内容总结 抽象类和具体类的区别在于抽象类中有抽象方法而具体类中没有.且抽象类不能实例化. 接口:如果一 ...
- idea properties文件中文无法正常显示
引用:https://blog.csdn.net/u010999809/article/details/81204457 问题:在idea打开配置文件,已经设置了全局编码格式为UTF-8,和项目编码格 ...
- Centos 7环境下配置MySQL 5.7读写分离
1.实验目的: 实现在Centos 7系统环境下,MySQL5.7读写分离. 2.实验条件: MySQL主服务器:Centos 7桌面环境,IP:10.10.11.31 MySQL从服务器:Cento ...