1.计算机文件大小单位

b = bit 位(比特) 位代表 0 1

B = Byte字节

1Byte = 8 bit //一个字节等于8位

1KB = 1024B

1MB = 1024KB

1GB = 1024MB

2.进制转换

进制

  1. 二进制:有两个数字组成,0(低电平)、1(高电平) 例:0b(二进制标志)101001

    • 二进制转10进制 x*2所在幂位
  2. 八进制:0、1、2、3、4、5、6、7 例:0o(八进制标志)15746
    • 八进制转十进制 x*8所在幂位
  3. 十进制:0 1 2 3 4 5 6 7 8 9 例: 2121
    • 十进制转二进制 x/2取余数 从底部排序
    • 十进制转八进制 x/8取余数 从底部排序
    • 十进制转十六进制 x/16取余数 从底部排序
  4. 十六进制: 0 1 2 3 4 5 6 7 8 9 a b c d e f 例:0x(十六进制标志)ff
    • 十六进制转10进制 x*16所在幂位

原码_反码_补码

  1. 原码或补码都是二进制数据

    • 原码:二进制的表现形式
    • 反码:二进制0变1,1变0,【原码】【补码】之间的转换形式(首位符号不去反)
    • 补码:二进制的存储形式
    • 数据用补码形式存储
    • 数据用原码形式显示
    • 原码和补码 可以通过 反码 互相转换,互为取反+1
  2. 提出补码的原因
    • 补码的提出表达一个数的正负
    • 计算机默认只能做加法,实现减法用符号:5+(-30)=5-3
    • 乘法除法,是通过左移右移 << >>来实现
  3. 原码 形式正负府关系:
    • 原码特点:第一位都是1
    • 0000 000 1 表达数字+1
    • 1000 000 1 表达数字-1
  4. 补码 形式的正负关系:
    • 原码特点:高位数都是1
    • 0000 000 1 表达数字+1
    • 1111 111 1 表达数字-1
  5. 运算顺序

补码 -> 原码

禁止转换时需要先把内存存储的补码拿出来变成原码进行转换输出

转换规律:

  1. 正数: 原码=反码=补码
  2. 负数: 原码与反码,互为取反+1
  3. 原码 = 补码取反码+1 给补码求原码
  4. 补码 = 原码取反码+1 给原码求补码

例:5-3=5+(-3)

5

原码:101

反码:101

补码:101

-3

原码:1000...011

反码:1111...100

补码:1111...101

3.数据类型

3.1数据类型分类

  1. Number 数据类型(int float bool complex)
  2. str 字符串类型
  3. list 列表类型(有序,读取,修改)
  4. tuple 元组类型(有序,获取)
  5. set 集合(无序,自动去重)
  6. dict 字典(无序,获取,修改)3.6版本后 键值对存取的数据表面上有序,实际上无序

3.1自动类型转换

当两个不同类型的数据运算是,默认项更高经度转换

数据类型转换的经度从低到高:bool int float complex

3.2强制类型转换

Number部分

  • int: 整型 浮点型 布尔 纯数字字符串
  • float: 整型 浮点型 布尔 纯数字字符串
  • complex: 整型 浮点型 布尔 纯数字字符串(复数)
  • bool: 容器类型 /number 都可以 (0 0.0 0j false "" [] () set() {} None )

容器类型部分

  • str: 容器类型 /number 都可以
  • list: 字符串 列表 元组 集合 字典
  • tuple: 字符串 列表 元组 集合 字典
  • set: 字符串 列表 元组 集合 字典(相同的值智慧保留一位)
  • dict: 使用二级列表,二级元组,二级集合(里边的容器数据只能是元组)(等长的二级容器并且元素数是二个)

3.3 字段和集合的注意点

  1. ####哈希算法
  2. #定义

4 运算符

4.1 算数运算符

%取余 //地板除 **幂运算

  1. + - * /
  2. //: 返回整数
  3. numvar = 5//2 => 2
  4. 如果除数或被除数存在小数,那吗结果上加.0
  5. numvar = 5//2.0 =>2.0
  6. %: 如果除数和被除数符号相同,取余结果加上符号
  7. 如果除数和被除数符号不相同,取余结果与被除数符号相同加上除数
  8. numvar = 81 % 11 => 4
  9. numvar = -81 % 11 => -4 + 11 =7
  10. numvar = 81 % -11 => 4 - 11 = -7
  11. numvar = -81 % -11 => -4
  12. **: 幂运算

4.2 比较运算符

==比较两个值是否相等 !=比较两个值是否不同

  1. > < >= <= == !=

4.3 赋值运算符

  1. = += -= *= /= //= %= **=
  2. a +=1 => a = a + 1

4.3 身份运算符

  1. is is not(监测连个数据在内存中是否为同一个值)
  2. 判断内存地址是够相同
  3. str tuple list set dict
  4. 整数 -5 至正无穷 内存地址相同
  5. 浮点型 非负数
  6. complex 实数+虚数永不相同(只有虚数除外)

4.4 逻辑运算符

  1. and 逻辑与,全真则真 一假则假
  2. or 逻辑或,全假则假 一真则真
  3. not 逻辑非,真变假 假变真
  4. 逻辑短路: 如果出现短路效果后面的代码就不执行了
  5. print() 返回值默认是 None
  6. 优先级:() > not > and > or

4.5 成员运算符

  1. in not in(针对容器型数据)
  2. 判断某个值是否包含在一个容器类型数据中

4.6 位运算符

优先级:(<< 或 >>) > & > ^ > |

  1. & 按位于:(二进制数据按照逻辑于的定义进行比较)
  1. var1 = 19
  2. var2 = 15
  3. print(var1 & var2)
  4. 19的二进制
  5. 000 ... 10011
  6. 15的二进制
  7. 000 ... 01111
  8. 1 => true
  9. 0 => false
  10. 000 ... 10011 = 19
  11. 000 ... 01111 = 15
  12. 000 ... 00011 = 3
  1. | 按位或:(二进制数据按照逻辑或的定义进行比较)
  1. var1 = 19
  2. var2 = 15
  3. print(var1 | var2)
  4. 19的二进制
  5. 000 ... 10011
  6. 15的二进制
  7. 000 ... 01111
  8. 1 => true
  9. 0 => false
  10. 000 ... 10011 = 19
  11. 000 ... 01111 = 15
  12. 000 ... 11111 = 31
  1. ~ 按位非 针对于补码进行操作,按位取反,包括符号位

公式:-(n+1)

  1. var = ~19 = -20
  2. var = ~(-21) = 20
  3. print(var)
  4. 19的按位非
  5. 原码:000...10011
  6. 反码:000...10011
  7. 补码:000...10011
  8. 补码: 000...10011
  9. 按位非:111...01100 求出来的是补码
  10. 给补码求原码:
  11. 补码:111...01100
  12. 反码:100...10011
  13. 原码:100...10100 = -20
  14. 求-21的按位非
  15. 原码:100...10101
  16. 反码:111...01010
  17. 补码: 111...01011
  18. 补码: 111...01011
  19. 按位非:000...10100
  20. 补码:000...10100
  21. 反码: 000...10100
  22. 原码:000...10100 = 20
  1. ^ 按位异或:两者不一样返回真,一样返回假
  1. var1 = 19
  2. var2 = 15
  3. print(var1 | var2)
  4. 19的二进制
  5. 000 ... 10011
  6. 15的二进制
  7. 000 ... 01111
  8. 1 => true
  9. 0 => false
  10. 000 ... 10011 = 19
  11. 000 ... 01111 = 15
  12. 000 ... 11100 = 28
  1. << 左移 用来做乘法操作 x << n = x * 2**n
  1. res = 5 << 2 = 20
  2. 000...101 = 5
  3. 往左移动两位
  4. 000...10100 = 20
  1. 右移 用来做除法操作 x >> n = x / 2**n

  1. res = 8 << 2 = 2
  2. 000...1000 = 8
  3. 往右移动两位
  4. 000...0010 = 2

4.7 总结(优先级)

  1. 1 个别运算符
  2. 优先级最高的** 幂运算
  3. 优先级最低的= 赋值运算
  4. ()括号可以提升运算的优先级
  5. 2 整体 一元运算符 > 二元运算符
  6. 一元运算符:同一时间 只操作一个值 - ~
  7. 二元运算符:同一时间 操作两个值 + - * / ...
  8. 3 同一层级
  9. 逻辑:() > not > and > or
  10. 算数: 乘除 > 加减
  11. 位运算:(<< >>) > & > ^ >|
  12. 4 其他情况
  13. 算数 > > 比较 > 身份 > 成员 > 逻辑 > 赋值

一、python学习-基础语法的更多相关文章

  1. python学习-基础语法

    字符编码 1.python 2.x 默认是ASCII 编码 不支持中文,所以在代码有中文的时候 需要在文件最上一行加上#coding=utf-8.python 3.x则没有该问题. 变量命名规则 1. ...

  2. 第4天 | 12天搞定Python,基础语法(下)

    为了方便你的学习,减轻负重,我特意将基础语法分成上下两部分.希望你喜欢这种方式,如果不喜欢,你可以跟我说,反正我是不会改的,哈哈~~. 如果上部分,你还没看的话,先去看<第4天 | 12天搞定P ...

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

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

  4. Python的基础语法(一)

    0. 前言 最近正在重新整理Python的基础知识,以便更好地学习新知识.这一部分主要是讲述Python基础语法的演示.下面的语法都是基于Python3的语法. 1. 注释 注释:Python的注释方 ...

  5. 12天搞定Python,基础语法(上)

    不知你是否见过建楼房的过程,没有的话,找个时间去瞧一瞧,看一看.看过之后,你就会明白.建楼房,只有打好地基之后,才能在砌墙,建的楼层越高,打的地基就越深. 学编程也一样,要想得心应手的应用,得先打好地 ...

  6. Python的基础语法(二)

    0. 前言 接着上一篇博客的内容,我将继续介绍Python相关的语法.部分篇章可能不只是简单的语法,但是对初学者很有帮助,也建议读懂. 1. 表达式 由数字.符号.括号.变量等组成的组合. 算术表达式 ...

  7. Python 及其基础语法

    重新开始玩 Python,打算就是学完实验楼的"Python3 简明教程",然后就可以玩点小项目,先前学了点 Python2 就不管它啦. 以上. 认识 Python Python ...

  8. Python语言基础-语法特点、保留字与标识符、变量、基本数据类型、运算符、基本输入输出、Python2.X与Python3.X区别

    Python语言基础 1.Python语法特点 注释: 单行注释:# #注释单行注释分为两种情况,例:第一种#用于计算bim数值bim=weight/(height*height)第二种:bim=we ...

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

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

随机推荐

  1. Flutter: debounce 避免高频率事件

    原文 函数 import 'dart:async'; Function debounce(Function fn, [int t = 30]) { Timer _debounce; return () ...

  2. C++算法代码——卡片游戏

    题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?cid=1397&pid=2 题目描述 桌上有一叠牌,从第一张牌(即位于顶面的牌)开始 ...

  3. [计算机图形学]Blinn-Phong光照模型

    目录 一.前言 二.原理 三.代码 一.前言 Blinn-Phong光照模型以Phong模型为基础的,提供比Phong更柔和.更平滑的高光,而且由于Blinn-Phong的光照模型省去了计算反射光线的 ...

  4. list.add(int index, E element)和list.addAll(list1)

    List.add(int index, E element): 在列表的指定位置插入指定元素(可选操作).将当前处于该位置的元素(如果有的话)和所有后续元素向右移动(在其索引中加 1). 参数:ind ...

  5. SpringBoot(三):SpringBoot热部署插件

    SpringBoot热部署插件 在实际开发中,我们修改了某些代码逻辑功能或页面都需要重启应用,这无形中降低了开发效率!热部署是指当我们修改代码后,服务能自动启动加载新修改的内容,这样大大提高了我们开发 ...

  6. Course2.1 Graph Paper Programming

    Overview 通过日常生活中的活动来体验程序算法,目标时能够将现实世界的场景与程序场景关联起来. Objective 抓住将现实世界问题转换为程序的难点: 你认为非常明确的指令在计算机看来可能还是 ...

  7. Python-生成器

    创建生成器 创建生成器需要两部步骤 定义一个包含yield语句的函数 调用第一步创建的函数得到生成器 def test(val,step): 2 print("函数开始执行") 3 ...

  8. HDU(1420)Prepared for New Acmer(JAVA语言)【快速幂模板】

    思路:快速幂裸题. //注意用long,否则会超范围 Problem Description 集训进行了将近2个礼拜,这段时间以恢复性训练为主,我一直在密切关注大家的训练情况,目前为止,对大家的表现相 ...

  9. c/c++ switch case内括号

    如果在case语句中有定义变量,则必须要加{},否则会报错.

  10. 一些DevTools的小技巧-让你不止会console.log()

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文参考:https://www.sitepoint.com/beyond-console-log-leve ...