目录

注释

  注释的分类

  注释的注意点

变量

  变量的概念

  变量的声明

  变量的命名

  变量的交换

  变量的缓存机制

  常量

进制

  进制的转换

  原码 反码 补码

六大数据类型

  Number 的四大类

  字符串 str

  列表 list

  元祖 tuple

    集合 set

    字典 dict

    占位符

类型的转换

  Number的强制转换( int flost bool coplex )

    Number的自动转换( int flost bool coplex )

  容器类型数据的强制转换 ( str list tuple set dict )

    二级容器与等长的二级容器( list tuple set dict )

注释

注释: 就是对代码的解释,说明,方便后期对代码的修改与阅读

注释的分类

  • 单行注释: 用一个单引号或者一个双引号包括起来
  • 多行注释: 用三个单引号或者三个双引号包括起来

注释的注意点

  1. 多行注释可以进行换行
  2. 多行注释内外的引号不可以相同
  3. 利用注释具有一定的排错性

变量

变量: 可以改变的量, 实际上是内存中开辟的一块空间

变量的概念

liuun = "学峰'

变量的声明

#1
a = 100
b = 200
print(a)
print(b) #2
a,b = 10,20
print(a,b)

#3
a = b = 400
print(a,b)

变量的命名规则

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

变量的交换

通用写法:

a = 13
b = 14
tmp = a # tmp = 13
a = b # a = 14
b = tmp # b = 13
print( a , b ) # 14 13```

Python特有写法:

a = 12
吧 = 13
a,b = b,a
print(a,b)

变量的缓存机制

只有两个值相同,就只开辟一个空间

    1. Number 部分
      对于整型而言,-5~正无穷范围内的相同值 id一致
      对于浮点数而言,非负数范围内的相同值 id一致
      布尔值而言,值相同情况下,id一致
      复数在 实数+虚数 这样的结构中永不相同(只有虚数的情况例外)
    2. 容器类型部分
      字符串 和 空元组 相同的情况下,地址相同
      列表,元组,字典,集合无论什么情况 id标识都不同 [空元组例外]

常量

不变量( 约定俗称,大写格式,这个值不能改变)

进制

b = bit  位(比特)
B = Byte 字节
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
1EB = 1024PB

进制的转换

二进制:由2个数字组成,有0 和 1
0b 代表2进制

八进制:由8个数字组成,有0,1,2,3,4,5,6,7
0o 代表8进制

十进制:有10个数字组成,有0,1,2,3,4,5,6,7,8,9

十六进制:有16个数字组成,有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e
0f 代表16进制

原码 反码 补码

原码:二进制表现的形式

反码:二进制码0 变1 ,1变 0 叫做反码,[原码][补码]之间的转换形式.(首位符号位不取反)

补码:二进制的储存形式

提出补码的原因

补码的提出用于表达一个数的正负( 为了实现计算机的减法运算操作)

计算机默认只能做加法, 实现减法用负号: 5+(-3) => 5-3

乘法除法:是通过左移和右移 << >> 来实现

原码形式的正负关系

原码的特点:第一位是1

00000000  1  表达数字正1

10000000  1 表达数字负

补码形式的正负关系

补码的特点: 高位都是1

00000000 1 表达数为正1

11111111  1 表达数为负1

运算顺序

补码 > 原码 > 最后人们可以看到的数

转换规律

如果是一个正数: 原码 = 反码 = 补码
如果是一个负数: 原码 与 反码 之间 , 互为取反加1
原码 = 补码取反加1 给补码求原码
补码 = 原码取反加1 给原码求补码

转码

5
原码: 0000 ... 101
反码: 0000 ... 101
补码: 0000 ... 101 -3 (原码中,左边第一个高位,标记的是符号)
原码: 1000 ... 011
反码: 1111 ... 100
补码: 1111 ... 10 在底层用补码做运算
0000 ... 101 => 5
1111 ... 101 => -3
0000 ... 010 => 2

总结:

高位0 代表正数, 高位1 代表负数 (原码)

计算机在运算时,用补码在运算

  如果是正数: 补码 = 反码 = 原码

  如果是负数: 原码 = 补码取反 +1 (原码补码, 互为取反+1)

源码是用来显示的   补码是用来存储或者运算的

六大数据类型

1.Number
2.字符串类型 str
3.列表类型 list
4. 元祖
5. 字典
6. 集合
(2.3.4.5.6.)属于容器类型数据

Number 的四大类

int 整型

intvar = 123
print(intvar)

float 浮点型

floatvar = 4.88
print(floatvar)

bool 布尔型

boolvar = True
boolvar = False
print( boolvar )
print( type(boolvar) )

coplex 复数型

complex  实数 + 虚数
3+4j
3: 实数
4j: 虚数

字符串 str

字符串的特点:

可获取, 可修改,有序.

单引号引起来
strvar = '今天是开课的第二天的是字符串'

双引号引起来的字符串
strvar = “文哥是这个世界上,\n我认为最帅的男人”

三引号引起来的字符串 ‘’’ “”"(支持跨行的效果)
strvar = ‘’’
我感觉我走错了房间,
貌似python31的同学是’祖安’服务器请来的"救兵"
‘’’

字符串原型化输出

#元字符串 r"字符串" 不转义字符,原型化输出字符串
strvar = r"E:\nython31\tay2"
print(strvar) #格式次付出
#语法 : “字符串” % (值1,值2,值3)
%d 整型占位符
%f 浮点型占位符
%s 字符串占位符

列表 list

列表的特点:

可获取, 可修改,有序

#定义一个空列表
listvar=[] #定义一个普通的列表
listvar = [100,19.123,True,1+12j,"马生平"] #获取列表当中的值
listvar= [100,19.123,True,1+12j,"马生平"]
res = listvar[2]
res = listvar[-3]
print(res) #修改列表当中的元素
listvar[-3] = False
print(listvar)

元祖 tuple

元祖的特点:

可获取,不可修改, 有序  (逗号是区别元祖的标识符 )

# 定义一个空元祖
tuplevar = ()
print(tuplevar , type(tuplevar)) #获取元祖中的元素
res = tuplevar[1]
res = tuplevar[-1]
print(res)

集合 set

集合的特点:

无序  自动去重

# 定义一个空jihe
setvar = {}
setvar = set()
print(setvar , type(setvar)) # 定义一个集合
setvar = {"金城武","王俊凯","喻文波","王文"}
print(setvar , type(setvar)) # 自动去重
setvar = {"金城武","王俊凯","喻文波","王文","王文","王文","王文"}
print(setvar)

字典 dict

字典的特点:

键值对 储存的数据,表面上有序,实际上无序

# 定义一个空字典
dictvar = {}
print(dictvar , type(dictvar)) #定义一个字段
dictvar = {"智多星":"吴用","花和尚":"鲁智深","浪里白条":"张顺"} # 获取字典中的值
dictvar = {"智多星":"吴用","花和尚":"鲁智深","浪里白条":"张顺"}
res = dictvar["智多星"]
print(res) # 修改字典中的值
dictvar = {"智多星":"吴用","花和尚":"鲁智深","浪里白条":"张顺"}
dictvar["智多星"] = "吴用"
print(dictvar)

字典的键和集合的值数据类型要求是( 可哈希的,不可变的)

不可变数据:

Number str tuple

可变数据:

list  set dict

关于哈希:

但凡提到哈希算法( hash) ,都是都是典型的无序特征.

目的为了更加均匀的吧数据分配到内存里,底层用的算法类似于取模,

Python3.6 版本以后,对字典做了优化,存储数据的时候用好像算法

但是在拿出数据的时候,重新按照定义字典时的顺序进行重新排序

所有看起来有序,实际上无序.

占位符

%d 整型占位符
strvar = “王金刚学习容易走神,买了%d个风油精,提神醒脑” % (5)
print(strvar)

%2d 占两位 原字符串默认居右
strvar = “白星今天%d岁” % (3)
print(strvar)
strvar = “白星今天%2d岁” % (3)
print(strvar)

%-2d 占两位 原字符串默认居左
strvar = “白星今天%-2d岁” % (30000)
print(strvar)

%f 浮点型占位符
strvar = “马春陪一个月开了%f工资” % (9.9)
print(strvar)

%.2f 小数点保留2位
strvar = “马春陪一个月开了%.2f工资” % (9.9)
print(strvar)

%f 存在四舍五入的情况
strvar = “马春陪一个月开了%.1f工资” % (9.876542342)
print(strvar)

%s 字符串占位符
strvar = “%s” % (“python31的同学们都有祖安人民的特质”)
print(strvar)

类型的转换

Number的强制转换( int flost bool coplex )

var1 = 13
var2 = 13.789
var3 = True
var4 = 5-7j
var5 = “9988”
var6 = “abcd4567” # int强转换成整型
res = int(var2) # 13
res = int(var3) # False => 0 True => 1
res = int(var4) error
res = int(var5) # 9988
res = int(var6) error
print(res , type(res)) # float 强转换成浮点型
res = float(var1) # 13.0
res = float(var3) # True => 1.0 False => 0.0
res = float(var5) # 9988.0
print(res , type(res)) # complex 强制转换成复数
res = complex(var1) # 13 + 0j
res = complex(var2) # 13.789 + 0j
res = complex(var3) # False => 0j True => 1+0j
res = complex(var5) # 9988 + 0j
#res = complex(var6) error
print(res , type(res)) # bool 强制转换成布尔值
res = bool(None)
print(res , type(res))

bool为False的十种情况

0 , 0.0 , False , 0j , ‘’,[],(),set(),{},None

默认创建一个该数据类型的值

int()  float()  bool()  complex()

res = int()
res = float()
res = bool()
res = complex()
print(res)

Number的自动转换( int flost bool coplex )

精度从低到高进行转换:
bool -> int -> float -> complex
bool + int
res = True + 100 # 1 + 100
print(res)
bool + float
res = True + 4.15 # 1.0 + 4.15
print(res
bool + complex
res = True + 3-6j # 1+0j + 3 - 6j
print(res)
int + float
res = 5 + 3.48 # 5.0 + 3.48
print(res)
int + complex
res = 10 + 4-3j # 10 + 0j + 4 - 3j
print(res)
float + complex
res = 5.68 + 5-100j # 5.68+0j + 5 - 100j
print(res)

容器类型数据的强制转换 ( str list tuple set dict )

strvar = ‘雷霆嘎巴,无情哈拉少,ZBCC’
listvar = [“曹晨光”,“温子月”,“吴洪昌”]
tuplevar = (“高学峰”,“葛龙”,“孙京华”,“白星”)
setvar = {“李志辉”,“马春陪”,“刘鑫炜”}
dictvar = {“lzh”:“气质非凡”,“mcp”:“高大威猛”,“lxw”:“气宇轩昂”} str (容器 / Number 都可以转换)
强转成字符串,无非就是在原有的数据的基础上两边套上引号

list : 强制转换成列表
如果是字符串,会把每一个字符单独的作为一个元素放到列表中
如果是字典,只保留键,形成一套新的列表
如果是其他的容器,只是单纯的在原有数据的基础上换上[]

tuple : 强制转换成元组
如果是字符串,会把每一个字符单独的作为一个元素放到元组中
如果是字典,只保留键,形成一套新的元组
如果是其他的容器,只是单纯的在原有数据的基础上换上()

set : 强制转换成集合(自动去重)
如果是字符串,会把每一个字符单独的作为一个元素放到集合中(无序,自动去重)
如果是字典,只保留键,形成一套新的集合
如果是其他的容器,只是单纯的在原有数据的基础上换上{}

repr 可以原型化输出字符串,不转义字符(显示出引号)
print( repr(res) )

二级容器与等长的二级容器( list tuple set dict )

二级容器

二级列表
lst = [1,2,[3,4]]
二级元组
tup = (5,6,7,(8,9))
二级集合
setvar = {10,11,(12,13)}
二级字典
dic ={“a”:1,“b”:{“c”:3,“d”:4}}

等长的二级容器

里面的元素都是容器,并且容器里面的元素个数都相同
lst = [(1,2,3) , [4,5,6]]
lst = [(1,2) , [4,5]]

二级容器强转字典

强转成字典时 , 必须是等长的二级容器,里面的元素个数是2个
(1)外层是列表或者元组或者集合,里面的容器是元组或者列表(推荐)

lst = [("a",1),["b",2]]
tup = (("c",3),["d",4],)
setvar = {(1,2),(3,4),("f3",3),("f4",4)}
res = dict(lst) # {'a': 1, 'b': 2}
res = dict(tup) # {'c': 3, 'd': 4}
res = dict(setvar) # {1: 2, 'f3': 3, 3: 4, 'f4': 4}

(2)如果里面是集合,语法上是允许的但是所有局限性
lst = [{“a”,333},{“zz”,5}] # 因为集合无序,不符合定义的本意,不推荐使用
print(dict(lst))
(3)如果是字符串,语法上也是可以的但是有局限性
lst = [(“a”,1),“b2”] # 字符串长度只能2个
lst = [(“a”,1),“b23”] error
print( dict(lst) )

变量的缓存机制

只有两个值相同,就只开辟一个空间

    1. Number 部分
      对于整型而言,-5~正无穷范围内的相同值 id一致
      对于浮点数而言,非负数范围内的相同值 id一致
      布尔值而言,值相同情况下,id一致
      复数在 实数+虚数 这样的结构中永不相同(只有虚数的情况例外)
    2. 容器类型部分
      字符串 和 空元组 相同的情况下,地址相同
      列表,元组,字典,集合无论什么情况 id标识都不同 [空元组例外]

Python ( 学习 基础篇第一部 )的更多相关文章

  1. Python ( 学习基础篇 第二部 )

    目录 运算符 算数运算符 比较运算符 赋值运算符 位运算符 逻辑运算符 成员运算符 身份运算符 Python 中运算符的优先级 运算符总结基础语法 判断类型 isinstence 代码块 流程控制 w ...

  2. Python学习—基础篇之文件操作

    文件操作 文件操作也是编程中需要熟练掌握的技能,尤其是在后台接口编写和数据分析过程中,对各种类型的文件进行操作,获取文件信息或者对信息进行存储是十分重要的.本篇博客中将主要对常见的文本格式文件和Exc ...

  3. Python学习——基础篇

    1.python的安装     python下载地址:https://www.python.org/downloads/     安装完成后,运行cmd.exe,输入python     如果出现“p ...

  4. Python学习—基础篇之基本数据类型(二)

    Python中重要的数据结构 1.列表 2.元组 3.字典 4.集合 列表 1.创建列表 # 方式一 name = [] print(type(name)) # 执行结果 >>> & ...

  5. Python学习—基础篇之基本数据类型(一)

    数据类型 在python中,能够直接处理的基本数据类型主要有数字类型.字符串类型.字节类型.布尔类型.列表.元组.字典.集合等. 一.数字类型 1.1 数字类型的创建 # 数字类型 a = 10 b ...

  6. Python学习—基础篇之常用模块

    常用模块 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要 ...

  7. Python学习---基础篇

    ###打开文件并打印: #!/usr/bin/python3 f = open('F://myproject/test.txt', encoding='utf-8',mode='r') content ...

  8. Docker虚拟化实战学习——基础篇(转)

    Docker虚拟化实战学习——基础篇 2018年05月26日 02:17:24 北纬34度停留 阅读数:773更多 个人分类: Docker   Docker虚拟化实战和企业案例演练 深入剖析虚拟化技 ...

  9. Python学习基础笔记(全)

    换博客了,还是csdn好一些. Python学习基础笔记 1.Python学习-linux下Python3的安装 2.Python学习-数据类型.运算符.条件语句 3.Python学习-循环语句 4. ...

随机推荐

  1. Anaconda使用及管理

    接下来均是以命令行模式进行介绍,Windows用户请打开"Anaconda Prompt":macOS和Linux用户请打开"Terminal"("终 ...

  2. 5.CyclicBarrier-栅栏

  3. VMware-workstation-full-安装教程

    网盘提取 图1中的包 链接:https://pan.baidu.com/s/11BnY2_v9cDfP1SXPoqOUWQ 提取码:jhfa (1) 点击Vware-workstation-full ...

  4. Java多线程--创建和使用线程池

    使用线程池的目的 线程是稀缺资源,不能频繁的创建 解耦作用:线程的创建与执行完全分开,方便维护 将其放入一个池子中,可以给其他任务进行复用 优点 降低资源消耗,通过重复利用已创建的线程来降低线程创建和 ...

  5. Linux里面的压缩和解压类指令

    gzip/gunzip 指令 ( .gz  不能压缩目录) gzip 用于压缩文件, gunzip 用于解压的 . gzip gzip命令用来压缩文件.gzip是个使用广泛的压缩程序,文件经它压缩过后 ...

  6. Spring及tomcat初始化日志

    Tomcat StandardContext初始化过程 //org.apache.catalina.core.StandardContext#startInternal // 子容器启动 for (C ...

  7. python学习笔记1之-python简介及其环境安装

    python学习笔记之-python简介及其环境安装 最近几年python之火不用多说,最近开始利用时间自学python,在学习的过程中,按照自己的思路和理解记录下学习的过程,并分享出来,如果正好你也 ...

  8. Android控件Gridivew列数行间距设定

    常用属性 列数 android:numColumns="3" 行间距 android:verticalSpacing="8dp"

  9. Python-如何在一个for循环中迭代多个可迭代对象?

    案例: 某班学生期末考试成绩,语文.数学.英语分别存储在3个列表中,同时迭代三个列表.,计算每个学生的总分(并行) 某年级有4个班,某次英语成绩分别记录在4个列表中,依次迭代每个列表,统计全年级高于9 ...

  10. Django-当前菜单激活状态-模版 request | slice

    如何满足这个需求? 1. view中传递过来一个当前页面的参数标识,通过模版语言进行判断 {% if current_page == 'index' %}active{% endif %} # 每一个 ...