python 基础2

本文深入探讨了Python编程中的关键概念和技术,包括十六进制转换、布尔运算、函数参数处理、默认参数陷阱、可变参数应用、关键字参数、命名关键字参数、参数顺序规则、函数调用实例等。通过具体代码示例,详细解析了如何有效利用这些特性来提升代码效率和可读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • hex(),只能将整数转换成十六进制的字符串
  • bool(),bool(0),bool(”),bool(False)是转换成False,其他都是True
  • 在当前目录导入一个py的函数,from 文件名(不加py) import 函数名(不加括号)
  • 参数类型检查,可以用 isinstance(x,(int,float)),检查x是否是整型,浮点型
  • 函数默认参数,如下def enroll(name,gender,age=6,city=’beijing’)可以不按顺序调用默认参数,指定默认参数值就行,如enroll(‘zhou’,’male’,city=’hangzhou’)
  • 默认参数的陷阱:
def add_end(L=[]):
    L.append('end')
    reutn L

每次调用都会加一个end,因为函数定义时,L就指向了一块内存,要避免这种情况,可以这样

def add_end(L=None):
    if L is None:
        L = []
    L.append('end')
    return L
  • 可变参数调用在参数前加一个*即可
def calc(*numbers):
    sum=0
    for n in numbers:
        sum=sum+n*n
        return sum```
   可以calc(1,2)-->5 calc()-->0
*  把列表当作可变参数传进去,直接传递给有可变参数的函数会报错,calc(*[1,2,3])
* 关键字参数,能传进去一个字典
···python
def person(name,age,**kw):
    print('name:',name,'age:',age,'other:',kw)

person(‘michael’,30)—->name:michael age:30 other:{}
persion(‘bob’,35,city=’beijing’)—->name:bob age:35 other:{‘city’:’beijing’}
person(‘adam’,45,gender=’m’,job=’engineer’)—>name:adam age:45 other:{‘gender’:’m’, ‘job’:’engineer}
extra={‘city’:’beijing’,’job’:’engineer’}
person(‘jack’,24,**extra)

  • 如果要限制关键字参数的名字,就可以使用命名关键字参数,例如,只接收city,job作为关键字,
def person(name,age,*,city,job):
    print(name,age,city,job)
  • 如果关键字有缺省值,可以简化调用,如def person(name,age,*,city=’beijing’,job) 可以这样调用person(‘jack’,24,job=’engineer)
  • 参数定义的顺序:必选参数,默认参数,可变参数/命名关键字参数,关键字参数
  • *
def f1(a,b,c=0,*agrs,**kw) 
    print('a=',a,'b=',b,'c=',c,'args=',args,'kw=',kw)
def f2(a,b,c=0,*,d,**kw):
    print('a=',a,'b=',b,'c=',c,'d=',d,'kw=',kw)

f1(1,2)—->a=1 b=2 c=3 args=() kw={}
f1(1,2,3,c=3)—>a=1 b=2 c=3 args=() kw={}
f1(1,2,3,’a’,’b’)–>a=1 b=2 c=3 args=(‘a’,’b’) kw={}
f1(1,2,3,’a’,’b’,x=99)–>a=1 b=2 c=3 args=(‘a’,’b’) kw={‘x’:99}
f2(1,2,d=99,ext=None)–>a=1 b=2 c=0 d=99 kw={‘ext’:None}

args=(1,2,3,4)
kw={‘d’:99,’x’:’#’}
f1(*args,**kw)
—>a=1 b=2 c=3 args=(4,) kw={‘d’,99,’x’:’#’}

args=(1,2,3)
kw={‘d’:88,’x’:’#’}
f2(*args,**kw)
—>a=1 b=2 c=3 d=88 kw={‘x’:’#’}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值