整理函数相关知识点,写博客。

  1. 看代码写结果
1.
def func():
for i in range(3):
print(i)
return 666
print(func()) # 0 1 2 666 2.
def func():
for i in range(3):
return 666
print(func()) # 666 3.
def func():
while 1:
print(666)
return 111
print('太白')
print(func())
print('23期') # 太白 666 111 23期
  1. 写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

答案

l1 = [11, 22, 33, 44, 55]
def func(a):
l2 = []
for j in range(len(a)):
if j % 2 != 0:
l2.append(a[j])
return l2
ret = func(l1)
print(ret) # 输出结果
[22, 44] # 讲解答案
def func(l): returnl[1::2]
print(fun([1,2,3,4]))
  1. 写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。

答案

l1 = [11, 22, 33, 44, 55, 77]
def func(a):
return True if len(a) > 5 else False
ret = func(l1)
print(ret) # 输出结果
True # 讲解
def func(argv):
if len(argv) > 5:
return True
else:
return False def func(argv):
return True if len(argv)>5 else False def func(argv):
return len(argv) > 5
print(func('fhdskafdsa'))
print(func('f'))
  1. 写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

答案

# 方法一:
# 如果列表长度小于2
l1 = []
def func(a):
return a[:2] if len(a) > 2 else a[:2]
ret = func(l1)
print(ret)
# 输出结果
[] # 方法二:
# 如果列表长度小于2
l1 = []
def func(a):
l2 = []
if len(a) > 2:
l2.append(l1[:2])
return l2[0]
else:
return l2
ret = func(l1)
print(ret) # 输出结果
[] # 应该返回的是之前列表的本身 # 如果列表长度大于2
l1 = [11, 22, 33, 44, 55, 77]
def func(a):
l2 = []
if len(a) > 2:
l2.append(l1[:2])
return l2[0]
else:
return l2
ret = func(l1)
print(ret)
# 输出结果
[11, 22] # 讲解结果
def func(argv):
if len(argv) > 2:
return argv[:2]
else:
return argv def func(argv):
return argv[:2] if len(argv) > 2 else argv
l1 = [1,2,3,4]
l1 = [1,]
print(l1[:2]) def func(argv):
return argv[:2] # func([1,2,3,4])
print(func([1,]))
  1. 写函数,计算传入函数的字符串中,[数字]、[字母] 以及 [其他]的个数,并返回结果。

答案

s1 = 'djeid2djsoj7dfj789k#$@'
def func(a):
num = 0
letter = 0
other = 0
for i in a:
if i.isdecimal():
num += 1
elif i.isalpha():
letter += 1
else:
other += 1
return f'数字个数:{num},字母个数:{letter},其他:{other}'
ret = func(s1)
print(ret) # 输出结果
数字:5个,字母:14个,其他:3个 # 讲解
s1 = '中国afdf'
print(s1.isalpha())
  1. 写函数,接收两个数字参数,返回比较大的那个数字。

答案

# 位置传参
def func(x,y): return x if x > y else y
ret = func(5,10)
print(ret) # 返回结果
10 # 关键字传参
def func(x,y): return x if x > y else y
ret = func(y=5,x=10)
print(ret) # 返回结果
10
  1. 写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

    dic = {"k1": "v1v1", "k2": [11,22,33,44]}

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

答案

dic = {"k1": "v1v1", "k2": [11,22,33,44]}
def func(a):
dic_new = {}
for i,j in a.items():
if len(j) > 2:
dic_new[i]=j[:2]
return dic_new
ret = func(dic)
print(ret)
# 输出结果
{'k1': 'v1', 'k2': [11, 22]}
  1. 写函数,此函数只接收一个参数且此参数必须是列表数据类型,此函数完成的功能是返回给调用者一个字典,此字典的键值对为此列表的索引及对应的元素。例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。

答案

# 传入列表
l1 = [11,22,33,44,55]
def func(a):
dic1 = {}
if type(a) == list:
for i,j in enumerate(a):
dic1[i]=j else:
return '警告:传入的参数必须是列表数据类型'
return dic1
ret = func(l1)
print(ret)
# 结果
{0: 11, 1: 22, 2: 33, 3: 44, 4: 55} # 传入非列表
l1 = 'dfajdsfj123'
def func(a):
dic1 = {}
if type(a) == list:
for i,j in enumerate(a):
dic1[i]=j else:
return '警告:传入的参数必须是列表数据类型'
return dic1
ret = func(l1)
print(ret)
# 输出结果
警告:传入的参数必须是列表数据类型 # 讲解答案
def func(argv): # [11,22,33]
# return {0:argv[0],1:argv[1],}
dic = {}
for i in range(len(argv)):
dic[i] = argv[i]
return dic print(func([11,22,33,44,56]))
  1. 写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。用户通过输入这四个内容,然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中。

答案

def func(name,sex,edu,age):
text = f'姓名:{name},性别:{sex},年龄:{age},学历:{edu}'
with open('student_msg',mode='a',encoding='utf-8') as f:
f.write('\n' + text) return '已添加,内容:',text
ret = func('太白金星','男','博士',18)
print(ret)
# 输出结果
('已添加,内容:', '姓名:太白金星,性别:男,年龄:18,学历:博士')
student_msg中内容:
姓名:太白金星,性别:男,年龄:18,学历:博士
姓名:太白金星,性别:男,年龄:18,学历:博士 # 讲解答案
def register(name,sex,age,edu):
with open('student_msg',encoding='utf-8',mode='a') as f1:
f1.write(f'{name},{sex},{age},{edu}\n')
n,s,a,e = input('请依次输入姓名,性别,年龄,学历并以逗号隔开').strip().replace(',',',').split(',') # '立业,男,35,小本'
register(n,s,a,e)
  1. 对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。

答案

def func():
while 1 : name=input('请输入姓名:')
age=input('请输入年龄:')
edu=input('请输入学历:')
sex=input("请输入性别:")
if sex=="":
s=open('a1',mode="a+",encoding='utf-8')
s.write('姓名:%s,年龄:%s,学历:%s,性别:男' %(name,age,edu) + '\n')
else:
s = open('a1', mode="a+", encoding='utf-8')
s.write('姓名:%s,年龄:%s,学历:%s, 性别:%s' % (name, age, edu,sex) + '\n')
i = input('Q退出/回车继续')
if i.upper() == "Q":
exit()
print(func())
# 输出结果
# 文件内容
姓名:太白,年龄:18,学历:博士,性别:男
姓名:杨丽丽,年龄:19,学历:本科, 性别:女
  1. 写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(选做题)。

答案

def func(filename1,filename2,old_content,new_content):
with open(filename1, mode="r", encoding='utf-8') as f1,\
open(filename2, mode='a+', encoding='utf-8') as f2:
for content in f1:
content = content.replace(old_content,new_content)
# f2.seek(0,0)
f2.write(content)
import os
os.remove(filename1)
os.rename(filename2,filename1)
func('a1.txt','a2.txt','sb','alex')

python之道09的更多相关文章

  1. Python补充06 Python之道

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python有一个彩蛋,用下面语句调出: import this 该彩蛋的文档记录 ...

  2. Python标准库09 当前进程信息 (部分os包)

    原文:Python标准库09 当前进程信息 (部分os包) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们在Linux的概念 ...

  3. 彩蛋 Python之道

    彩蛋 Python之道 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 使用下面的语句可以调出Python中的一个彩蛋, impo ...

  4. 【转】Python之道

    作者:Vamei 出处:http://www.cnblogs.com/vamei Python有一个彩蛋,用下面语句调出: import this 该彩蛋的文档记录于PEP 20. 语句执行之后,终端 ...

  5. Python之道(一)之安装Python

    "Python之道"首先介绍一下在windows系统下怎样安装Python开发环境. (1)下载MSI安装文件 进入网址www.python.org,点击Downloads进入下载 ...

  6. Python web前端 09 jQuery

    Python web前端 09 jQuery 一.三个重要网址 http://jquery.cuishifeng.cn/ #中文查询网站 http://www.bootcdn.cn/ #引入jq ht ...

  7. 一入python深似海--python之道

    python社区不乏幽默.先来看"python之道"这首诗. 导入this包: import this 输出是一首诗,这首诗总结了Python的风格,能够指导Python程序猿的编 ...

  8. Python 30道高频面试题及详细解答

    开学啦,开学啦!周末坐地铁的时候看到很多同学推着行李箱,拎着大包小包的穿梭在人群中,哎新的一学期又开始啦,同时也意味着很多同学要准备毕业啦,尤其是准大四,准研三的同学. 今年的招聘行情并不乐观,小公司 ...

  9. Python 多道技术以及进程、线程和协程

    多道技术 并发:看起来像同时运行 并行:真正意义上的同时运行,并行肯定是并发 空间的复用与时间复用 空间复用 多个程序用一套计算机硬件 时间复用 程序切换节省时间 ''' 切换(cup)分为两种情况 ...

随机推荐

  1. Unity 5 全局光照GI与新的烘焙系统初探

    http://blog.csdn.net/sparrowfc/article/details/45650013 GI是啥 Realtime GI,实时全局光照,听上去就是一个非常高大上的词,但是越高大 ...

  2. cf777D(贪心&&c_str()函数)

    题目链接:http://codeforces.com/contest/777/problem/D 题意:给出n行以#开头的字符串,从原字符串尾部删除尽量少的字符串,使其为非降序排列. 思路:我们可以从 ...

  3. hiho week 136(二分+优先队列)

    题目链接:http://hihocoder.com/contest/hiho136/problem/1 题意:中文题诶- 思路:直接对缓存区长度二分就好了,注意计算当前长度的"延迟惩罚值&q ...

  4. CodeForces - 820

    Mister B and Book ReadingCodeForces - 820A 题意:C,V0,V1,A,L..总共有C页书,第一天以V0速度读,每天加A,但是不能超过V1,并且要从前一天的看到 ...

  5. Luogu P3941 入阵曲【前缀和】By cellur925

    题目传送门 题目大意:给你一个\(n\)*\(m\)的矩阵,每个位置都有一个数,求有多少不同的子矩阵使得矩阵内所有数的和是\(k\)的倍数. 数据范围给的非常友好233,期望得到的暴力分:75分.前1 ...

  6. [题解](同余)POJ_3696_The Luckiest Number

    还是挺难的吧......勉强看懂调了半天 首先表达式可以写成 8(10^x -1)/9,题意为求一个最小的x使L | 8(10^x -1)/9 设d=gcd(L,8) L | 8(10^x -1)/9 ...

  7. Jmeter—生成excel结果文件

    相信很多用jmeter进行接口测试的童鞋都会有这样的苦恼:同时执行上百条测试案例,如何能轻松加愉快地检查案例输出结果?仅仅靠jmeter的断言.debug sampler.察看结果树等是无法满足我们要 ...

  8. JS 时间格式为/Date(1332919782070)/ 转化为正常的格式

    原理是取中间的毫秒数,再转换成js的Date类型 function ChangeDateFormat(val) { if (val != null) { var date = new Date(par ...

  9. python之set集合、深浅拷贝

    一.基本数据类型补充 1,关于int和str在之前的学习中已经介绍了80%以上了,现在再补充一个字符串的基本操作: li = ['李嘉诚','何炅','海峰','刘嘉玲'] s = "_&q ...

  10. 微服务实践分享(2)api网关

    1.作用[http://chuansong.me/n/465796751848]: 一个完整的.「面向接入」的API GW需要包含以下功能: 面向运行期 对客户端实现身份认证 通信会话的秘钥协商,报文 ...