美文网首页
3.Python基础语法

3.Python基础语法

作者: info_gu | 来源:发表于2020-09-07 14:43 被阅读0次

    基本数据类型

    image.png

    如何判断XX的类型

    type(xx)

    数据类型转换

    int(X)
    str(123)
    bool(123) -->true

    序列的概念:

    image.png

    切片

    字符串的定义和使用

    字符串的常用操作

    image.png

    列表的定义和常用的操作

    增: append
    删:remove

    条件语句

    循环语句

    image.png
    #打印结果1-12
    for i in range(1,13):
      print(i)
    

    %s和%d替换

    print('%s 年的生肖是 %s' %(year,year%12))
    

    while循环

    #死循环
    while True:
        print ("xxx")
    

    break终止循环

    continue跳过循环

    列表推导式与字典推导式

    #求1到10所有偶数的平方
    list=[]
    for  i in range(1,11){
      if i%2==0:
      list.append(i*i) 
    }
    #列表推导式
    list=[i*i for  i in range(1,11) if i%2==0]
    
    二个list完全一致
    

    字典推导式

    dict={}
    for key in dict:
      dict[key]=0
    
    #字典推导式
    dict={key:0 for i in dict }
    

    文件的内建函数

    image.png
    #写入内容
    file1=open("name.txt","w")
    file1.write("诸葛亮")
    file1.close()
    
    
    #读取内容
    file1=open("name.txt")
    content=file1.read()
    print(content)
    file1.close()
    
    #增加
    file1=open("name.txt","a")
    file1.write("赵云")
    file1.close()
    

    如果文件有多行?如何读取其中一行内容?

    #读取一行
    file4=open("name.txt")
    line_content=file4.readline()
    print(line_content)
    file4.close()
    #逐行处理
    file4=open("name.txt")
    for line in file4.readlines():
        print(line)
    file4.close()
    

    Python中with语句

    使用 with 语句操作文件对象
    with open(r'somefileName') as somefile:
            for line in somefile:
                print line
                # ...more code
    
    
    这里使用了 with 语句,不管在处理文件过程中是否发生异常,都能保证 with 语句执行完毕后已经关闭了打开的文件句柄。如果使用传统的 try/finally 范式,则要使用类似如下代码:
    
    清单 3. try/finally 方式操作文件对象
    somefile = open(r'somefileName')
        try:
            for line in somefile:
                print line
                # ...more code
        finally:
            somefile.close()
    

    异常的检测和处理

    函数的迭代器和生成器

    函数的可变长参数

    def fuc1(frist,*other):
        print(1+len(other))
    fuc1(23,123)
    

    函数的关键字参数

    lambda表达式

    #定义个函数返回True
    #例子1:
    def true():
        return Ture
    true()
    
    等同于
    lambda :True
    
    
    #例子2带参数
    def add (x,y):
      return x+y
    等同于
    lambda x,y:x+y
    

    内置函数

    filter() ,map(), reduce(),zip()

    filter()

    作用:把满足条件的数据按照指定function过滤出来
    filter(function or None, iterable)
    
    例子:
    list1 =[1,2,3,4,5,6]
    print(list(filter(lambda x:x>2,list1)))
    

    map()

    作用:把传入的数据进行处理
     map(func, *iterables)
    
    例子:
    list1=[1,2,3]
    list2=[1,2,3]
    print(list(map(lambda x,y:x+y,list1,list2)))
    
    结果打印:
    [2, 4, 6]
    

    reduce()

    作用:将列表中的元素和其他数运算

    reduce(function, sequence, initial=None)
    
    例子:
    from functools import reduce
    print(reduce(lambda x,y:x+y,[1,2,3],1))
    #结果:(1+1)+2+3=7
    

    zip()

    zip(iter1 [,iter2 [...]])
    
    list1=[1,2,3]
    list2=[2,3,4]
    for i in  zip(list1,list2):
        print(i)
    
    打印的结果为纵向整合:
    (1, 2)
    (2, 3)
    (3, 4)
    
    案例2:将字典的key和value对换位置
    dict1={"name":"lisi","age":"18"}
    print(dict(zip(dict1.values(),dict1.keys())))
    

    闭包和装饰器

    闭包:
    1.函数嵌套函数
    2.内部函数返回外部函数的参数
    3.外部函数返回内部函数的函数名不带括号

    案例:

    # 求 a*x+b=y 因为ab可能是固定的,所以我们希望不用每次都需要传ab
    # 所以这里使用闭包
    def a_line(a,b):
        def re_y(x):
            return a*x+b
        return  re_y
    
    fuc_=a_line(10,20)
    print(fuc_(8))
    print(fuc_(9))
    

    如果想要给函数添加一些功能,但是又不想动这个函数的代码,我们就需要使用装饰器

    比如我们想看一个函数的执行时间(非装饰器)

    import time
    
    def i_can_sleep():
        time.sleep(3)
    
    
    start_time=time.time()
    i_can_sleep()
    stop_time=time.time()
    print("函数的执行时间%s"%(stop_time-start_time))
    

    运行结果为:函数的执行时间3.000004291534424

    咱们不想修改i_can_sleep函数里面的代码,但是需要i_can_sleep具备记录函数执行的时间功能

    def timer(fun):
        def warpper():
            start_time = time.time()
            fun()
            stop_time = time.time()
            print("函数的执行时间%s" % (stop_time - start_time))
        return warpper
    @timer
    def i_can_sleep():
        time.sleep(3)
    
    
    i_can_sleep()
    

    装饰器的执行过程:
    1.遇到i_can_sleep看到该函数有装饰器,则会先执行装饰器
    2.如何执行装饰器, timer(i_can_sleep())

    装饰器带参数(我们可以根据装饰器的参数不同,做不同的处理)

    #装饰器没带参数,但是被装饰的函数带参数
    def timer(func):
        def warpper(a,b):
            start_time=time.time()
            func(a,b)
            time.sleep(2)
            stop_time = time.time()
            print("函数的执行时间%s" % (stop_time - start_time))
        return warpper
    @timer
    def add(a,b):
        print(a+b)
    add(1,5)
    

    装饰器带参数

    import time
    
    def new_timer(vargs):
       def timer(func):
           def warpper(a,b):
               start_time=time.time()
               func(a,b)
               time.sleep(2)
               stop_time = time.time()
               print(vargs)
               print("函数的执行时间%s" % (stop_time - start_time))
           return warpper
       return timer
    @new_timer('add')
    def add(a,b):
       print(a+b)
    add(1,5)
    

    执行结果:

    6
    add
    函数的执行时间2.00000262260437
    

    我们可以在函数中使用if来区别vargs的参数来做不同的处理,我们也可以通过print(func.name)来拿到函数的名字

    上下文管理器

    with 不用担心文件close方法,会自动进行关闭

    模块

    image.png

    pep8编码规范

    什么样的代码是优雅的代码?

    如何增加类的属性和方法

    类的私有成员 self.__file
    类的首字母需要大写
    

    自定义with语句

    初始化和结束时调用
    enter方法
    exit方法

    Python标准库的定义

    1.正则
    希望\不转移,则需要在字符串前 加上r开头
    print(r'\d-\d-\d')

    文件和目录访问

    相关文章

      网友评论

          本文标题:3.Python基础语法

          本文链接:https://www.haomeiwen.com/subject/pshfektx.html