Python函数和面向对象,小白看了都说好

Python函数和面向对象,小白看了都说好

python除了使用内置函数以外,还可以自定义函数。我们为什么要定义和使用函数呢?

下面我举个例子,比如我想求10的阶乘

# 求10的阶乘
m = 1
for i in range(1, 11):
    m *= i
print(m)

代码虽然不长,但是如果我还想求20,21,55,100的阶乘呢?按照上面的方式求几个数的阶乘就要写几个循环,这样我们也能得到想要的答案,但代码是不是显得’难看‘。这时候我们就可以定义一个函数,以后求阶乘只需要调用这个函数就行了。

# 求n的阶乘
def fac(n):
    result = 1
    for i in range(1, n + 1):
        result *= i
    return result
    
fac(8)      # 8的阶乘
fac(25)     # 25的阶乘
fac(63)     # 63的阶乘
fac(100)    # 100的阶乘

是不是感觉很方便呢?接下来给大家介绍一下函数用法

定义函数

定义一个python函数,下面是函数的基本形式:

def 函数名(参数1,参数2,…,参数n):

​ 函数体

​ return 返回值

我们可以看到python用def来定义一个函数,后面有函数名和英文括号(括号里面可以定义一些参数,参数可以根据具体需求设置,也可以没有参数,参数还可以设置默认值)。下面return可以返回一个值,这个值有时任何形式的数据,当然也可以没有返回值。

接下来是一些实例:

实例1:

def hello_world():
    return 'hello, world'


print(hello_world())  # hello, world

实例2:

def hello(name):
    print(f'你好,{
     name}')


hello('百里守约')  # 你好,百里守约

实例3:

# 多个数累加
def add(nums):
    sum = 0
    for n in nums:
        sum += n
    return sum

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(add(nums))    # 55

函数的返回值

return:返回值,如果没有则默认返回None
实例:

def num() :
    s = 10
    return s


def num2():
    s = 10


a = num()
b = num2()
print(a, b)   # 10 None

实例:

    s = 'hello, 张三'
    return s


def hello2():
    print('hello, jack')


a = hello()
print(a)      #hello, 张三
b = hello2()  #hello, jack

函数参数

函数可以设置参数,也可以不设置参数,可以设置一个参数,也可以设置多个参数,同时函数也可以设置默认值。

实例:

import random

# 摇色子
def roll_dice(n=2):
    """摇色子
    
    :param n: 色子个数,默认两个色子
    :return: 返回色子的总点数
    """
    # points 表示总点数
    points = 0
    for _ in range(n):
        points += random.randrange(1, 7)
    return points

print(roll_dice())   # 默认值为2,摇两个色子,没有默认值调用函数时必须传入参数值
print(roll_dice(3))  # 传入参数3,此时n=3,表示摇3个色子

实例:

def BMI(high, weight, sex):
    """
    体质指数计算

    :param high:身高 ,单位:米
    :param weight:体重,单位:千克、公斤
    :param sex:性别,男:1,女:0
    :return: 返回体质指数
    """
    bmi = weight / high ** 2
    if sex == 0:
        bmi -= 1.1
    if bmi < 19:
        print('体重偏轻')
    elif 19 <= bmi < 25:
        print('健康体重')
    elif 25 <= bmi < 30:
        print('超重')
    elif 30 <= bmi < 39:
        print('严重超重')
    else:
        print('极度超重')
    return weight / high ** 2

print(BMI(1.6, 50, 1))
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值