Advertisement

Python 关于函数的使用

阅读量:

一、学习目标

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

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

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

二、相关练习

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

复制代码
 def Count(radius):

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

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

复制代码
 def Fibonacci(n):

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

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

复制代码
 import functools

    
  
    
  
    
  
    
 def factorial(n):
    
  
    
     if n==0 or n==1:
    
  
    
         return 1
    
  
    
     else:
    
  
    
         return (n*factorial(n-1))
    
  
    
 n = int(input('请输入n:'))
    
  
    
 print('n! = ',factorial(n))
    
  
    
 #用lambda表达式:print(functools.reduce(lambda x,y:x*y,range(1,n+1)))
  1. 创建一个用于模拟猜数字游戏的函数。系统会生成一个小于100的随机数,并向玩家提供最多5次猜测的机会。每次猜测后, 系统都会给出是否正确或数值偏高还是偏低的提示信息, 并鼓励玩家基于这些反馈来优化自己的猜测策略。
复制代码
 #模拟猜数游戏.py

    
  
    
 import random
    
  
    
 x = random.randint(0,100)#系统随机产生一个小于100的数;
    
  
    
  
    
  
    
 #函数:根据玩家的猜测进行提示
    
  
    
 def imply(n,flag):
    
  
    
     if n<x:
    
  
    
         print('猜小了!!你还有{0:}次机会\n'.format(flag))
    
  
    
     if n>x:
    
  
    
         print('猜大了!!你还有{0:}次机会\n'.format(flag))
    
  
    
     if flag == 0:
    
  
    
         print('游戏失败,系统随机所产生的数为:{0:}'.format(x))
    
  
    
  
    
  
    
 print('欢迎进入猜数小游戏')
    
  
    
 flag = 5 #记录所猜测的次数
    
  
    
 while flag>0:
    
  
    
     flag = flag - 1
    
  
    
     n = int(input('请输入你所猜测的数:'))
    
  
    
     if n == x:
    
  
    
         print('猜对了!!!游戏成功!!!')
    
  
    
         break
    
  
    
     else:
    
  
    
         imply(n,flag)  

5.基于递归函数设计的方案能够有效解决汉诺塔问题。该方案通过将n个按从小到大的顺序依次排列的圆盘从起始柱子a移动至目标柱子c上,并借助临时存放区域b来完成移动过程。

复制代码
 def Hanoi(n,a,b,c):

    
  
    
     if n==1:
    
  
    
         print('{}->{}'.format(a,c))
    
  
    
     else:
    
  
    
         #a经过c移动到b
    
  
    
         Hanoi(n-1,a,c,b)
    
  
    
         #a直接移动到c
    
  
    
         Hanoi(1,a,b,c)
    
  
    
         #b经过a移动到c
    
  
    
         Hanoi(n-1,b,a,c)
    
  
    
         
    
  
    
 n = int(input('请输入n的值:'))
    
  
    
 Hanoi(n,'A','B','C')

三、总结

经过此次练习,熟练地习得了函数的定义与调用。
深入地了解了递归的概念。
学习如何利用lambda表达式计算阶乘。
精确地区分函数形式参数与实参的区别,并掌握它们之间的关系。

全部评论 (0)

还没有任何评论哟~