实验名称:函数练习2

你是蛤蟆秧子跟着甲鱼转,装王八孙子。这是我今天听到最牛逼的一句话。

目录

一、实验目的

二、实验环境

三、实验步骤

四、实验结果

1.系统的增删改等都需要先登录后才能操作。 

编写装饰器用于登录验证,再对增删改进行装饰,测试登录验证装饰器是否生效。

2.编写函数f(n),实现输入n的值,求出1~n之和(要求使用递归方式)。

3.素数:只能被1和它本身整除。回文数:从左往右读和从右往左读,数字 相同。如121,1221

 需求:编写函数找出所有既是回文数又是素数的3位十进制数。

 4.模拟轮盘抽奖游戏: 

轮盘分为三部分: 一等奖, 二等奖和三等奖;

轮盘转的时候是随机的:

如果范围在[0,0.08)之间,代表一等奖,

如果范围在[0.08,0.3)之间,代表2等奖,

如果范围在[0, 1.0)之间,代表3等奖。

编写函数实现该轮盘抽奖功能

五、实验心得


一、实验目的

1.系统的增删改等都需要先登录后才能操作。 

编写装饰器用于登录验证,再对增删改进行装饰,测试登录验证装饰器是否生效。

2.编写函数f(n),实现输入n的值,求出1~n之和(要求使用递归方式)。

3.素数:只能被1和它本身整除。回文数:从左往右读和从右往左读,数字 相同。如121,1221

 需求:编写函数找出所有既是回文数又是素数的3位十进制数。

4.模拟轮盘抽奖游戏: 

轮盘分为三部分: 一等奖, 二等奖和三等奖;

轮盘转的时候是随机的:

如果范围在[0,0.08)之间,代表一等奖,

如果范围在[0.08,0.3)之间,代表2等奖,

如果范围在[0, 1.0)之间,代表3等奖。

编写函数实现该轮盘抽奖功能

二、实验环境

安装pycharm2023.3.4 

安装适配的jdk

三、实验步骤

1.系统的增删改等都需要先登录后才能操作。 

编写装饰器用于登录验证,再对增删改进行装饰,测试登录验证装饰器是否生效。

  • 编写装饰器用于登录验证,再对增删改进行装饰,测试登录验证装饰器是否生效。
  • 先写一个装饰器助手,内部写一个login函数用于登录验证
  • 分别写出增删改函数
  • 在增删改函数前@装饰器,表示需要使用该装饰器增加登录验证功能
  • 验证登录装饰器是否生效

 2.编写函数f(n),实现输入n的值,求出1~n之和(要求使用递归方式)。

  • 定义一个函数,将n作为参数
  • 如果是1,直接输出1
  • 如果大于1,使用递归进行叠加
  • 输出结果

3.素数:只能被1和它本身整除。回文数:从左往右读和从右往左读,数字 相同。如121,1221

 需求:编写函数找出所有既是回文数又是素数的3位十进制数。

  • 首先判断该数是否是素数,如果它可以整除(2~前一个数)就不是素数,如果不能整除,就是素数
  • 判断完是否为素数之后,判段是否为回文数,将其分别除以100取得百位上的数,除以10获得十位上的数,分别用两个变量接收,再判断是否相等,相等就是回文数
  • 最后再写一个main函数,判断是否既是素数又是回文数
  • 给定范围,输出结果

 4.模拟轮盘抽奖游戏: 

轮盘分为三部分: 一等奖, 二等奖和三等奖;

轮盘转的时候是随机的:

如果范围在[0,0.08)之间,代表一等奖,

如果范围在[0.08,0.3)之间,代表2等奖,

如果范围在[0, 1.0)之间,代表3等奖。

编写函数实现该轮盘抽奖功能

  • 导入随机函数
  • 使用randint()获取随机值
  • 根据随机值,使用if else语句判断为一等奖二等奖还是三等奖
  • 输出结果

四、实验结果

1.系统的增删改等都需要先登录后才能操作。 

编写装饰器用于登录验证,再对增删改进行装饰,测试登录验证装饰器是否生效。

#1.系统的增删改等都需要先登录后才能操作。
# 编写装饰器用于登录验证,再对增删改进行装饰,测试登录验证装饰器是否生效。
#用户输入用户名与密码
uname = (input("请输入您的用户名:"))
upassword = (input("请输入您的密码:"))
#定义一个装饰器
def decorator(func):
    # 定义内部函数login
    def login(*args, **kwargs):
        print("登录成功")
        func(*args, **kwargs)
        print("登录失败")
    return login

@decorator
def add(uname,upasssword):
    print("添加成功!")
    print(f"新用户:{uname},密码为:{upassword}")

@decorator
def delete(uname,upassword):
    print(f"已删除用户名为:{uname}的用户")

@decorator
def modify(uname,upassword):
    print(f"修改成功!")
    print(f"新的用户名为:{uname},新的密码为:{upassword}")

add = decorator(add)
add( "admin",123456)
delete = decorator(delete)
delete( "admin",123456)

2.编写函数f(n),实现输入n的值,求出1~n之和(要求使用递归方式)。

# 2.编写函数f(n),实现输入n的值,求出1~n之和(要求使用递归方式)。
def func(num):
    if num == 1:
        return 1
    else:
        return num + func(num-1)
n = int(input("请输入您要计算1到几的和:"))
print(func(n))

3.素数:只能被1和它本身整除。回文数:从左往右读和从右往左读,数字 相同。如121,1221

 需求:编写函数找出所有既是回文数又是素数的3位十进制数。

# 3.素数:只能被1和它本身整除。
# 回文数:从左往右读和从右往左读,数字相同。如121,1221
# 需求:编写函数找出所有既是回文数又是素数的3位十进制数。
import math
def isprime(n):
    m = int(math.sqrt(n)+1)
    for i in range(2,m):
        if n%i==0:
           return False
           break
    else:
           return True

def h(n):
    a = n//100
    b = n%10
    if a == b:
       return True
    else:
       return False

def main():
    print("既是素数又是回文数的3位十进制数:")
    for i in range (100,1000):
        if isprime(i) == True:
               if h(i) == True:
                      print(i)

main()

 4.模拟轮盘抽奖游戏: 

轮盘分为三部分: 一等奖, 二等奖和三等奖;

轮盘转的时候是随机的:

如果范围在[0,0.08)之间,代表一等奖,

如果范围在[0.08,0.3)之间,代表2等奖,

如果范围在[0, 1.0)之间,代表3等奖。

编写函数实现该轮盘抽奖功能

# 4.模拟轮盘抽奖游戏:
# 轮盘分为三部分: 一等奖, 二等奖和三等奖;
# 轮盘转的时候是随机的:
# 如果范围在[0, 0.08)之间, 代表一等奖,
# 如果范围在[0.08, 0.3)之间, 代表2等奖,
# 如果范围在[0, 1.0)之间, 代表3等奖。
# 编写函数实现该轮盘抽奖功能
import random
print("您好!欢迎来到转盘抽奖游戏!")
print("按下回车游戏就开始啦!")
n = float(random.randint(0,1))
if 0 <= n <= 0.08:
    print("恭喜你!中的是一等奖哟!")
if 0.08 <= n <= 0.3:
    print("恭喜你!中的是一等奖哟!")
if 0.3 <= n <= 1.0:
    print("恭喜你!中的是一等奖哟!")

五、实验心得

这些实验老师上课都讲过,要学会把他变成自己的东西,真正理解代码的意思

多思考,有助于形成代码思维,代码尽量简洁

去学习,多看他人的代码,打开自己的思维。

  1. 函数是代码的基本组成单位。

  2. 函数可以将一段代码封装起来,并通过调用函数名来运行它。

  3. 函数可以接收输入参数,并可以返回一个结果。

  4. 函数应该具有清晰的功能,易于理解和维护。

  5. 使用函数参数时,可以设置默认值,使得函数的调用更加灵活。

  6. 使用装饰器来增强函数的功能,而不需要修改原函数的代码。

  7. 函数式编程强调函数的 first-class 能力,可以使用高阶函数和闭包等技术。

  8. 错误处理应该通过try...except语句来进行,避免程序因为异常而崩溃。

这些知识可以帮助我们更好地理解和应用Python函数,提高代码质量和开发效率。

  • 29
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值