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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gaoxiaochan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值