目录

注释

  注释的分类

  注释的注意点

变量

  变量的概念

  变量的声明

  变量的命名

  变量的交换

  变量的缓存机制

  常量

进制

  进制的转换

  原码 反码 补码

六大数据类型

  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. 面试官写了个双冒号: : 问我这是什么语法?Java中有这玩意?

    一:简洁 方法引用分为三种,方法引用通过一对双冒号:: 来表示,方法引用是一种函数式接口的另一种书写方式 静态方法引用,通过类名::静态方法名, 如 Integer::parseInt 实例方法引用, ...

  2. Oracle学习(十四)分表分区

    一.前言 大数据量的查询,不仅查询速度非常慢,而且还会导致数据库经常宕机,在尝试添加索引及查询方式修改后,还有没有更有效的解决方案呢? 分库.分表.分区这些概念咱就应该了解一下. 二.分表 假如一个大 ...

  3. xss的编码原理

    把以前的笔记翻出来整理一下 最前方 xss如何选用编码原理,为什么 找到的挺清楚的文章了:https://www.cnblogs.com/p0laris/p/11898322.html浏览器解析有两种 ...

  4. 中秋礼物!开源即时通信GGTalk安卓版全新源码!

    经过连续两个多月的努力(开发.调试.测试.改bug),我们终于赶在中秋国庆之前能把全新的GGTalk Android版本献给大家. 4年之前我们就推出了GGTalk Android的第一个版本,但是功 ...

  5. 嵌入式arm-linux mips-linux 交叉编译GDB,结合vscode图形化调试使用,coredump定位段错误

    第一部分:使用GDB GDB源码下载路径:http://ftp.gnu.org/gnu/gdb/ 遇到的主要难点: 选择合适的GDB源码版本 我的mips-linux交叉编译器不支持C++11特性,所 ...

  6. 【Python】数据结构

    列表的更多特性 list.append(x) 在列表的末尾添加一个元素.相当于 a[len(a):] = [x] . list.extend(iterable) 使用可迭代对象中的所有元素来扩展列表. ...

  7. plt.imshow()显示图片色差问题

    转载:https://www.cnblogs.com/darkknightzh/p/6039667.html 由于系统缺少某些库,导致cv2.imshow()无法使用,于是使用matplotlib.p ...

  8. C++ | 继承(基类,父类,超类),(派生类,子类)

    转载:https://blog.csdn.net/Sherlock_Homles/article/details/82927515 文章参考:https://blog.csdn.net/war1111 ...

  9. VS2015建立一个完整的c++工程:头文件.h 源文件.cpp,自动生成类

    https://blog.csdn.net/weixin_40539125/article/details/81430801 打开VS2015 ,新建VS win32工程,前面步骤很简单,不再阐述 下 ...

  10. 【题解】CF375D Tree and Queries

    Link \(\text{Solution:}\) 讲实话这题有点烦,不知道为啥改了下\(\text{dfs}\)就过了--原版本\(dfs\)好像没啥错啊-- 其实对于子树问题,我们求出原来树的\( ...