python笔记1

基于python的大数据分析基础

chapter 1 python 基础

1. 安装python

(略)

2. 语法基础

  1. 代码注释:

    • 单行: #
    • 多行: 三个单引号
  2. 缩进表示分层

  3. 语句断行:

    使用\ 进行多行换行

  4. print()的作用

  5. 字符串中引号的嵌套

3. 程序结构

  1. 运算符:

  2. 顺序结构

  3. 判断结构

  4. 循环结构

    while

    n=int(input("请输入结束的数"))
    i=1
    su=0
    while i<=0:
        su+=i
        i+=1
    print("从1+到%d结果是:%d" %(n,su))
    

    for

    n =int(input("请输入结束的数"));
    i=0;
    fori in range(n+1):
        su+=i;
    print("从1加到%d的结果是" %(n,su))
    
  5. 异常

    • try...except 不同于别的语言的try..catch

      try:
          print(1/0)
      except Exception as e:
       	print("代码出现异常")
      print("继续运行")
      
    • try..except..finally

      try:
          print("这里没有异常")
      

    except Exception as e:
    print("这句话不会输出")
    finally:
    print("必须执行的")

    
    
  • try...except...finally

       try:
           print("正常代码")
     except Exception as e:
        pirnt("这句话不会输出")
       else:
           print("这句话被输出")
       finally:
           print("无论如何都会执行的")
    

4.函数:

  • 定义:
def 函数名 (参数):
  函数体
  return 返回值
  • 参数结构:

    • 传统参数传递

      • 无参数传递:

        def func():
            pass
        
      • 固定参数:

        def func(x,y,z):
            pass
        
    • 默认传递参数

      def func(x,y="abc",z="bcd"):
          pass
      
    • 未知参数个数

      参数数量不固定,使用一个* 就可以了

      def func(name,*args):
          for i in args:
              print(i)
      func("张三","李四","王五")
      
    • 带键参数传递

      def func(**kwargs):
          print(type(kwargs))
          for i in kwargs:
              print(i,kwargs[i])
              
      func(aa=1,bb=2,cc=3)
      
  • 回调函数:

    回调函数: 将函数作为参数传递给另一个函数中调用.

    def  func(fun,args):
        fun(args)
        
    def f1(x):
        print("这是f1",x)
    def f2(x):
        print("这是f2",x)
    func(f1,123)
    
  • 函数递归与嵌套

    • 函数递归

      函数递归是指函数在函数体中直接或者间接的调用自身的现象,递归必须要有停止条件,否则就是一个死循环

      '''
      斐波那契
      '''
      def fib(n):
          if n>=2:
              return 1
          else:
              return fib(n-1)+fib(n-2)
          
      for i in range(1,10):
          print("fib(%s)=%s" %(i,fib(i))
          
      
    • 函数嵌套

      函数嵌套指函数内部调用其他函数.

  • 闭包

    回调函数是将函数作为参数传递,而闭包是将函数作为返回值返回.

    闭包可以延长变量的作用时间和作用域.

    def say(word):
        def name(name):
            print(word,name)
        return name
    hi = say("你好") # 将hi变成name 函数
    hi("小明")# 调用name函数
    
  • 匿名函数lambda

    python 允许使用lambda关键字定义一个匿名函数,所谓的匿名函数,指调用一次或者几次以后不再需要的函数.

    #求两个数之和 定义函数 f(x,y) =x+y
    f = lambda x,y: x+y
    print(f(2,3))
    
    
    • lambda 不能包含命令
    • lambda表达式不能超过一个
  • 关键字yield

yield关键字,可以将函数执行的中间结果返回但不结束程序.

def func(n):
    i=0;
    while i<n:
        yield i
        i+=1
for i in func(10):
    print(i)

5. 数据结构

  • 列表:

    列表的定义: 中括号,英文逗号做分隔,里面的数据可以是任意类型的

    s=[1,2,4,"abc",{"age":23}]
    pirnt(type(s))
    

    获取列表元素: 通过下标获取,从0开始 list[index]

    list常用的函数:

    list = [1,2,3]
    list.append(4) #将元素追加到list的尾部
    print(list)
    list_new = [5,6,7]
    list.extend(list_new) # extend将一个列表追加到另一个列表
    pirnt(list)
    list.insert(1,"a") #insert  插入到指定位置,第一个是位置编号,第二个参数是插入的元素
    print(list)
    list.remove(1); #remove 是将列表中一个值为1的元素移除
    pirnt(list);
    
    list.clear() #清空列表
    list.index(1) #返回第一个值为1的索引位置,如果不存在1,就会报错
    list.count() #返回列表的长度
    list.reverse() #列表反向
    liset.sort() #数组从小到大排序,翻转的话.list.sort(reverse=True)
    list.copy()  #返回列表的副本
    
  • 元组:(tuple)

    元素和列表相似,用括号定义,元祖一旦定义就不会更改

    tuple.count() #tuple一共有多少个元素
    tuple.index(x) #第一个x元素出现的位置
    
  • 集合(set):

    集合不能保存重复的数据,它具有排重的功能.set中的元素的位置是无序的,所以不能像 列表一样通过索引进行获取数据.

    集合操作:

    
    
  • 字典(dict):

    键值对结构.可类比php的数组和js的json

    d = {'age':12,"name":"张三"}
    

    操作:

    d = {'age':12,"name":"张三"} #定义字典
    dc = d.copy #复制字典
    dc.clear() #字典清楚
    d.items() #获取字典列表
    d.keys() #获取字典的key列表
    d.values() # 获取字典的value列表
    d.pop("age") #将key为age的项删除
    

6. 常用的三个函数

  • map

    遍历序列,对序列中的每一个元素进行操作,最终获取新的序列

    li=[111,22,33]
    new_list = map(lambda a:a+100,li)
    a =list(new_list)
    print(a)
    

    map用于遍历,数组,然后通过跌代器进行对每一个元素进行操作操作后返回

  • filter

    fileter是筛选,满足func条件的会留下来

    list = [11,22,33]
    new_list = filter(lambda x:x>22,list)
    print(new_list)
    
  • reduce

    累计函数,迭代所有元素并进行累计

    from functools import reduce # 从functool模块导入reduce函数
    list = [11,22,33,44]
    value = reduce(lambda arg1,arg2:arg1+arg2,list)
    print(value)
    

7,面向对象编程基础

  • 类和实例
  • 数据封装:
  • 私有方法和私有变量:
posted @ 2020-05-19 23:43  callmelx  阅读(115)  评论(0编辑  收藏  举报