1.

1.作业

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

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

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

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

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

6,写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表 7,写函数,此函数只接收一个参数且此参数必须是列表数据类型,此函数完成的功能是返回给调用者一个字典,此字典的键值对为此列表的索引及对应的元素。例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。 8,写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。用户通过输入这四个内容,然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中。 9,对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。 10,写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(升级题)。
11,写一个函数完成三次登陆功能:(升级题,两天做完)
(1)用户的用户名密码从一个文件register中取出。
(2)register文件包含多个用户名,密码,用户名密码通过|隔开,每个人的用户名密码占用文件中一行。
(3)完成三次验证,三次验证不成功则登录失败,登录失败返回False。
(4)登陆成功返回True。
12,再写一个函数完成注册功能:(升级题,两天做完)
(1)用户输入用户名密码注册。
(2)注册时要验证(文件regsiter中)用户名是否存在,如果存在则让其重新输入用户名,如果不存在,则注册成功。
(3)注册成功后,将注册成功的用户名,密码写入regsiter文件,并以 | 隔开。
(4)注册成功后,返回True,否则返回False。

2.

2.默写

①,return的作用。
②,传参的几种方法,每个都简单写一个代码。
如,实参,按位置传参。
def func(x,y):
Pass
func(‘a’,’b’)

答案

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

def func(lis):
return lis[1::2]

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

def func(x):
return len(x) > 5

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

def func(lis):
if len(lis) > 2:
return lis[:2]
但是切片有一个特性,多了不报错,所以可以这样写
def func(lis):
return lis[:2]

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

def func(s):      # 'fsadsad432 edfd@#$'
num = 0 # 计算数字的个数
alpha = 0 # 字母
space = 0 # 空格
other = 0 # 其他 for i in s:
if i.isdigit():
num += 1
elif i.isalpha():
alpha += 1
elif i.isspace():
space += 1
else:
other += 1
return num,alpha,space,other print(func('fsadsad432 edfd@#$')) #结果
#(3, 11, 1, 3) 但是这样有个问题,就是没人知道你传回来的是什么,如果需要知道传回来的是什么,需要看源代码。所以最好要用字典。
def func(s): # 'fsadsad432 edfd@#$'
dic = {'num':0,'alpha':0,'space':0,'other':0} for i in s:
if i.isdigit():
dic['num'] += 1
elif i.isalpha():
dic['alpha'] += 1
elif i.isspace():
dic['space'] += 1
else:
dic['other'] += 1
return dic print(func('fsadsad432 edfd@#$')) #结果
#{'alpha': 11, 'num': 3, 'other': 3, 'space': 1}

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

# 'sdsad sad a' 对于字符串来说,元素为空内容表示为空格
# [1,2,3,4,'',[],()] 对于列表和元组来说,空内容表示''或[]或() def func(x):
if type(x) is str and x: #参数是字符串,并且字符串不为空
for i in x:
if i==' ':
return True
elif x and type(x) is list or type(x) is tuple:
for i in x:
if not i:
return True
elif not x: #表示字符串或者列表元组本身就为空,也算空
return True #这种情况下,不需要最后的else,因为内容中没有空内容的话,默认return None,相当于False

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

# dic = {'k1':'v1v1','k2':[11,22,33,44]}
# PS:字典中的value只能是字符串或列表 def func(dic):
for k in dic.values():
pass
#一般不这么写,因为正常情况下,vlaue里面的值很大,有可能是嵌套的列表或者字典,如果直接取values,比较浪费内存。 def func(dic):
for k in dic:
if len(dic[k]) > 2:
dic[k] = dic[k][:2] return dic dic = {"k1":"v1v1","k2":[11,22,33,44]}
print(func(dic))

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

def func(a,b):
return a if a > b else b

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. 写一个函数完成三次登陆功能,再写一个函数完成注册功能

username = "yangxiaoer"
password = ""
i = 3
while i > 0:
zh = input("请输入你的账号:")
i -= 1
if zh == username:
mm = input("请输入你的密码:")
if mm == password:
print("验证成功.正在登陆......")
print('''恭喜你登陆成功!
欢迎用户进入
用户名 :%s
密码 :%s
'''%(zh,mm))
break
else:
if i == 0:
print("你的机会已经没了!game over 下次见!")
answer = input('再试试?Y or N')
if answer == 'Y':
i = 3
print("密码错误,请重新输入")
print("你还有"+str(i)+"次机会")
else:
print("请输入正确的用户名!")
if i == 0:
print("你的机会已经没了!")
answer = input('再试试?Y or N')
if answer == 'Y':
i = 3
print("你还有" + str(i) + "次机会")
else:
print('你TM要不要脸')

Python练习_初识函数_day9的更多相关文章

  1. python之路——初识函数

    阅读目录 为什么要用函数 函数的定义与调用 函数的返回值 函数的参数 本章小结 返回顶部 为什么要用函数 现在python届发生了一个大事件,len方法突然不能直接用了... 然后现在有一个需求,让你 ...

  2. python基础之 初识函数&函数进阶

    函数基础部分 1.什么是函数? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率. 2.定义函数 定义:def 关键词开头,空格之后接函数名 ...

  3. python成长之路第三篇(1)_初识函数

    目录: 函数 为什么要使用函数 什么是函数 函数的返回值 文档化函数 函数传参数 文件操作(二) 1.文件操作的步骤 2.文件的内置方法 函数: 一.为什么要使用函数 在日常写代码中,我们会发现有很多 ...

  4. Python之路【第五篇】python基础 之初识函数(一)和文件管理

    转载请注明出处http://www.cnblogs.com/wupeiqi/articles/5453708.html 函数 一.背景                                 ...

  5. Python进阶-I 初识函数(function)

    函数 在java中叫方法. 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print() ...

  6. python note 09 初识函数

    1.函数 def my_len(): #自定义函数(相当于len) i = 0 for k in s: i += 1 print(i) print(my_len()) #输出None,因为没有返回值 ...

  7. python之路--初识函数

    一 . 函数 什么是函数 f(x) = x + 1 y = x + 1 # 函数是对功能或者动作的封装 函数的语法 def 函数名(): 函数体 调用: 函数名() def play(): print ...

  8. python记录_day09 初识函数

    一.认识函数 函数:对动作或者功能的封装 格式: 函数声明     def  函数名(): 函数体 函数调用     函数名() #定义函数 def xiao(): print("你的笑像一 ...

  9. 【学习笔记】--- 老男孩学Python,day10, 初识函数 形参、实参

    函数:对功能的封装语法: def 函数名(形参): 函数体 函数名(实参) 函数名:命名规则和变量一样 函数的返回值: return, 函数执行完毕. 不会执行后面逻辑 1. 如果函数中不写retur ...

随机推荐

  1. Facebook libra开发者文档- 2 -Libra Protocol: Key Concepts核心概念

    Libra Protocol: Key Concepts https://developers.libra.org/docs/libra-protocol Libra区块链是一个加密认证的分布式数据库 ...

  2. .The server quit without updating PID file (/var/lib/mysql/pc.pid).

    启动Mysql是报错 [root@pc mysql]# mysql startERROR 2002 (HY000): Can't connect to local MySQL server throu ...

  3. Python基础之内置函数(二)

    先上一张图,python中内置函数: python官方解释在这:点我点我 继续聊内置函数: callable(object):检查对象是否可被调用,或是否可执行,结果为bool值 def f1(): ...

  4. Java RSA分段加密

    我们通过Java进行RSA加密的时候,可能会出现如下问题: /** * 私钥加密 * * @param data 待加密数据 * @param key 密钥 * @return byte[] 加密数据 ...

  5. 取数据超过内存限制的问题-解决方案(sample,takeSample,filter)

    遇到的问题 在处理数据过程中,遇到需要取(n)个数的问题,而当样本量过大的时候,就不能简单的take(n),这类问题一般有两种情况: > - 有序取 TopN > - 无序取 N 先来讨论 ...

  6. rdd的元素打印

    在集群上运行spark程序时,rdd的操作都在worker机上,因此输出rdd的元素将在worker机的标准输出上进行,驱动节点上不会运行,故直接才程序中写如下代码 rdd.foreach(print ...

  7. mysql创建数据库、表、写数据

    mysql> create database ceshi; Query OK, 1 row affected (0.01 sec) 给数据库授权,否则程序时无法连接ceshi数据库的,每次创建一 ...

  8. CentOS7.2配置LNMP环境并安装配置网站WordPress

    1,安装环境查看 2,安装MySQL5.7.22 下载MySQL wget https://downloads.mysql.com/archives/get/file/mysql-5.7.22-1.e ...

  9. iOS-25个小技巧

    (一)关于UITableView  方法flashScrollIndicators:这个很有用,闪一下滚动条,暗示是否有可滚动的内容.可以在ViewDidAppear或[table reload]之后 ...

  10. 【C#设计模式2】简单工厂模式

    我们在编程的时候,每当"new"一个对象之后,这个对象就依赖于这个类了.如果在后期的维护过程中由于某些原因需要修改一下这个类,则唯一的做法就是打开源代码,进行修改,修改所有与这个对 ...