马哥门徒DEVOPS第七周

1. 如何为函数定义keyword-only参数(写出个例子即可)?

Keyword-Only Arguments表示给函数传参的时候必须指定参数名,也就是关键字。

示例
一般函数的定义与传参方式:

def main(arg1, arg2):
print(arg1, arg2)

main(1, 2)
main(arg1=1, arg2=2)

定义:

main函数定义两个参数arg1和arg2。

传参:

直接传参或指定参数名(关键字)传参都可以。


带强制关键字参数的函数的定义与传参方式:

def main(arg1, *, arg2):
print(arg1, arg2)

main(1, 2) # 错误的传参方式(会报错)
main(1, arg2=2) # 正确的传参方式

定义:

main函数定义一个一般参数arg1和一个强制关键字参数arg2。

传参:

星号前面的参数为一般参数,可以直接传参,也可以指定参数名即关键字传参;但星号后面的参数都是强制关键字参数,所以必须以指定参数名的方式传参!
在这里插入图片描述

2. 什么是LEGB,请解释

LEGB含义解释
在这里插入图片描述L(Local) > E(Enclosing外层函数局部变量) >G(Global)> B(内建函数(built-in))
寻找变量的调用顺序,就是采用的LEGB原则(就近原则)
寻找顺序:从下往上、从里往外
在各自的函数定义本地变量,函数执行优先选择本地的;
当内层函数不存在本地变量的时候,会选择外层函数局部变量;
当函数中局部变量全部不存在是,会选择global全局变量;
局部变量:函数内部的变量(局部命名空间)
全局变量:函数内部和外部(全局命名空间)
在这里插入图片描述以foo()内部的print(a)为例:

1.如果foo()函数内部有a这个变量,那么a这个变量就是局部的

2.如果foo()函数内,没有这个变量,那么就会去找该函数外层的函数func()中,有没有a这个变量,如果有,那么这个a就是闭包的

3.如果func()中没有变量a,那么就会去最外层的全局变量找

4.如果全局变量没有a,就去内置中找

3. 实现一个计算机程序,如下效果:

  1. 运行后提示让用户输入一个数字
  2. 提示输入操作符(+ - * /)
  3. 再次提示输入一个数字
  4. 打印计算结果
  5. 在不退出程序的前提下,可以允许用户继续输入新一组数据计算
  6. 尽可能改善用户体验
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值