当前位置: 首页 > news >正文

python练习Ⅱ--函数

练习1、定义一个函数,可以用来求任意三个数的乘积

# 求任意三个数的乘积
def mul(a,b,c):
    print(a*b*c)
mul(1,2,3)

练习2、定义一个函数,可以根据不同的用户名显示不同的欢迎信息

# 根据不同的用户名显示不同的欢迎信息   
def welcome(username):
    print('欢迎',username,'光临')
welcome('孙悟空')

练习3、定义一个函数,可以求任意个数字的和

def sum(*nums):
    # 定义一个变量,来保存结果
    result = 0
    # 遍历元组,并将元组中的数进行累加
    for n in nums :
        result += n
    print(result)

sum(123,456,789,10,20,30,40)

练习4、创建一个函数,可以用来求任意数的阶乘

方法一:

# 创建一个函数,可以用来求任意数的阶乘
def factorial(n):
    '''
        该函数用来求任意数的阶乘

        参数:
            n 要求阶乘的数字
    '''

    # 创建一个变量,来保存结果
    result = n
    
    for i in range(1,n):
        result *= i

    return result   
# 求10的阶乘    
# print(factorial(10))

方法二:(递归)

def factorial(n):
    '''
        该函数用来求任意数的阶乘

        参数:
            n 要求阶乘的数字
    '''
    # 基线条件 判断n是否为1,如果为1则此时不能再继续递归
    if n == 1 :
        # 1的阶乘就是1,直接返回1
        return 1

    # 递归条件    
    return n * factorial(n-1)

# print(factorial(10))

 练习5、创建一个函数 power 来为任意数字做幂运算 n ** i
   10 ** 5 = 10 * 10 ** 4
   10 ** 4 = 10 * 10 ** 3
   ...
   10 ** 1 = 10

def power(n , i):
    '''
        power()用来为任意的数字做幂运算

        参数:
            n 要做幂运算的数字
            i 做幂运算的次数
    '''
    # 基线条件
    if i == 1:
        # 求1次幂
        return n
    # 递归条件
    return n * power(n , i-1)

print(power(8,6))  

练习6、创建一个函数,用来检查一个任意的字符串是否是回文字符串,如果是返回True,否则返回False。

   回文字符串,字符串从前往后念和从后往前念是一样的:  abcba、abcdefgfedcba
   先检查第一个字符和最后一个字符是否一致,①如果不一致则不是回文字符串
      ②如果一致,则看剩余的部分是否是回文字符串
   检查 abcdefgfedcba 是不是回文
   检查 bcdefgfedcb 是不是回文
   检查 cdefgfedc 是不是回文
   检查 defgfed 是不是回文
   检查 efgfe 是不是回文
   检查 fgf 是不是回文
   检查 g 是不是回文

方法一:

def hui_wen(s):
    '''
        该函数用来检查指定的字符串是否回文字符串,如果是返回True,否则返回False

        参数:
            s:就是要检查的字符串
    '''
    # 基线条件
    if len(s) < 2 :
        # 字符串的长度小于2,则字符串一定是回文
        return True
    elif s[0] != s[-1]:
        # 第一个字符和最后一个字符不相等,不是回文字符串
        return False    
    # 递归条件    
    return hui_wen(s[1:-1])
print(hui_wen('abcdefgfedcba')) 

方法二:

def hui_wen(s):
    '''
        该函数用来检查指定的字符串是否回文字符串,如果是返回True,否则返回False

        参数:
            s:就是要检查的字符串
    '''
    # 基线条件
    if len(s) < 2 :
        # 字符串的长度小于2,则字符串一定是回文
        return True
    # 递归条件    
    return s[0] == s[-1] and hui_wen(s[1:-1])
print(hui_wen('abcdefgfedcba'))  

相关文章:

  • 3D多模态成像市场现状及未来发展趋势分析
  • vscode 1.71变化与关注点(多配置预设/旧合并器回归等)
  • SQL面试题之区间合并问题
  • Linux用户和权限之一
  • 回溯法就是学不会2 —— 括号生成问题
  • ESP32 ESP-IDF TFT-LCD(ST7735 128x160) LVGL演示
  • 信息论学习笔记(二):离散无噪声系统
  • CentOS7启动SSH服务报错
  • 大咖说*计算讲谈社|商用车智能驾驶商业化实践
  • python笔记Ⅶ--函数返回值、作用域与命名空间、递归
  • 03 RocketMQ - Broker 源码分析
  • Java日志系列——规范化日志
  • 00前言说明-Qt自定义控件大全
  • 简历内容整理
  • 金仓数据库KingbaseES客户端编程接口指南-ado.net(7. Kdbnpg支持的类型和类型映射)
  • C++类的相互关联
  • Effective Java 笔记(一)
  • express.js的介绍及使用
  • js
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Python利用正则抓取网页内容保存到本地
  • Service Worker
  • TypeScript实现数据结构(一)栈,队列,链表
  • XForms - 更强大的Form
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 推荐一个React的管理后台框架
  • 微信小程序设置上一页数据
  • 一文看透浏览器架构
  • 译自由幺半群
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​TypeScript都不会用,也敢说会前端?
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (6)设计一个TimeMap
  • (C++17) optional的使用
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (zt)最盛行的警世狂言(爆笑)
  • (二)斐波那契Fabonacci函数
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (一)基于IDEA的JAVA基础10
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)Linux整合apache和tomcat构建Web服务器
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .net6+aspose.words导出word并转pdf
  • .NET6实现破解Modbus poll点表配置文件
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • :如何用SQL脚本保存存储过程返回的结果集
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • @JSONField或@JsonProperty注解使用
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝