python练习题-day9
2、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
def dan_index(itter):
li=[]
for i in range(len(itter)):
if i%2==1:
li.append(itter[i])
return li
3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
def len_itter(itt):
count=0
for i in itt:
count+=1
if count>5:
return "{}长度大于5".format(itt)
else:
return "%s 长度小于5"%itt
print(len_itter([3489,34,"hello","myfu","good",78]))
4、写函数,检查传入列表的长度,如果大于2,将列表的前两项内容返回给调用者。
def it_len(itt):
if len(itt)>2:
return itt[:2]
5、写函数,计算传入函数的字符串中, 数字、字母、空格 以及 其他内容的个数,并返回结果。
def str_count(st):
s=0
b=0
n=0
for i in st:
if i.isdigit():
n+=1
if i.isalpha():
s+=1
if i.isspace():
b+=1
return "%s有%s个数字%s字母%s空格"%(st,n,s,b)
6、写函数,接收两个数字参数,返回比较大的那个数字。
def num_cam(a,b):
if a>b:
return a
else:
return b
7、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表
def dic_filter(dic):
for i,j in dic.items():
if len(j)>2:
j=j[:2]
dic.update({i:j})
return dic
print(dic_filter( {"k1": "v1v1", "k2": [11,22,33,44]}))
8、写函数,此函数只接收一个参数且此参数必须是列表数据类型,此函数完成的功能是返回给调用者一个字典,此字典的键值对为此列表的索引及对应的元素。例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。
#方法一
def list_trans(li):
dic={}
for i,j in enumerate(li):
dic.setdefault(i,j)
return dic
print(list_trans([11,22,33]))
#方法二
def list_trans(li):
dic={}
for i in range(len(li)):
dic.setdefault(i,li[i])
return dic
print(list_trans([11,22,33]))
9、写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。用户通过输入这四个内容,然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中。
def stu_add(name,gender,age,education):
with open("stu_info.txt","r+",encoding="utf-8") as f2:
data=f2.readline()
f2.write("\n%s %s %s %s"%(name,gender,age,education))
10、对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。
def stu_add():
with open ("stu_info.txt","r+",encoding="utf-8") as f1:
while True:
stu_add=input("请输入用户信息(以空格隔开q或Q退出):").strip()
if len(stu_add.split())==3:
name,age,education=stu_add.split()
f1.read()
f1.write("\n%s male %s %s"%(name,age,education))
continue
if len(stu_add.split())==4:
name,gender,age,education=stu_add.split()
f1.read()
f1.write("\n%s %s %s %s"%(name,gender,age,education))
continue
if stu_add.upper()=="Q":
exit("谢谢使用,正在退出")
11、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(升级题)。
def file_modify(filename,contant):
import os
contant_new = input("请输入修改后的内容:")
with open(filename,encoding="utf-8")as f1,open("filename_new","w",encoding="utf-8") as f2:
for i in f1:
new_i=i.replace(contant,contant_new)
f2.write(new_i)
os.remove(filename)
os.rename("filename_new",filename)
12、写一个函数完成三次登陆功能,再写一个函数完成注册功能(升级题)
def user_register():
while True:
uname=input("请输入注册名:")
pwd=input("请输入注册密码:")
pwd_2=input("请确认密码:")
li=[]
with open("info_database","r+",encoding="utf-8") as f1:
data=f1.read()
data_dic=eval(data)
for i in data_dic.keys():
li.append(i)
if uname in li:
print("用户名已存在,请重新输入")
continue
if pwd==pwd_2:
print("注册成功")
data_dic.setdefault(uname,pwd)
f1.seek(0)
f1.write(str(data_dic))
break
else:
print("密码不一致请重新输入")
continue
def login():
count=0
while count<3:
username=input("请输入用户名:").strip()
password=input("请输入密码:").strip()
with open("info_database",encoding="utf-8")as f2:
data=f2.read()
dic_data=eval(data)
for i in dic_data.keys():
if username==i and password==dic_data[i]:
print("登录成功")
exit()
else:
print("用户名或密码有误还有%s次机会"%(2-count))
count+=1
python练习题-day9的更多相关文章
- 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 ...
随机推荐
- Python源码中的PyCodeObject
1.Python程序的执行过程 Python解释器(interpreter)在执行任何一个Python程序文件时,首先进行的动作都是先对文件中的Python源代码进行编译,编译的主要结果是产生的一组P ...
- jquery裁剪图片插件cropit示例
重装农药第16天!! jquery裁剪图片插件cropit示例 背景:做的手机网页项目,用html file控件上传图片,有些手机拍照后图片会很大,20M以上的,用之前的H5 formdata上传的话 ...
- 数据类型表(DELPHI、C++)
delphi整型数据表 Integer -2147483648..2147483647 signed 32-bit Cardinal 0..4294967295 unsigned 32-bit Sho ...
- 【算法】八皇后问题 Python实现
[八皇后问题] 问题: 国际象棋棋盘是8 * 8的方格,每个方格里放一个棋子.皇后这种棋子可以攻击同一行或者同一列或者斜线(左上左下右上右下四个方向)上的棋子.在一个棋盘上如果要放八个皇后,使得她们互 ...
- Bayesian RL and PGMRL
简介: PGMRL: PGMRL就是把RL问题建模成一个概率图模型,如下图所示: 然后通过variational inference的方法进行学习: PGMRL给RL问题的表示给了一个范例,对解决很多 ...
- 使用git创建与合并分支
一.概述 学会使用git命令对项目进行创建分支,并在创建结束后合并到主分支上. 问:为什么要创建分支? 答:在原来的分支上创建一个自己的分支进行开发,在开发完毕后一次性合并到原先的分支,这样既保证安全 ...
- 深度讲解 .net session 过期机制
[参考]net session过期 原理及解决办法 [参考]深入理解session过期机制
- Mybatis sql映射文件浅析 Mybatis简介(三) 简介
Mybatis sql映射文件浅析 Mybatis简介(三) 简介 除了配置相关之外,另一个核心就是SQL映射,MyBatis 的真正强大也在于它的映射语句. Mybatis创建了一套规则以XML ...
- 【AI】神经网络基本词汇
neural networks 神经网络activation function 激活函数hyperbolic tangent 双曲正切函数bias units 偏置项activation 激活值for ...
- numpy学习之创建数组
1.使用array函数创建数组 import numpy as np ndarray1 = np.array([1, 2, 3]) array([1, 2, 3]) ndarray2 = np.arr ...