def函数以及参数的问题

def函数

现有以下的脚本

a=1
b=2
c=a+b
print(c)

如果想把它系统的展现成为一个函数的话,用def函数定义,并且在使用的时候 其具体内容要用tab键括住。

def function():
    print('this is a function')
    a = 1
    b = 2
    c = a + b
    print(c)

运行这样的一个脚本,并不会用任何的输出,因为只是定义了这个函数,但是没有调用这个函数

直接使用`function()就可以调用啦 还可以在控制台使用这个语句

参数

def func(a,b):
    c=a*b
    print(c)

func(1,2)

输出结果为2

默认参数

当没有默认的情况下:

def fun(name,price,brand,category):
    print(
        'name is:',name,
        'price is:',price,
        'brand is:',brand,
        'category is:',category
    )

fun('冰箱',3000,'格力','电器')

``
输出结果:
在这里插入图片描述
如果要有默认的参数,当有些变量的值基本上确定的时候,我们可以如下编写:

def fun(name,price,brand='格力',category='电器'):
    print(
        'name is:',name,
        'price is:',price,
        'brand is:',brand,
        'category is:',category
    )

fun('冰箱',3000)

如果想改brand的值 直接在调用的时候赋值就可以了

fun('冰箱',3000,'海尔')

另外 不能这样定义:在这里插入图片描述
要把所有确定的值都移到后面,要不然会报错

全局和局部变量

def fun():
    a=10
    print(a)
    return a+100
fun()

结果是输出10

如果最后一行替换成print(fun()) 结果变成了10(回车)110

全局变量一般是以大写字母命名
在这里插入图片描述
A是全局变量 可以打印出来 ;a是局部变量 在范围之外不能打印
也可以使用全局变量赋值局部变量 如a=A
如果一定要在一个小范围定义一个全局变量 可以global A A=20来定义 不可以直接连等 如global A=20(X)
正确的如下:

def fun():
    global a
    a=20
    print(a)
    return a+100
print(fun())

有的版本这样是错误的 原因是没有在全局定义一遍并赋值

A=100
a=None
def fun():
    global a
    a=20
    print(a)
    return a+100
print(fun())

如此便解决了这个问题

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值