• Python 关于函数的使用


    一、学习目标

    1.掌握函数定义和调用。

    2.掌握函数形参与实参的使用。

    3.熟练掌握lambda表达式使用。 

    二、相关练习

    1.建立自定义函数实现计算圆的面积和球的体积。

    1. def Count(radius):
    2.     area = 3.14*radius**2
    3.     volume = (4/3)*3.14*radius**3
    4.     print('圆的面积为:{}'.format(area))
    5.     print('球的体积为:{}'.format(volume))
    6. radius = float(input('请输入半径:'))
    7. Count(radius)

     

    2.建立自定义函数求小于1000的斐波那契数列。

    1. def Fibonacci(n):
    2.     if n==1 or n==2 :
    3.         return 1
    4.     else:
    5.         return (Fibonacci(n-1)+Fibonacci(n-2))
    6.     
    7. n = int(input('请输入一个小于1000的数(以计算斐波那列数列):'))
    8. if n>1000 or n<1:
    9.     print('请在规定范围内输入!!!')
    10. else:
    11.     for i in range(1,n+1):
    12.         print(Fibonacci(i),end=' ')

     

    3.建立自定义阶乘函数,求n!。

    1. import functools
    2. def factorial(n):
    3.     if n==0 or n==1:
    4.         return 1
    5.     else:
    6.         return (n*factorial(n-1))
    7. n = int(input('请输入n:'))
    8. print('n! = ',factorial(n))
    9. #用lambda表达式:print(functools.reduce(lambda x,y:x*y,range(1,n+1)))

     

    4.编写函数模拟猜数游戏程序。系统随机产生一个数(<100),玩家最多可以猜5次,系统会根据玩家的猜测进行提示,玩家则可以根据系统的提示对下一次的猜测进行适当调整。

    1. #模拟猜数游戏.py
    2. import random
    3. x = random.randint(0,100)#系统随机产生一个小于100的数;
    4. #函数:根据玩家的猜测进行提示
    5. def imply(n,flag):
    6.     if n
    7.         print('猜小了!!你还有{0:}次机会\n'.format(flag))
    8.     if n>x:
    9.         print('猜大了!!你还有{0:}次机会\n'.format(flag))
    10.     if flag == 0:
    11.         print('游戏失败,系统随机所产生的数为:{0:}'.format(x))
    12. print('欢迎进入猜数小游戏')
    13. flag = 5 #记录所猜测的次数
    14. while flag>0:
    15.     flag = flag - 1
    16.     n = int(input('请输入你所猜测的数:'))
    17.     if n == x:
    18.         print('猜对了!!!游戏成功!!!')
    19.         break
    20.     else:
    21.         imply(n,flag)  

     

     

    5.使用递归函数实现汉诺塔问题。(将n个从小到大依次排列的圆盘从柱子a移动到柱子c上,柱子b作为中间缓冲)

    1. def Hanoi(n,a,b,c):
    2.     if n==1:
    3.         print('{}->{}'.format(a,c))
    4.     else:
    5.         #a经过c移动到b
    6.         Hanoi(n-1,a,c,b)
    7.         #a直接移动到c
    8.         Hanoi(1,a,b,c)
    9.         #b经过a移动到c
    10.         Hanoi(n-1,b,a,c)
    11.         
    12. n = int(input('请输入n的值:'))
    13. Hanoi(n,'A','B','C')

     

    三、总结

    1. 通过这次练习,更好的掌握函数定义和调用。
    2. 对递归有了更好的理解。
    3. 并学会运用lambda表达式对阶乘进行求解。
    4. 掌握了函数形参与实参的使用。
  • 相关阅读:
    客户文章|南方医科大学李克玄团队破解肠道宏病毒与心肌病关系
    axios封装(例如:请求头、token、超时、BaseUrl、请求错误、请求重复)
    Java并发编程—java中守护线程和用户线程
    【算法】算法题-20231118
    C++ list的模拟实现
    在 Windows 操作系统中,可以通过命令行工具来杀死进程
    Uniapp零基础开发学习笔记(1) - 项目初步创建
    自己java复习笔记
    基于FPGA的图像一维FFT变换IFFT逆变换verilog实现,包含tb测试文件和MATLAB辅助验证
    Java运算符
  • 原文地址:https://blog.csdn.net/weixin_74287172/article/details/136487027