【python】——函数

简介: 【python】——函数

一. 程序题


1. (程序题, 15分)

编写函数,接收一个字符串,判断该字符串是否为回文。所谓回文是指从前向后读和从后向前读是一样的。例如:例如: 121是回文, 123454321是回文,abba是回文。(使用切片完成是否是回文的判断条件,切取字符串前一半和后一半比较是否相等)


输入输出示例如下:


760c397b9816378a233ddcf3967a4826_f69f79dde052495d0b13645618dea3ae.png


2. (程序题, 20分)

判断用户是否登录成功。


(1)系统里面有多个用户, 用户名和对应的密码信息保存在以下元组和列表里面:


userName = ("zhangsan","lisi","wangwu","zhaoliu","xiaolin","xiaohua")


pwList=['123','456','789','246','abc','abc1234']


用户名和密码的顺序是对应的,例如:zhangsan的密码是123,lisi的密码是456


(2)用户登录(判断用户登录是否成功):


①编写一个函数username_test判断用户是否存在?如果用户存在,返回用户索引;如果输入的用户不存在:重新输入用户名,总共有三次输入用户名的机会,三次输入都失败,退出程序。


②编写一个函数password_test判断用户密码是否正确? 根据存在的用户名返回的索引,用pwList[用户索引]取出该用户的密码与输入的密码对比,如果密码正确,登录成功, 退出程序;否则如果密码不正确:重新输入密码,总共有三次输入密码的机会,三次输入密码失败,退出程序。


③编写一个main函数,在其中创建用户名列表和密码列表,调用username_test函数,判断用户名是否存在,存在的话,返回用户名的索引,调用password_test判断用户输入的密码是否正确。


d988a0d12283931f91c714446a5836d0_f000b97d5376c22f009406d3b3eb167d.png


二. 填空题(共4题,45分)


3. (填空题, 9分)

def Sum(a,b=3,c=5):


   return sum([a,b,c])


print(Sum(a=3,c=2))


print(Sum(8))


print(Sum(8,2))


4. (填空题, 6分)

编写一个猜数游戏,该游戏会随机产生一个数字,用户可以随意输入一个数进行比较,在比较过程中,会不断提示用户输入的数是大了还是小了,直到用户输入的数等于随机数或者用户猜够5次,程序终止。


请填空完善代码。


import random


import sys


def guess_num(n):


   if n>key:


       return "大了"


   elif n<key:


       return "小了"


   else:


       print("恭喜猜对了")


       sys.exit(0)


key=random.randint(1,100)


_______________


while True:


   if count<=5:


       x = int(input("num="))


       print(_______________)


       count=count+1


   else:


       print(f"很遗憾您5次都没有猜对,生成的数字是{key}")


       break


5. (填空题, 24分)

游戏角色管理。


请填空把代码填写完整。


import sys


print('*' * 40)


print('--------------游戏角色管理--------------')


print('1:查询角色')


print('2:添加角色')


print('3:修改角色')


print('4:删除角色')


print('5:显示所有角色')


print('-1:退出程序')


print('*' * 40)


# 角色列表.


roleList = [{"姓名": "刘备","单位": "蜀国","职务": "董事长兼总经理","武力": 6}]


_______(1)_______


 姓名 = input("请输入要查找角色的姓名: ")


 for role in roleList:


   if 姓名 == role['姓名']:


     print("姓名: %s, 单位: %s, 职务: %s, 武力: %3.1f." % (role['姓名'], role['单位'], role['职务'], role['武力']))


     break


 else:


   print('对不起。没有您要查找的角色!')


_______(2)_______


 姓名 = input('请输入姓名: ')


 for role in roleList:


   if 姓名 == role['姓名']:


     print("您所输入的角色已存在!")


     break


 else:


   单位 = input('请输入单位: ')


   职务 = input('请输入职务: ')


   武力 = float(input('请输入武力: '))


   newRole = {}


   newRole["姓名"] = 姓名


   newRole["单位"] = 单位


   newRole["职务"] = 职务


   newRole["武力"] = 武力


   roleList.append(newRole)


_______(3)_______


 姓名 = input('请输入要修改角色的姓名: ')


 for role in roleList:


   if role['姓名'] == 姓名:


     role['单位'] = input('请输入新的单位: ')


     role['职务'] = input('请输入新的职务: ')


     role['武力'] = float(input('请输入新的武力: '))


     print("修改角色成功!")


     break


 else:


   print('您要修改的角色不存在!')


_______(4)_______


 姓名 = input("请输入要删除角色的姓名: ")


 for role in roleList:


   if role['姓名'] == 姓名:


     roleList.remove(role)


     print("删除角色成功!")


     break


 else:


   print("您要删除的角色不存在!")


_______(5)_______


 for role in roleList:


   print("姓名: %s, 单位: %s, 职务: %s, 武力: %3.1f." % (role['姓名'], role['单位'], role['职务'], role['武力']))


_______(6)_______


 print('退出程序!')


 sys.exit(0)


while True:


 SN = int(input('===请输入操作序号: '))  # 输入操作序号.


 if SN in [1,2,3,4,5,-1]:


   if SN == 1:  # 查询角色.


     queryRole( )


   elif SN == 2:  # 添加新角色


     addRole( )


   elif SN == 3:  # 修改角色.


     modifyRole( )


   elif SN == 4:  # 删除角色.


     deleteRole( )


   elif SN == 5:  # 显示所有角色.


     displayAllRole( )


   else:           # 退出程序.


     exitP( )


 else:


   print("输入错误!请重新输入'-1,1-5'之间的操作序号!")


6. (填空题, 6分)

下面代码


def deco(func):


 def wrapper():


   print(f"before {func.__name__} called.")


   func()


   print(f"after {func.__name__} called.")


 return wrapper


_____(1)_______


def myfunc1():


 print("myfunc1() called.")


____(2)_______


def myfunc2():


 print("myfunc2() called")


myfunc1()


myfunc2()


请完成填空,使代码的执行结果如下:


before myfunc1 called.


myfunc1() called.


after myfunc1 called.


before myfunc2 called.


myfunc2() called


after myfunc2 called.


三. 简答题(共1题,20分)


7. (简答题, 20分)

编写程序产生彩票游戏超级大乐透的投注号码。


1.户输入投注的注数time,显示给用户time组号码。


2.编写函数实现投注号码的生成。


3.请把自己的代码填写到答案框,并截图自己的运行结果。输出结果的第一行


'软工某某班张三的大乐透号码生成器'字符串中的班级和姓名要改写为自己的班级姓名。


备注:


(1)超级大乐透基本投注是指从前区号码(红色球)中任选五个号码,并从后区号码(蓝色球)中任选两个号码的组合进行投注。


其中,前区号码由01—35共三十五个号码组成,后区号码由01—12共十二个号码组成。


(2)显示时,前区号码和后区号码分别按照从小到大的顺序显示


(3) random模块中的random.sample(seq,number)函数可以实现从样本空间seq中随机选择number个数字。

78b731babd17dfddb8cb6f4434958c1f_6ec8fa260a088674e2a1b16bcf63b0ed.png

🎯答案:

第一题:

def a(string):
    l1 = len(string)//2
    first = string[:l1]
    second = string[:-l1-1:-1]
    if first == second:
        print(f"{string} 是回文")
    else:
        print(f"{string} 不是回文")
string1 = input("请输入字符串")
a(string1)

第二题:

def username_test():
    userName = ("zhangsan", "lisi", "wangwu", "zhaoliu", "xiaolin", "xiaohua")
    count = 0
    while count<3:
        userName1 =input("请输入用户名:")
        if userName1 in userName:
            return userName.index(userName1)
        else:
            print("用户不存在")
            count += 1
    print("用户名输入超过3次")
    exit(0)
def password_test(user_index):
    pwList = ['123', '456', '789', '246', 'abc', 'abc1234']
    count = 0
    while count < 3:
        password = input("请输入密码:")
        if password == pwList[user_index]:
            print("登录成功")
            exit(0)
        else:
            print("密码不正确")
            count+=1
    print("密码输入超过3次")
    exit(0)
def main():
    index1 = username_test()
    password_test(index1)
if __name__ =="__main__":
    main()


第三题:

(1) 8

(2) 16

(3) 15

第四题:

(1) count=1;count = 1

(2) guess_num(x);f"{guess_num(x)}"


第五题:

(1)def queryRole():


(2) def addRole():


(3) def modifyRole():


(4) def deleteRole():


(5) def displayAllRole():


(6) def exitP():


第六题:

(1) @deco

(2) @deco


第七题:

import random
 
def Great_lotto(times):
 
    Greatnumber = []
 
    for i in range(0,times):
 
        numbers = []
 
        redbubble_list = list(range(1,36))
 
        number_red = random.sample(redbubble_list,5)
 
        bluebubble_list = list(range(1,13))
 
        number_blue = random.sample(bluebubble_list,2)
 
        number_red.sort()
 
        number_blue.sort()
 
        numbers = number_red+number_blue
 
        for n in range(len(numbers)):
 
            if numbers[n]<10:
 
                numbers[n] = '0'+str(numbers[n])
 
        Greatnumber.append(numbers)
 
    return Greatnumber
 
 
 
print('软工某某班张三的大乐透号码生成器')
 
time = input('请输入要生成的大乐透号码注数:')
 
Greatnumber = Great_lotto(int(time))
 
for i in range(0,int(time)):
 
    print(Greatnumber[i][0],Greatnumber[i][1],Greatnumber[i][2],Greatnumber[i][3],
 
          Greatnumber[i][4],Greatnumber[i][5],Greatnumber[i][6])
 
 
 
 
for i in range(0,int(time)):
 
#     for j in range(7):
 
#         if j!=6:
 
#             print(f"{Greatnumber[i][j]}",end=" ")
 
#         else:
 
#             print(f"{Greatnumber[i][j]}")
相关文章
|
4月前
|
Python
【python从入门到精通】-- 第五战:函数大总结
【python从入门到精通】-- 第五战:函数大总结
119 0
|
3月前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
155 67
|
1月前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
32 3
|
1月前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
42 2
|
30天前
|
存储 人工智能 Python
[oeasy]python061_如何接收输入_input函数_字符串_str_容器_ 输入输出
本文介绍了Python中如何使用`input()`函数接收用户输入。`input()`函数可以从标准输入流获取字符串,并将其赋值给变量。通过键盘输入的值可以实时赋予变量,实现动态输入。为了更好地理解其用法,文中通过实例演示了如何接收用户输入并存储在变量中,还介绍了`input()`函数的参数`prompt`,用于提供输入提示信息。最后总结了`input()`函数的核心功能及其应用场景。更多内容可参考蓝桥、GitHub和Gitee上的相关教程。
16 0
|
2月前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
64 18
|
2月前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
85 8
|
2月前
|
Python
Python中的函数
Python中的函数
62 8
|
3月前
|
监控 测试技术 数据库
Python中的装饰器:解锁函数增强的魔法####
本文深入探讨了Python语言中一个既强大又灵活的特性——装饰器(Decorator),它以一种优雅的方式实现了函数功能的扩展与增强。不同于传统的代码复用机制,装饰器通过高阶函数的形式,为开发者提供了在不修改原函数源代码的前提下,动态添加新功能的能力。我们将从装饰器的基本概念入手,逐步解析其工作原理,并通过一系列实例展示如何利用装饰器进行日志记录、性能测试、事务处理等常见任务,最终揭示装饰器在提升代码可读性、维护性和功能性方面的独特价值。 ####
|
3月前
|
Python
Python中的`range`函数与负增长
在Python中,`range`函数用于生成整数序列,支持正向和负向增长。本文详细介绍了如何使用`range`生成负增长的整数序列,并提供了多个实际应用示例,如反向遍历列表、生成倒计时和计算递减等差数列的和。通过这些示例,读者可以更好地掌握`range`函数的使用方法。
90 5

热门文章

最新文章