'''
2.写函数,检查获取传入列表或元组对象的所有奇数位
索引对应的元素,并将其作为新列表返回给调用者。
'''
#学会了 原来 range(len(iter)) 是 从零到len-1 的数的组合 建新放在函数里就可以
#学会了 原来 range(len(iter))  是 从零到len-1 的数的组合  建新放在函数里就可以
def hanshu1(can1):
new_line1 = []
for i in range(1,len(can1),2):
new_line1.append(can1[i])
return new_line1
lis1 = [1,9,3,4,5,6,7]
tup1 = (1,9,3,4,5,6,7)
ret1 = hanshu1(lis1)
print(ret1)
ret2 = hanshu1(tup1)
print(ret2) #以下两者相同 都是0-4 顾头不顾尾
# for a in range(5):
# print(a,end=' ')
# for a in range(0,5):
# print(a,end=' ')
#3 3.写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
# 学到了 不是写 print 而是写 return 而且把 返回的值 print即可
def hanshu2(can2):
if len(can2)>5:
return '大于5!'
else:
return '不大于5!'
i1 = [1,2,3]
i2 = ''
i3 = (1,2,'',[])
print(len(i2))
print(hanshu2(i1))
print(hanshu2(i2))
print(hanshu2(i3))
'''
4.写函数,检查传入列表的长度,如果大于2,
那么仅保留前两个长度的内容,并将新内容返回给调用者。
'''#是不是只执行一个 return 只要第一个return 有了值 就不走下一个了 是!
def hanshu3(can3):
new_list1 = []
if len(can3)>2:
for i in range(2):
new_list1.append(can3[i])
else:
return can3
return new_list1
print(hanshu3([5]))
#写函数,检查传入list, str ,tuple的长度,如果大于2,
def hanshu3(can3):
if len(can3)>2:
a = can3[0:2]
else:
return can3
return a
print(hanshu3((1,2,3)))
'''
5.写函数,计算传入函数的字符串中,
[数字]、[字母]、[空格] 以及 [其他]的个数,并返回结果。'''
def hanshu4(can4):
st = 0
zim = 0
kongg = 0
qit = 0
for can in can4:
if can.isdigit():
st += 1
elif can.isalpha():
zim +=1
elif can==' ':
kongg +=1
else:
qit +=1
return st,zim,kongg,qit
shu,zi,kong,qi = hanshu4('adada_ 11%%%')
print('数字:{},字母:{},空格:{},其它:{}'.format(shu,zi,kong,qi))
print(hanshu4('adada_ 11%%%'))
#6.写函数,接收两个数字参数,返回比较大的那个数字。
def hanshu5(can51, can52):
return can51 if can51 > can52 else can52
print(hanshu5(1,1))
'''
7.写函数,检查传入字典的每一个value的长度,如果大于2,
那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表
'''
#学会了 用列表存值 然后用
# for rang() 删后面的方法 都是用的这些
# 因为 对字典进行操作 所以 都输出can6
def hanshu6(can6):
if len(can6)>2:
lis = []
for key in can6:
lis.append(key)
for i in range(2,len(can6)):
print(i)
del can6[lis[i]]
else:
return can6
return can6
dic = {"k1": "v1v1",'k3':1, "k2": [11,22,33,44] }
print(hanshu6(dic))
读题读错了 是改值 的内容 两位 改之
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
def hanshu7(can7):
for a in can7:
if len(can7[a])>2: can7[a] = can7[a][0:2]
return can7
print(hanshu7(dic))

'''
8.写函数,此函数只接收一个参数且此参数必须是列表数据类型,
此函数完成的功能是返回给调用者一个字典,此字典的键值对为此列表的索引及对应的元素。
例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。'''
def hanshu7(can7):
i = 0
dic1 = {}
for list2 in can7:
dic1[i] =list2
i += 1
return dic1
print(hanshu7([11,22,33]))''
'''
9.写函数,函数接收四个参数分别是:
姓名,性别,年龄,学历。用户通过输入这四个内容,
然后将这四个内容传入到函数中,此函数接收到这四个内容,
将内容追加到一个student_msg文件中。'''
def hanshu8(can81, can82,can83,can84):
with open('student_msg','a',encoding='utf-8') as f:
f.write(can81)
f.write(can82)
f.write(str(can83))
f.write(can84)
name,gender,age,education = 'liuyang','男',25,'本科'
print(name,gender,age,education)
hanshu8(name,gender,age,education)
'''
# 10.对第9题升级:支持用户持续输入,Q或者q退出,
# 性别默认为男,如果遇到女学生,则把性别输入女。'''
# # def hanshu8(can81, can82, can83='男' , can84): # 默认的不能再待赋前
# 因为 把后面的 改成 strip() 浪费了诸多时间 打印出来就好了
# 就是一个赋值 的问题 因为 split(',')从中作梗,耽误了,
# 付给他值然后split(‘,’)格式就可以了
'''
def hanshu8(can81, can83,can84,can82='男'):
with open('student_msg', 'a', encoding='utf-8') as f:
f.write(can81)
f.write(str(can83))
f.write(can84)
f.write(can82)
while 1 :
# name, gender, age, education = 'liuyang', '男', 25, '本科'
# a = input('输入你的内容:')
list3 = input('name,age,education,gender:(输入q\Q退出)')
if list3.lower() =='q':
break
else:
list2 = list3.split(',')
print(list2)
name, age, education,gender = list2
print(name, age, education,gender)
hanshu8(name, age, education,gender)
'''
11. 写函数,用户传入修改的文件名,
与要修改的内容,执行函数,完成整个文件的批量修改操作(升级题)。''' #肯定得先新建文件

用r+

def hanshu9(file_name , old_ele,new_ele):
# with open(file_name)as read_f,open(file_name,'w')as write_f:
with open(file_name,"r+")as read_f:
a=read_f.read().replace(old_ele, new_ele)
# read_f.seek(0,0)
read_f.write(a)
read_f.truncate()#如果比原有的短。自动覆盖 如果比原有的等长没事
hanshu9('genggai','dalaoa','laoshi')

用删一个 赋值的方法

def hanshu9(file_name , old_ele,new_ele,old_name):
with open(file_name)as read_f , open(old_name,'w')as write_f:
write_f.write(read_f.read().replace(old_ele, new_ele))
os.remove(file_name)
os.rename(file_name,old_name)
hanshu9('genggai','dalaoa','laoshi','a')

day08作业---函数的更多相关文章

  1. 网络1911、1912 C语言第4次作业--函数批改总结

    目录 网络1911.1912 C语言第4次作业--函数批改总结 一.评分规则 二.本次作业亮点 三.本次作业存在的问题 四.助教有话说 五.得分详情 网络1911.1912 C语言第4次作业--函数批 ...

  2. C语言第十一次作业--函数嵌套调用

    一.实验作业 1.1 PTA题目:递归法对任意10个数据按降序排序 设计思路 定义整型循环变量i,最小值下标min,中间变量t 若n==1,直接返回 否则 min=10-n 最小值下标赋初值 for ...

  3. C语言第五次博客作业--函数

    一.PTA实验作业 题目1:使用函数判断完全平方数 1. 本题PTA提交列表 2. 设计思路 3.本题调试过程碰到问题及PTA提交列表情况说明. 部分正确 :将else的情况放入for循环内,导致循环 ...

  4. C语言博客作业--函数嵌套调用

    一.实验作业(6分) 本周作业要求: 选一题PTA题目介绍. 学习工程文件应用,设计实现学生成绩管理系统. 学生成绩管理系统要求 设计一个菜单驱动的学生成绩管理程序,管理n个学生m门考试科目成绩,实现 ...

  5. C语言博客作业—函数嵌套调用

    一.实验作业 1.1 PTA题目:递归法对任意10个数据按降序排序 1.1.1设计思路 void sort(int a[],int n) { 定义整型循环变量i,中间变量temp,最小值min: 令m ...

  6. C语言第十一次博客作业---函数嵌套调用

    一.实验作业 1.1 PTA题目 题目:递归实现顺序输出整数 1. 本题PTA提交列表 2. 设计思路 printdigits函数 定义整型变量result存放结果 if n是10的倍数 result ...

  7. C语言博客作业--函数

    一.PTA实验作业 题目1 (6-7) (1).本题PTA提交列表 (2)设计思路 设计第一个函数判断是否完数int factorsum( int number ) 定义sum.i:sum初始化归0, ...

  8. C语言第五次作业函数

    一.PTA实验作业 题目1: 6-6 使用函数输出水仙花数 1.本题PTA提交列表 2.设计思路 1.narcissistic函数 1.由于number的值后面会变化,所以定义d,e用于储存numbe ...

  9. C语言博客作业——函数

    一.PTA实验作业 题目1:6-6 使用函数输出水仙花数 1.本题PTA提交列表 2. 设计思路 int narcissistic( int number ) //函数定义 1.定义整数型变量a.i分 ...

随机推荐

  1. CentOS Mysql常用命令

    1.更改root密码 mysqladmin -uroot password 'yourpassword' 2.远程登陆mysql服务器 mysql -uroot -p -h192.168.137.10 ...

  2. TOJ1698/POJ3264Balanced Lineup (线段树 or RMQ-ST)

    传送门:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1698 时间限制(普通/Java): ...

  3. 网页中flash设置

    我们现在大部分人做网页,都是直接用DW插入flash,而且DW也是所见即所得,直接生成了相应的flash显示代码.可是我们又有多少人了解这些直接由DW生成的代码呢?其实我接触flash player标 ...

  4. Jmeter 录制脚本(一)

    第一种方法:使用Badboy来录制脚本 1. 启动Badboy, 工具栏上的红色圆形按钮是默认启动的,在地址栏直接输入被测试WEB项目的地址,然后点击右边的箭头. 2.录制完成后,点击工具栏上的黑色按 ...

  5. 将tomcat做成windows服务

    @参考文章 大致步骤: 1,配置环境变量(选读) 2,安装 3,卸载(选读) 配置环境变量: 这块不是必须的.我不喜欢给tomcat配置环境变量,默认即可.如需要配置可看参考文章,也可参考我之前的文章 ...

  6. ubuntu下安装redis及常用操作

    reids是一个内存数据库,具有存取速度快,使用简单等优点.我们常常在分布式或者负载均衡的系统中使用它来缓存一些公用的且不是很大量的数据,比如session或者各类token(比如微信的access_ ...

  7. 5-Error:failed to find Build Tools revision 28.0.0 rc1解决方案

    将app下面的build.gradle中的版本改为你安装的 sdk 版本:

  8. shell加密工具shc的安装和使用

    1) 工具说明 shell脚本是可读写的, 很有可能会泄露敏感信息, 如用户名/密码/路径/IP等. 同样在shell脚本运行时会也泄露敏感信息. shc是一个加密shell脚本的工具, 它的作用是把 ...

  9. Web API、WCF和Web Service的区别

    [转载] Web Service 1.它是基于SOAP协议的,数据格式是XML 2.只支持HTTP协议 3.它不是开源的,但可以被任意一个了解XML的人使用 4.它只能部署在IIS上 WCF 1.这个 ...

  10. SSI服务端包含技术

    1.页面拆出来怎么样通过web服务浏览呢? 使用web服务(例如nginx)的SSI技术,将多个子页面合并渲染输出. 2.SSI是什么? 3. ssi包含类似于jsp页面中的incluce指令,ssi ...