1、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

def func1(List):
List2 = []
for num in range(len(List)):
if num % 2 != 0:
List2.append(List[num])
return List2

2、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。

def fun1(Object):
if type(Object) != tuple and type(Object) != list and type(Object) != str:
print('您传入的参数有误')
return 1
if len(Object) > 5:
print('您的参数长度挺大')
else:
print('太他吗短了~')
return

3、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

def func1(List):
if len(List) > 2:
return List[0:2]

4、写函数,计算传入字符串中[数字]、[字母]、[空格] 以及 [其他]的个数,并返回结果。

def func1(Str):
Dict = {'数字':0,'字母':0,'空格':0,'其他':0}
for i in Str:
if i.isdigit():
Dict['数字'] = Dict['数字'] + 1
elif i.isalpha():
Dict['字母'] = Dict['字母'] + 1
elif i.isspace():
Dict['空格'] = Dict['空格'] + 1
else:
Dict['其他'] = Dict['其他'] + 1
return Dict

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

def func1(Object):
if isinstance(Object,(str,list,tuple)):
for i in Object:
i = str(i)
if i.isspace():
print('包含空格')
return

6、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

def func1(Object):
if isinstance(Object,dict):
for i,k in Object.items():
if len(k) > 2:
Object[i] = k[0:2]
return Object

7、写函数,接收两个数字参数,返回比较大的那个数字。

def func1(n,m):
if isinstance(n,int) and isinstance(m,int):
if n > m:
return n
else:
return m
print('参数有误,请重新传入')
return 1

8、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(进阶)。

def func(filename,old,new):
with open(filename, encoding='utf-8') as f, open('%s.bak'%filename, 'w', encoding='utf-8') as f2:
for line in f:
if old in line:
line = line.replace(old,new)
f2.write(line)
import os
os.remove(filename)
os.rename('%s.bak'%filename, filename)

9、写一个函数完成三次登陆功能,再写一个函数完成注册功能

def regis():
N = 0
while N < 3:
Input_Username = input('请输入您要注册的账号:')
Input_Password = input('请输入您要注册的密码:')
if Input_Username.isdigit() and len(Input_Username) > 0 and len(Input_Username) < 11:
if Input_Password.isalnum() and len(Input_Password) > 0 and len(Input_Password) < 16:
with open('Username','a',encoding='utf-8') as File:
File.write('\n'+ Input_Username + ',' + Input_Password)
print('注册成功,您可以登陆了')
break
else:
print('注册失败,请重新注册!')
N += 1
else:
print('注册失败!') def login():
Count = 0
while Count < 3:
Input_u = input('请输入您要登陆的用户名:')
Input_p = input('请输入您要登陆的密码:')
if Input_u.isdigit() and len(Input_u) > 0 and len(Input_u) < 11:
if Input_p.isalnum() and len(Input_p) > 0 and len(Input_p) < 16:
with open('Username',encoding='utf-8') as File:
for i in File.readlines():
List = i.split(',')
if Input_u == List[0] and Input_p == List[1]:
print('登陆成功,欢迎您!')
break
else:
print('你输错啦,请重新输入')
continue
break
else:
print('你输错啦,请重新输入')
Count += 1

10、写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。用户通过输入这四个内容,然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中。

def func(name,sex,age,edu):
Edu = ['小学','初中','高中','专科','本科','硕士','博士']
if name.isalpha() and sex in ['男','女'] and age.isdigit() and edu in Edu:
with open('student_msg','a+',encoding='utf-8') as File1:
File1.write("%s\t%s\t%s\t%s\n"%(name,sex,age,edu))
return '感谢您的配合'
else:
print('您输入的内容有误')
return 'Good-bye'

11、在上面题目的基础上添加后续功能:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。

def func(name,age,edu,sex = '男'):
Edu = ['小学','初中','高中','专科','本科','硕士','博士']
if name.isalpha() and age.isdigit() and edu in Edu and sex in ['男','女']:
with open('student_msg','a+',encoding='utf-8') as File1:
File1.write("%s\t%s\t%s\t%s\n"%(name,sex,age,edu))
return '感谢您的配合'
else:
print('您输入的内容有误')
return 'Good-bye' while 1:
name = input('请输出您的名字:')
age = input('请输出您的年龄:')
edu = input('请输出您的学历:')
sex = input('请输出您的性别:')
func(name,sex,age,edu)
choose = input('是否继续,按任意键回车,退出请按Q:')
if choose.upper() == 'q'.upper():
print('感谢您的配合!Good-bye')
break

老男孩Python全栈学习 S9 日常作业 009的更多相关文章

  1. 老男孩Python全栈学习 S9 日常作业 006

    1.使用循环打印以下效果: 1: * ** *** **** ***** 2: ***** **** *** ** * 3: * *** ***** ******* ********* for i i ...

  2. 老男孩Python全栈学习 S9 日常作业 012

    1.斐波那契数列用递归实现:问第n个斐波那契数是多少 def fbnq(n): if n == 0 or n == 1: return 1 else: return fbnq(n-1)+fbnq(n- ...

  3. 老男孩Python全栈学习 S9 日常作业 008

    1.有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合 pythons={'alex','egon','yuanhao','wupeiq ...

  4. 老男孩Python全栈学习 S9 日常作业 010

    1.写函数,接收n个数字,求这些参数数字的和. def func1(*Num): num = 0 for i in Num: num += i return num 2.读代码,回答:代码中,打印出来 ...

  5. 老男孩Python全栈学习 S9 日常作业 001

    1.简述变量命名规范 必须以字母.数字.下划线命名,且不能以数字开头 不能是python的关键字 不能以中文或者拼音作为变量名 命名格式推荐以驼峰式或者下划线连接命名 区分大小写 要有意义,具有可描述 ...

  6. 老男孩Python全栈学习 S9 日常作业 013

    1.写一个求正方形周长和面积的类 class perimeter: def __init__(s,long): s.long = long def Perimeter(s): print((s.lon ...

  7. 老男孩Python全栈学习 S9 日常作业 011

    1.编写装饰器,为函数加上统计时间的功能 import time def Decoration(func): def Timmer(): # 开始时间 Start = time.time() func ...

  8. 老男孩Python全栈学习 S9 日常作业 007

    1.把列表中所有姓周的人的信息删掉 lst = ['周老二', '周星星', '麻花藤', '周扒皮'] lst = ['周老二', '周星星', '麻花藤', '周扒皮'] lst2 = [] fo ...

  9. 老男孩Python全栈学习 S9 日常作业 005

    1.有如下变量,请实现要求的功能 tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age& ...

随机推荐

  1. react native中一次错误排查 Error:Error: Duplicate resources

    最近一直在使用react native中,遇到了很多的坑,同时也学习到了一些移动端的开发经验. 今天在做一个打包的测试时,遇到了一个问题,打包过程中报错“Error:Error: Duplicate ...

  2. 前端开发之基础知识-HTML(一)

    1.1 html概述和基本结构 html概述 HTML是 HyperText Mark-up Language 的首字母简写,意思是超文本标记语言,超文本指的是超链接,标记指的是标签,是一种用来制作网 ...

  3. Swift中的for循环基本使用

    OC中的for循环写法: ;i < ;i++) { NSLog(@"i=%zd",i); } Swift中的for循环写法: let a = ; ..< a { pri ...

  4. 禁用windows10自动更新

    更换win10系统后经常会自动更新,每次关机前都会提示关机并更新选项,禁用window update后每隔几天还是会出现 解决:同时禁用以下两项 Windows Update Medic Servic ...

  5. Copula函数

    Copula函数 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. Copula介绍 Copula函数把边缘分布函数与联合分布函数联系起来,是研究变 ...

  6. 关于Xcode10的那些事

    前言 这里主要介绍一下Xcode10 版本主要更新的内容. 随着iOS12的发布,Xcode10已经可以从Mac App Store下载. Xcode10包含了iOS12.watchOS 5.macO ...

  7. ubuntu18.04从零开始配置环境(jdk+tomcat+idea)到使用idea开发web应用和servlet

    昨天吃了亏,搞了一下午才把环境配置好,故此将整个过程记录一下以防日后需要. 注意:因为我的博客模块的原因,所以我把图片压缩了一些,如果有看不清的, 可以  右键图片->在新标签页打开图片 目录: ...

  8. Linux云计算运维-Redis

    Redis简介 Redis是一款开源的,ANSI C语言编写的,高级键值(key-value)缓存和支持永久存储NoSQL数据库产品. Redis采用内存(In-Memory)数据集(DataSet) ...

  9. typeScript面对对象篇二

    接口 接触过面向对象的后端语言的应该对接口很熟悉,只接触过前端的对接口会有点陌生,在维基百科中对OOP中接口的定义是这样的: 在面向对象的语言中,术语interface经常被用来定义一个不包含数据和逻 ...

  10. spring boot中配置日志log和热部署

    Java的日志有很多 个人强烈不推荐log4j ,推荐log4j2和logback 在高并发,多线程的环境下log4j1 的性能和log4j2相比可以用junk来形容  对就是junk.log4j2的 ...