Learn day1 基础

1.Python 简介

(1) 1989年开发的语言,创始人范罗苏姆(Guido van Rossum),别称:龟叔(Guido).

(2) python具有非常多并且强大的第三方库,使得程序开发起来得心应手.

(3) Python程序员的信仰:人生苦短,我用python!

开发方向: 机器学习人工智能 ,自动化运维&测试 ,数据分析&爬虫 ,python全栈开发

(4)  Python 版本

  Python 2.x 版本,官方在 2020 年停止支持,原码不规范,重复较多。
  Python 3.x 版本,功能更加强大且修复了很多bug,原码清晰,简单。

(5) 编译型与解释型语言区别

  编译型:一次性,把所有代码编译成机器能识别的二进制码,在运行
  代表语言:c,c++
  优点: 执行速度块
  缺点: 开发速度慢,调试周期长

  解释型:代码从上到下一行一行解释并运行
  代表语言:python,php
  优点: 开发效率快,调试周期短
  缺点: 执行速度相对慢


  *linux 操作系统默认支持python语言,可直接使用

(6) Python的解释器

  a. Cpython(官方推荐)
    把python转化成c语言能识别的二进制码
  b. Jpython
    把python转化成java语言能识别的二进制码
  c. 其他语言解释器
    把python转化成其他语言能识别的二进制码
  d. PyPy
    将所有代码一次性编译成二进制码,加快执行效率(模仿编译型语言的一款python解释器)

2. 注释

(1)注释的分类

  1. 单行注释

    # 单行注释 以#号开头,右边的所有东西都被当做说明文字,程序不进行编译运行。

    例子如下:
    # print(‘hello world’)

   2. 多行注释

     三个单引号 或 三个双引号

      例子如下:
      '''(""")
        这是第一行
        这是第二行
      '''(""")

(2)注释的注意点

  如果外面使用三个单引号,里面使用三个双引号,反之亦然。

(3)注释的排错性

  先注释一部分代码,然后执行另外一部分,看看是否报错,逐层缩小报错范围,找到最终错误点。

 3. 变量

 
 

(1)变量的概念

  变量: 可以改变的量,实际具体指的是内存中的一块存储空间
  常量: 就是不可改变的量,python当中没有明确定义常量的关键字,所以约定俗成把变量名大写就是常量,表示不可改变

(2)变量的声明
    #方式1

    a = 1
    b = 2
    print(a)
    print(b)

    #方式2   

    a,b = 3,4
    print(a)
    print(b)

    #方式3

    a=b=99
   print(a,b)

(3)变量的命名
    #字母数字下划线 ,首字符不能为数字
    #严格区分大小写 ,且不能使用关键字
    #变量命名有意义 ,且不能使用中文哦

(4)变量的交换
    #a,b = b,a

(5)不能作为变量名使用

  # 打印python 所有关键字
  # import 引入 keyword 模块 有一个属性kwlist 模块.属性 => 获取所有的关键字 拿来直接使用即可.

  import keyword
  res = keyword.kwlist
  print(res)

# 如下关键字都不能作为变量名使用
[
'False',
'None',
'True',
'and',
'as', 'assert', 'break', 'class', 'continue',
'def', 'del', 'elif', 'else', 'except', 'finally',
'for', 'from', 'global', 'if', 'import', 'in', 'is',
'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return',
'try', 'while', 'with', 'yield'
]
"""
    # Number部分 变量的缓存机制

1.对于整型而言,-5~正无穷范围内的相同值 id一致
  var1 = 5
  var2 = 5
  var1 = -6
  var2 = -6
  print(id(var1),id(var2))

2.对于浮点数而言,非负数范围内的相同值 id一致
  var1 = -5.88
  var2 = -5.88
  print(id(var1),id(var2))

3.布尔值而言,值相同情况下,id一致
  var1 = True
  var2 = True
  print(id(var1),id(var2))

4.复数在 实数+虚数 这样的结构中永不相同(只有虚数的情况例外)
  var1 = 4+2j
  var2 = 4+2j
  print(id(var1) , id(var2))
  var1 = 4j
  var2 = 4j
  print(id(var1),id(var2))

5.字符串 和 空元组 相同的情况下,地址相同
  var1 = "你"
  var2 = "你"
  print(id(var1) ,id(var2) )

  var1 = ()
  var2 = ()
  print(id(var1) ,id(var2))

6.列表,元组,字典,集合无论什么情况 id标识都不同 [空元组例外]
  var1 = [1,2,3]
  var2 = [1,2,3]
  print(id(var1),id(var2))

  # res = "我爱你" * 3
  # print(res)

 4. Python 六大标准数据类型

(1)Number   数字类型 (int  float  bool  complex)
(2)str      字符串类型    
(3)list     列表类型      
(4)tuple    元组类型     
(5)set      集合类型     
(6)dict     字典类型      
     
4.1 数字类型 Number ( int )

 
 
  intvar = 156
  print(intvar)

  # type 获取变量的类型 type()
  res = type(intvar)
  print(res)

  # id 或者变量所指向的这个值的内存地址
  res = id(intvar)
  print(res)

  # 二进制整型 0b表示
  intvar = 0b1010
  print(intvar)
  print(type(intvar))
  print(id(intvar))

  # 八进制整型 0o表示
  intvar = 0o10
  print(intvar)
  # 获取类型
  print(type(intvar))
  # 获取地址
  print(id(intvar))

  # 十六进制 0x表示
  intvar = 0xff
  # 获取类型
  print(type(intvar))
  # 获取地址
  print(id(intvar))

4.2 数字类型 Number ( float bool  complex)

(1) float 浮点型 就是小数

  # 表示方法1
  floatvar = 3.14
  print(floatvar)
  print( type(floatvar) )
  print( id(floatvar) )

  # 表示方法2 科学计数法
  floatvar = 5.13e4 # 小数点向右移动
  floatvar = 5.13e-2# 小数点向左移动
  print(floatvar)

(2) bool 布尔型 ( True 真的  False 假的)
  boolvar = True
  boolvar = False
  print(boolvar)
  print(type(boolvar))
  print(id(boolvar))

(3) complex 复数
  """
  复数: 实数 + 虚数
  比如 3+4j
  3是实数
  4j是虚数

  什么是j?
  如果有一个数,它的平方是-1,那么这个数就是j
  科学家认为有,表达高精度类型.
  """

  # 表达方式1
  complexvar = 3-8j
  complexvar = 5j
  print(complexvar)
  print(type(complexvar))
  print(id(complexvar))


  # 表达方式2 complex 函数,转换成复数
  '''
  语法:
  complex(实数,虚数)
  '''
  complexvar = complex(4,2)
  complexvar = complex(4,-2)
  print(complexvar)




4.3 字符串类型 : 用引号引起来的就是字符串

  """
  # 转义字符: 语法 \ 来进行转义
   (1)把有意义的字符变得无意义
  (2)把无意义的字符变得有意义

  \n => 换行
  \r\n => 换行
  \r => 把\r后面的字符串直接拉到当前行的行首,
  \t => 缩进 (水平制表符) 一般一个\t 是4个空格的间距.

  """


  1.单引号
    strvar = '我爱你亲爱的菇凉,见到你我就心慌'
    print(strvar)
    print(type(strvar))

  2.双引号
    strvar = "黑夜给了我黑色的眼睛,但我却用它翻白眼"
    strvar = "黑夜给了我黑色的眼睛,\n但我却用它翻白眼"
    strvar = "黑夜给了我黑色的\n眼睛,\r但我却用它翻白眼"
    strvar = "黑夜给了我黑色的\r\n眼睛,\t但我却用它翻白眼"
    strvar = "黑夜给了我黑色的'眼睛',但我却用它翻白眼"
    # \ 除了可以把无意义的字符变得有意义,也可以吧有意义的字符变得无意义.
    print(type(strvar))

  3.三引号 可以支持跨行操作
    strvar = """轻轻的我走了,正如我轻轻的来
    我轻轻的挥一挥手,不带走一片云彩
    """
    strvar = '''轻轻的我走了,正如我轻轻的来  
    我轻轻的挥一挥手,不带走一片云彩
    '''
    print(strvar)

  4.元字符串 r+"字符串" 让转义字符失效
    strvar = r"asdfasdf\tsdfsd\n3242"
    print(strvar)

    strvar = r"E:\ngix相关视频"
    print(strvar)

  5.字符串的格式化

  """
  %d 整型占位符
  %f 浮点型占位符
  %s 字符串占位符

  语法: "字符串" % (值1,值2,.....)
  """
  # %d
  strvar = "树则会买了%d个面膜" % (10)
  print(strvar)
  # %2d 默认数字居右
  strvar = "郭一萌买了%2d个布加迪威龙" % (7)
  print(strvar)
  # %-2d 默认数字居左
  strvar = "郭一萌买了%-2d个布加迪威龙" % (7)
  print(strvar)


  # %f 小数点部分自动保存6位小数
  strvar = "黄花昨天开工资了,发了%f元" % (9.989)
  print(strvar)
  # %.2f 小数点保留二位 存在四舍五入
  strvar = "黄花昨天开工资了,发了%.2f元" % (9.989)
  print(strvar)

  # %s 字符串占位符
  strvar = "%s" % ("好看的皮囊千篇一律,有趣的灵魂300多斤")
  print(strvar)

  # 综合案例
  strvar = "%s开工资了,发了%.2f元,昨天晚上买了%d个娃娃,心情%s" % ("王成全",99.1234,2,"感觉身体被掏空")
  print(strvar)


4.4 容器类型数据 (列表 list 元组 tuple)

  4.4.1 list 列表 可获取,可修改,有序

1.定义一个空列表
  listvar = []
  print(listvar)
  print(type(listvar))

2.获取列表元素
  # 0 1 2 3 4 正向索引
  listvar = [55,3.155,True,3+9j,"abcdf"]
  # -5 -4 -3 -2 -1 逆向索引

  res = listvar[2]
  print(res)

  # 瞬间拿到列表最后一个元素
  res = listvar[-1]
  print(res)

  # 通用写法 ,用len
  '''
  len 可以获取容器类型数据的长度,(元素总个数)
  '''
  res = listvar[4]
  print(res)
  res = len(listvar)
  print(res) # 5
  # 5 - 1 = 4
  res = listvar[ len(listvar)-1 ]
  print(res)

3.修改列表元素

  listvar[0] = "银燕"
  print(listvar)

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

4.4.2 tuple 元组 可获取,不可修改,有序


1.定义一个空元组 *********
  tuplevar = ()
  print(tuplevar,type(tuplevar))
  # 判断它是否是元组,在于,逗号 *********
  tuplevar = ("abc",)
  tuplevar = 1,2
  print(tuplevar,type(tuplevar))
  # 定义一个元组
  tuplevar = ("李祥海","王成全","赖廷","银燕","毕杨生")


2.获取元组当中的值
  res = tuplevar[2]
  print(res)

3.修改元组中的值? 不可以
  # tuplevar[0] = 123 error



+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  4.4.3 str 可获取 不可修改 有序

1.字符串可以通过索引下标取值
2.可获取
  # 0 1 2 3 45 6 7 9 正向索引
  strvar = "瞅你一眼,浑身哆嗦"
  # -9-8-7-6-5-4-3-2-1 逆向索引
  # 获取"眼"字
  res = strvar[3]
  res = strvar[-6]
  print(res)

3.可以修改么? 不可修改
  # strvar[3] = 123 error

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

   4.4.4 集合 set (集合是用来做交叉并补操作的)

"""自动去重,无序"""

1.定义一个空集合
  # setvar = {} # 这个dict字典类型
  # print(setvar,type(setvar))

  setvar = set()
  print(setvar,type(setvar))

  setvar = {"刘德华","张学友","郭富城","王文"}
  print( setvar , type(setvar) )
  setvar = {"刘德华","张学友","郭富城","王文","王文"}
  print(setvar)

2.集合能够获取值么? 不行
  # res = setvar[0] error

3.集合能够修改值么? 不行
  # setvar[0] = 199 error
  setvar = {1,2,"a",(1,2,3,{"a":1}) }
  print(setvar)

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++





4.5 字典dict

"""
python 3.6版本之前无序
python 3.6版本之后有序(表面上有序,本质上无序)

键值对存储的数据,有序
语法: {键1:值1 , 键2:值2 , 键3:值3 }
"""

1. 定义一个空字典
  dictvar = {}
  print(dictvar, type(dictvar))

  dictvar = {"top":"夏侯惇" , "middle":"亚瑟","bottom":"鲁班七号","jungle":"刘备","support":"蔡文姬"}

2. 通过键获取字典中的值
  res = dictvar["middle"]
  print(res)

3. 修改字典的中的值
  dictvar["bottom"]="孙尚香"
  print(dictvar)

4. 字典中的键和集合中的值有要求,需要可哈希数据
  """
  可哈希数据:(不可变数据) Number(int , float , bool ,complex) str , tuple
  可哈希数据可以作为字典的键和集合的值,剩下的都不可以

  不可哈希数据:(可变数据) list dict set
  字典中的键 推荐使用按照变量命名的字符串去声明最为理想;
  """

  dictvar = {5:1 , 3.78:12 , True:90 , 6+8j:"abc" , "你好":99,(1,2,3):1122}
  print(dictvar)


4.6 自动转换类型
  # ### 自动类型转换 (Number => int bool float complex)
  """
    精度从低->高 排行
    bool -> int -> float -> complex
    如果两个不同的类型进行运算,
    默认低精度向高精度转化
  """

  # True -> int 1 False -> int 0
  # bool + int
  res = True + 14
  print(res)


  # bool + float # 把False 转换成浮点型0.0 在加上float
  res = False + 4.99
  print(res)

  # bool + complex # 把True 转换成复数1+0j 在加上complex
  res = True + 3+4j
  print(res)


  # int + float # 把int 转换成浮点型7.0 再加上float
  res = 7 + 3.66
  print(res)


  # int + complex # 把int 转换成复数 3+0j 再加上complex
  res = 3 + 9-2j
  print(res)

  # float + complex 把float 转化成复数6.91+0j 再加上complex
  res = 6.91 + 11-6j
  print(res)


4.7 Number 类型强制类型转换
  # ### Number 部分的强制类型转换 (int float bool complex)

    var1 = 23
    var2 = 6.78
    var3 = True
    var4 = 3+2j
    var5 = "1234"
    var6 = "abcd121"

  1.强制转换成int
    res = int(var2)
    res = int(var3)
    res = int(False)
    # res = int(var4) error
    res = int(var5)
    # res = int(var6) error
    print(res , type(res))


  2.强制转换成float
    res = float(var1)
    print(res)

    res = float(var3)
    print(res)

    res = float(var5)
    print(res)

  3.强制转换成complex
    res = complex(var1)
    print(res)
    res = complex(var2)
    print(res)
    res = complex(var3)
    print(res)
    res = complex(var5)
    print(res)

  4.强制转换成bool 要么返回True 真的 要么返回False 假的
    res = bool(var4)
    res = bool(var6)
    res = bool(None)
    print(res)

    """
      布尔类型为假得10种情况
      0 0.0 False 0j '' [] () set() {} None
      None 代表空的,什么也没有,一般用在变量初始化的时候
    """
    # 初始化变量的时候用
    ab = None

 

猜你喜欢

转载自www.cnblogs.com/NGU-PX/p/11103456.html