热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python测试一

1,写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。2,写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。3、写函数,检查

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

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


def nmber(ob_j):

    a = [ob_j[i] for i in range(len(ob_j)) if not i % 2 == 0]

    return a


list = [0, 1, 2, 3, 4, 5, 6, 7, 8]


b=nmber(list)

print(b) #[1, 3, 5, 7]

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

"""

3,写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
"""
def send(str, lis, tupe):
if len(str) > 5:
print("大于5")

if len(lis) > 5:
print("大于5")

if len(tupe) > 5:
print("大于5")


a = "ashjdhajd"
b = [1, 2, 3,]
c = (1, 2, 3, 4, 5, 6)

send(a, b, c)

3、写函数,检查传入列表的长度,如果大于2,将列表的前两项内容返回给调用者。

def funtion(ob_j):
    if len(ob_j) > 2:
        return ob_j[0:2]


li = [1, 2, 3, 4, 5, 6, 7]
print(funtion(li))

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

# 定义数字,字母,空客变量
# 便利穿进来的字符串
# 判断字符式什么累加变量
# 返回结果


def funtion(ob_j):
    nubmber = 0  # 数字
    blank = 0  # 空客
    other = 0  # 其他
    Letter = 0  # 字母

    for s in range(0,len(ob_j)):
        if ob_j[s].isalpha():  # 判断是否为全为字母
            Letter += 1
        elif ob_j[s].isdigit():  # 判断是否为数字
            nubmber += 1

        elif ob_j[s].isspace():  # 判断是否为空客
            blank += 1
        else:
            other += 1
    return "该字符串中数字有%d个,字母%d个,空格%d个,其他的%d个." % (nubmber, Letter, blank, other)


a = "hhhasd55 45212"

print(funtion(a))

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

def size(x, y):
    add = lambda x, y: x > y
    a = add(x, y)
    if a:
        return x
    else:
        return y


print(size(4, 3))

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

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

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

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


def size2(dic):
    a = [v[:2] for i, v in dic.items() if len(v) > 2]

    return a
size2(dic)


7,写函数,此函数只接收一个参数且此参数必须是列表数据类型,此函数完成的功能是返回给调用者一个字典,此字典的键值对为此列表的索引及对应的元素。例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。

def index(agx):
    dic={i:d for i,d in enumerate(agx)}
    return dic



a=[11,22,33]

print(index(a))

{0: 11, 1: 22, 2: 33}

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

import json


def login(name, gender, age, education):
    dic = {}
    dic["name"] = name
    dic["gender"] = gender
    dic["age"] = age
    dic[education] = education

    with open("./student_msg.txt", "a+", encoding="utf8") as f:
        json.dump(dic, f, ensure_ascii=False)


name = "wang"
age = 18
gender = "nv"
education = "大学"

login(name=name, age=age, gender=gender, education=education)

9,对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。

import json


def login(name,age, education,gender=""):
    dic = {}
    dic["name"] = name
    dic["gender"] = gender
    dic["age"] = age
    dic[education] = education

    with open("./student_msg.txt", "a+", encoding="utf8") as f:
        json.dump(dic, f, ensure_ascii=False)


while True:
    quet = input("Q/q退出")
    if quet.upper() == "Q":
        break
    name = input("name")
    age = input("age")
    gender = input("gender")
    print(type(gender),gender)
    education = input("education")

    if gender:
        login(name=name, age=age, gender=gender, education=education)
    else:
        login(name=name, age=age, education=education)

10、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(升级题)

 

# def new_flie_content(name,old_content,new_content):
#     """
#     :param name:修改的文件名
#     :param old_content: 要修改的内容
#     :param new_content: 添加的内容
#     :return:
#     """
#     file_data=""
#     # r 已只读的方式取打开文件,文件指针放在文件开头
#     with open(name,"r",encoding="utf-8") as  f :
#         for lien in f:
#             if old_content in lien:
#                 lien=lien.replace(old_content,new_content)
#
#             file_data+=lien
#
#
#     with open(name,"w",encoding="utf8") as f:
#         f.write(file_data)
#
#
#
# new_flie_content("student_msg.txt","w","a")


"""
二、把原文件内容和要修改的内容写到新文件中进行存储的方式
"""

# def file_alter(file_nam,old_str,new_str):
#
#     """
#     :param file_nam:文件名
#     :param old_str: 旧内容
#     :param new_str: 新内容
#     :return:
#     """
#
#     with open(file_nam,"r",encoding="utf8") as f1,open("{}.bak".format(file_nam),"w",encoding="utf8") as f2:
#         for lien in f1:
#             if old_str in lien:
#                 lien =lien.replace(old_str,new_str) #Replace 函数使用另一个字符串替换字符串的指定部分指定的次数
#
#             f2.write(lien)
#
#
#
# file_alter("./student_msg.txt","18","19")

"""
# 2.2 python 使用正则表达式 替换文件内容 re.sub 方法替换
"""

import os, re


def alter(file, old_str, new_str):
    with open(file, "r", encoding="utf8")as f, open("%.bak".format(file), "w", encoding="utf8") as f2:
        """
        re.sub共有五个参数。
        其中三个必选参数:pattern, repl, string
        两个可选参数:count, flags
        pattern,表示正则中的模式字符串,
        repl,就是replacement,被替换,的字符串的意思。
        string,即表示要被处理,要被替换的那个string字符串。
        """

        for line in f:
            f2.write(re.sub(old_str, new_str, line))

        # 删除原文件名
    os.remove(file)
    # 创建源文件名(内容是修改的)
    os.rename("%s.bak" % file, file)
    """
    os.rename(src, dst)
    src -- 要修改的目录名
    dst -- 修改后的目录名      
    """
alter("student_msg.txt", "aang", "tang")

 

                 

python测试一


推荐阅读
  • 1.Listener是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当增加一个HttpSession时 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • oracle恢复失败,RMAN数据库恢复失败解决一例
    问题:这是一个从RAC环境的数据库的RAMN备份恢复到一个单机数据库的操作。当恢复数据文件和恢复正常,但在open数据库时出报下面的错误。--rman备 ... [详细]
  • 【爬虫】关于企业信用信息公示系统加速乐最新反爬虫机制
    ( ̄▽ ̄)~又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构。升级后网站的层次结构并没有太多变化,表面上 ... [详细]
  • 1关于字符串相邻的两个或多个字符串字面值(引号引起来的字符)将会自动连接到一起:str_catpython!str_cat输出:python!把很长 ... [详细]
  • 点击打开链接去除换行updatezhzl_addresstsett.add_administration_numreplace(t.add_administration_num,chr(10 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
author-avatar
云小白
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有