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

Learn day1 变量/数据类型的更多相关文章

  1. JAVA 变量 数据类型 运算符 知识小结

    ---------------------------------------------------> JAVA 变量 数据类型 运算符 知识小结 <------------------ ...

  2. dos命令-环境变量-数据类型-命名规范

    JAVA第一天笔记--dos命令-环境变量-数据类型-命名规范 1.能够阐述JDK和JRE之间区别 JDK(Java Development Kit)是提供给开发人员使用的JAVA开发工具包(java ...

  3. Go-获取变量数据类型

    package main import ( "fmt" "reflect" //这个包里的TypeOf方法获取变量数据类型 ) func main(){ b : ...

  4. Java1变量数据类型和运算符

    day02_变量数据类型和运算符   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class jh_01_数据类型说明 {     public  ...

  5. Python. Day1. 之初识 变量数据类型

    稍后添加 一  介绍 二  变量

  6. JavaScript 变量,数据类型

    这篇笔记呢,咱记录下变量和数据类型的基础知识,因为两者有联系 所以放在一起记录 1 如何声明变量 变量声明使用var关键字,下面举一些变量声明的例子: <!DOCTYPE html> &l ...

  7. Swift学习--常量.变量.数据类型的使用(一)

    一.Swift中的常量和变量 /* Swift 中定义常量和变量用let/var let 代表定义一个常量 var 代表定义一个变量 Swift 中代表定义常量和变量不需要写数据类型,编译器辉根据我们 ...

  8. 变量-数据类型-对象-如何编写python脚本

    标识符的命名规则变量是标识符的例子. 标识符 是用来标识 某样东西 的名字.在命名标识符的时候,你要遵循这些规则:标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _ ’).标识 ...

  9. Day01_变量,数据类型_程序交互_流程控制

    python执行的两种方式: 1,交互的方式:  优点:可以及时调试程序,调试方法  缺点: 无法永久保存代码 2,保存在文件中执行  优点:可以永久保存代码,在执行的时候调用  缺点:不能即时调试代 ...

随机推荐

  1. 从面向过程到面向对象再到MVC

    /* * * title: 从面向过程到面向对象再到MVC * author: tanghao * date: 2020.9.30 * version: 1.0 * */ 前言 本文档通过一个显示20 ...

  2. mysql-11-DML

    #DML语言 /* 数据操作语言 插入:insert 修改:update 删除:delete */ #一.插入语句 /* 语法: insert into 表名(列名...) values(新值...) ...

  3. 079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象

    079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象 本文知识点:实例化对象 说明:因为时间紧张,本人写博客过程中只是对知 ...

  4. k8s的namespace一直Terminating的完美解决方案

    k8s的namespace一直Terminating的完美解决方案 在k8s集群中进行测试删除namespace是经常的事件,而为了方便操作,一般都是直接对整个名称空间进行删除操作. 相信道友们在进行 ...

  5. 简说Modbus-RTU与Modbus-ASCII

    Modbus在串行总线通信中的协议有RTU和ASCII两种.RTU是Remote Terminal Unit的缩写,意思是远程终端单元.ASCII是American Standard Code for ...

  6. DX12龙书 00 - 环境配置:通过 Visual Studio 2019 运行示例项目

    0x00 安装 Visual Studio 2019 安装 Visual Studio 2019 以及相关组件. 注:安装组件时带的 Windows 10 SDK 可以在 Individual com ...

  7. Python中字符串有哪些常用操作?纯干货超详细

  8. devops-持续集成管理之SonarQube

    1. devops-持续集成管理之SonarQube  1) 代码质量七宗罪 编码规范:是否遵守了编码规范,遵循了最佳实践. 潜在的BUG:可能在最坏情况下出现问题的代码,以及存在安全漏洞的代码. 文 ...

  9. 实验一 HTML基本标签及文本处理

    实验一 HTML基本标签及文本处理 [实验目的] 1.掌握利用因特网进行信息游览.搜索,下载网页.图片.文字和文件: 2.对给定的网站,能指出网站的链接结构.目录结构.页面布局方式: 3.掌握HTML ...

  10. Rust之路(2)——数据类型 上篇

    [未经书面同意,严禁转载] -- 2020-10-13 -- Rust是系统编程语言.什么意思呢?其主要领域是编写贴近操作系统的软件,文件操作.办公工具.网络系统,日常用的各种客户端.浏览器.记事本. ...