Python 关于函数的使用

news2024/11/18 2:31:51

一、学习目标

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)))

 

4.编写函数模拟猜数游戏程序。系统随机产生一个数(<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')

 

三、总结

  1. 通过这次练习,更好的掌握函数定义和调用。
  2. 对递归有了更好的理解。
  3. 并学会运用lambda表达式对阶乘进行求解。
  4. 掌握了函数形参与实参的使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1491315.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C 判断

判断结构要求程序员指定一个或多个要评估或测试的条件&#xff0c;以及条件为真时要执行的语句&#xff08;必需的&#xff09;和条件为假时要执行的语句&#xff08;可选的&#xff09;。 C 语言把任何非零和非空的值假定为 true&#xff0c;把零或 null 假定为 false。 下面…

C语言快速入门之指针详解

一.指针基础 1.指针定义的理解 就像我们住房子划分房间一样&#xff0c;在系统中&#xff0c;内存会被划分为多个内存单元&#xff0c;一个内存单元大小是一个字节&#xff0c;我们在搜索房间时有门牌号&#xff0c;与之类似&#xff0c;每个内存单元都会有一个编号 地址 指…

UCSF DOCK 分子对接详细案例(05)- 遗传算法用于分子生成 DOCK_GA

欢迎浏览我的CSND博客&#xff01; Blockbuater_drug …点击进入 文章目录 前言一、软件及操作环境二、遗传算法三、结构文件准备四、 DOCK_GA4.1 Fragment Library Generation4.2 运行 GA没有RDKit编译的情况RDKit编译的情况在服务器上运行 总结参考资料 前言 本文是UCSF DOC…

能源大数据采集,为您提供专业数据采集服务

随着经济的不断发展&#xff0c;能源产业也逐渐成为国民经济的支柱产业之一。而对于能源行业来说&#xff0c;数据采集是一项至关重要的工作。以往&#xff0c;能源企业采集数据主要依靠人工收集、整理&#xff0c;但是这种方式不仅效率低下&#xff0c;而且容易出现数据不准确…

Spring——Bean的作用域

bean的作用域 Bean Scope Scope说明singleton&#xff08;默认情况下&#xff09;为每个Spring IoC容器将单个Bean定义的Scope扩大到单个对象实例。prototype将单个Bean定义的Scope扩大到任何数量的对象实例。session将单个Bean定义的Scope扩大到一个HTTP Session 的生命周期…

Python 面向对象编程——类的使用

一、学习目标 1&#xff0e;掌握类的定义和实例化对象。 2&#xff0e;熟练掌握类的构造函数__init__使用。 3&#xff0e;掌握类的继承机制和使用。 二、相关练习 1、定义一个玩具类Toy()&#xff0c;创建名字为“小汽车”、“手枪”和“积木”的玩具实例&#xff0c;计…

qt cmake添加resource文件

文章目录 方式一:方式二:qrc的使用 两种方式 方式一: 创建一个qrc文件&#xff0c;在qt_add_executable 中直接添加 qt_add_executable(helloworldmain.cppimageresources.qrc )方式二: 使用 qt_add_resources qt_add_resources(helloworld "app_images"PREFIX &…

tomcat nginx 动静分离

实验目的:当访问静态资源的时候&#xff0c;nginx自己处理 当访问动态资源的时候&#xff0c;转给tomcat处理 第一步 关闭防火墙 关闭防护 代理服务器操作&#xff1a; 用yum安装nginx tomcat &#xff08;centos 3&#xff09;下载 跟tomcat&#xff08;centos 4&#xff0…

循环队列:一道使数据结构萌新知道什么是“愁滋味“的题目

这破题目肝了我一天半才搞明白,也正是因为这道题目,我才豁然明白了李煜所说的"剪不断,理还乱...别是一般滋味在心头"到底是什么"滋味".在完全搞明白之前,真的是放有放不下,理也理不清... 但是理解之后你会发现,嘛い---,也就那么个回事嘛O(∩_∩)O 目录 1…

瑞_Redis_短信登录(一)

文章目录 项目介绍1 项目准备1.1 导入SQL1.2 导入后端项目1.2 导入前端项目 &#x1f64a; 前言&#xff1a;本文章为瑞_系列专栏之《Redis》的实战篇的短信登录章节的项目准备小节。由于博主是从B站黑马程序员的《Redis》学习其相关知识&#xff0c;所以本系列专栏主要是针对该…

Tonka Finance,BTCFi 浪潮的发动机

在 2023 年年初&#xff0c;Ordinals 技术方案为比特币 Layer1 带来了一种全新的资产发行方式&#xff0c;此后一场以比特币生态为主战场的新一轮资金、注意力价值争夺战打响&#xff0c;并且越来越多的加密原教旨主义者、密码极客们加入这场战争中。我们看到&#xff0c;铭文市…

【操作系统概念】 第1章:导论

文章目录 关于本书内容0.前言1.1操作系统的功能1.1.1 用户视角1.1.2 系统视角1.1.3 操作系统的定义 1.2 计算机系统的组成1.2.1 计算机系统的运行1.2.2 存储结构1.2.3 I/O结构 1.3 计算机系统体系结构1.4 操作系统的结构1.5 操作系统的执行1.5.1 双重模式与多重模式的执行1.5.2…

DolphinScheduler——介绍及架构设计

目录 一、DolphinScheduler介绍 1.1 概述 1.2 特性 1.2.1 简单易用 1.2.2 丰富的使用场景 1.2.3 High Reliability 1.2.4 High Scalability 1.3 名词解释 1.3.1 名词解释 1.3.2 模块介绍 二、DolphinScheduler架构原理 2.1 系统架构图 2.2 架构说明 2.2.1 Maste…

【AI视野·今日Sound 声学论文速览 第五十一期】Mon, 4 Mar 2024

AI视野今日CS.Sound 声学论文速览 Mon, 4 Mar 2024 Totally 6 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers VoxGenesis: Unsupervised Discovery of Latent Speaker Manifold for Speech Synthesis Authors Weiwei Lin, Chenhang He, Man Wai Mak, …

66-ES6:var,let,const,函数的声明方式,函数参数,剩余函数,延展操作符,严格模式

1.JavaScript语言的执行流程 编译阶段&#xff1a;构建执行函数&#xff1b;执行阶段&#xff1a;代码依次执行 2.代码块&#xff1a;{ } 3.变量声明方式var 有声明提升&#xff0c;允许重复声明&#xff0c;声明函数级作用域 访问&#xff1a;声明后访问都是正常的&…

最新LangChain+GLM4开发AI应用程序系列(三):RAG检索增强生成篇

最新LangChainGLM4开发AI应用程序系列&#xff08;三&#xff09;&#xff1a;RAG检索增强生成篇 一、前言二、RAG介绍1、文档加载器2、文本分割器3、嵌入模型4、向量数据库 三、RAG开发案例1、创建智谱GLM4大模型对象2、加载文档3、文本分割4、向量化存储5、向量库检索6、生成…

初始网络 --- 网络基础

目录 0、 前言 1、 计算机网络发展背景 1.1. 局域网(LAN) && 广域网(WAN) 2、 认识并理解协议 3、 初始网络协议 3.1. 协议分层 4、 TCP/IP 五层(或四层)模型 4.1. 简单了解TCP/IP层状体系 4.2. TCP/IP协议层状结构和计算机层状结构的关系 5、 OSI七层模型 …

程序员如何选择职业赛道:探索未知,寻找激情

作为程序员&#xff0c;我们时常面临职业选择的难题。在这个充满变革的行业中&#xff0c;如何选择适合自己的职业赛道成为了我们关注的焦点。本文将探讨程序员如何选择职业赛道&#xff0c;帮助你找到适合自己的发展方向。 一、认识自己的兴趣和激情 首先&#xff0c;我们需要…

为什么要用云手机进行国外社媒监控?

随着全球化的不断发展&#xff0c;社交媒体已成为企业推动全球品牌知名度和业务流量的关键渠道。在这个数字时代&#xff0c;云手机作为一种强大的工具&#xff0c;为国外社交媒体监控提供了全新的可能性。在这篇文章中&#xff0c;我们将探讨使用云手机进行国外社媒监控的重要…

RHCSA练习2

一、实验题目 1、文件查找 &#xff08;1&#xff09;在当前目录及子目录中&#xff0c;查找小写字母开头的txt文件 [rootroot ~]# cd /etc [rootroot etc]# find . -type f -name [a-z]*.txt &#xff08;2&#xff09;在/etc及其子目录中&#xff0c;查找host开头的文件 …