Python学习笔记(基础语句及函数)

本文是Python学习笔记,探讨了time.gmtime()的时间处理,capitaliz()函数,复数的表示,else与循环的结合,break语句,全局与局部变量的使用,可迭代对象,切片操作,max函数的key参数,reduce函数的工作原理,sort方法的使用,以及异常处理的层次结构。通过实例解析了Python基础语法的重要概念。

Python学习笔记

  1. ime.gmtime()获取的时间与系统时间不符
    python中tmie.gmtime()获取的时间为UTC时区(0时区)的struct_time,但是我们计算机显示的是东八区时间(+8),所以的得到的struct_time+8即为现在计算机显示的时间(按照所处不同时区计算)。

  2. capitaliz()函数会将字符串首字母变大写,其余字母变小写。

  3. Python中的复数虚部必须后缀j且j不区分大小写。

  4. else可以和for循环和while循环搭配使用,属于循环的一部分:

    for i in range(3):
        if i==2:
            break
        print(i)
    else:
        print("hi")
    
    #输出结果
    0
    1
    
    for i in range(3):
        if i==2:
            continue
        print(i)
    else:
        print("hi")
    #输出结果
    0
    1
    hi
    
  5. break语句不是异常,不能用try…except检测到。

  6. 全局变量与局部变量
    在函数内部可以调用全局变量。

    def test():
    	print("i="+str(i))
    i=3
    test()
    #输出结果
    i=3
    

    如果在函数内部定义全局变量的同名变量,若调用变量在定义变量之前,则会报错。

    def test():
    	print("1i="+str(i))
    	i=8
    	print("2i="+str(i))
    i=3
    test()
    #输出结果
    UnboundLocalError: 
    local variable 'i' referenced before assignment
    

    如果一定要先调用全局变量,再修改全局变量的值,这应该使用global关键词,此时,全局变量就被修改了。global语句可以声明一个或多个变量为全局变量,该声明仅在当前代码块中有效。

    def test():
    	global i
    	print("1i="+str(i))
    	i=8
    	print("2i="+str(i))
    i=3
    test()
    print("i="+str(i))
    #输出结果
    1i=3
    2i=8
    i=8
    
  7. “for i in ”后面的是可迭代的对象,也就是有多个值。

  8. 切片操作不会因为下标越界而抛出异常,而是简单地在列表尾部截断或者返回一个空列表。

  9. max函数中的key参数:
    函数形式:max( x ,key=lambda b : b ) # x可以是任何数值,可以有多个x值
    这个函数的意思是:我们先把x值带入lambda函数转换成b值,然后再将b值进行比较。

    haha0=max('az','za', key=lambda a: a[0])
    haha1=max('az','za', key=lambda a: a[1])
    haha2=max(range(10),key=lambda a:a>3)
    
    print(haha0)        #输出za
    print(haha1)        #输出az
    print(haha2)        #输出4
    

    以haha0为例子:我们传入az,za,为了方便解释称之为虚拟比较,但是因为我们引入了lambda表达式,所以,我们实际上比较的是,az中的第一位a和za中第一位的z,由ascii码表可以知道a是小于z的,所以在这里最大的是z,那么我们返回的就是z的虚拟比较变量,也就是本来的"za"。
    haha2的用法十分少见,实际上比较的是F F F T T T T T T T ( False 和 True ),T是肯定比F大的,但是一堆True哪里能互相比较大小呢,所以就输出第一个True值的虚拟比较变量,也就是4啦。
    ————————————————
    版权声明:本文为CSDN博主「aic1999」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/aic1999/article/details/79752435

  10. reduce()函数的工作过程是 :在迭代sequence(tuple ,list ,dictionary, string等可迭代物)的过程中,首先把 前两个元素传给 函数参数,函数加工后,然后把得到的结果和第三个元素作为两个参数传给函数参数, 函数加工后得到的结果又和第四个元素作为两个参数传给函数参数,依次类推。 如果传入了 initial 值, 那么首先传的就不是 sequence 的第一个和第二个元素,而是 initial值和 第一个元素。经过这样的累计计算之后合并序列到一个单一返回值 。

  11. alist.sort()返回值为None

  12. 异常处理
    内层的try-except对内层的某个异常类型没有处理,外层对该异常有处理措施,则先完成内层的try-except,再完成外层的tyr-except。

try:
    print("1")
    try:
        print(a)
    except ZeroDivisionError:
        print("3")
    finally:
        print("4")
except NameError:
    print("5")

输出:
1
4
5
  1. xxxx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值