一、数据类型

  • 对象的三大特征:值、身份、类型;

 1)数字 Number

  • 整型、浮点型
  1. 只有 int 和 float 两种类型;
  2. type(2/2):float 类型;2/2 == 1.0;
  3. type(2//2):int 类型;2//2 == 1;
  4. //:整除;
  • 进制
  1. 2/8/16 进制数表示,前缀:ob、0o、0x;
  2. 十进制数没有前缀;
  3. 十六进制,A、B、C、D、E、F:分别表示10,11,12,13,14,15;
  4. bin():将任意进制的数转换成二进制数;
  5. int():将任意进制的数转换成十进制数;
  6. oct():将任意进制的数转换成八进制数;
  7. hex():将任意进制的数转换成十六进制数;
  • 布尔类型
  1. bool():将其它数据类型转换成布尔类型;
  2. 所有非零的数值,转换成布尔类型都是 True;只有空数据、0 和 None( 0、‘’、[]、{}、()、None) 转换成布尔类型是 False;
  3. 布尔类型可以直接参与运算:a = 1 + True;int(True) == 1;
  • 复数 compler:数字后缀 j (如 10j);

 2)序列

  • 字符串 str
  • 单引号与双引号
  1. 相同的引号表示字符串的时候必须成对出现;如果引号作为字符出现,不能与表示字符串的引号相同,如:'let's go';可用转义字符代替:'let\'s go';
  2. 但可以 'let"s go'、"let's go":
  • 三引号
  1. 表示多行字符串;
  2. """hello world\nhello world\nhello world"""
    'hello world\nhello world\nhello world' print("""hello world\nhello world\nhello world""")
    hello world
    hello world
    hello world

    # 关于专业字符 “\n” 的识别;

  3. 单引号字符串输入时也可以换行,在换行处加 “\”;
  • 转义字符
  1. 特殊的字符;
  2. 一般表示无法“看见的字符”、与 python 语法有冲突的字符;
  3. \n:换行; \r:回车;两者不同;
  4. 将转义字符变为非转义字符,一般将 “\” 转义为 “\\”;
  • 原始字符串
  1. 在普通字符串前加 “r”,普通字符串中的所有转义字符都被当做两个普通字符看待;
  • 字符串运算
  1. 字符串 + 字符串:'hello' +  'world' ——'hello world';
  2. 字符串 * 数字:'hello' * 3 —— 'hello hello hello';
  3. 字符串[字符序号]:切去字符串中的某一字符:'hello'[0] == 'h'、'hello'[-1] == 'o';
  4. 'hello'[o:4] == 'hell'、'hello'[1:5] == 'ello'、'hello'[1:10] == 'ello'、'hello'[1:] == 'ello'、'hello'[:-1] == 'hell';
  5. 不能 字符串 * 字符串;
  • 列表 list
  1. 列表中的每一个元素都可以是任意的数据:['hello', 1, [1,2], True, (1,2), {0}];
  2. 列表中元素的访问方式与字符串操作一样;
  3. 列表运算与字符串操作一样,但没有减法操作;
  4. 有序的,元素内容可更改;
  5. type([1]) —— list;
  • 元组 tuple
  1. 元组中的元素是有序的:(1, 2, 3) != (3, 2, 1);
  2. 当元组中只有一个元素时,类型是元素本身:type((1)) —— int、type(('hello')) —— str;因为数据的运算优先级高于类型的优先级,如:(1 +1 ) * 2 == 4;但是 type(()) —— tuple,空的元组;
  3. 定义只有一个元素的元组:(1, );
  4. 有序的,若元素数据是值类型,不可修改,若元素类型是引用类型,可以修改;
    a = (1, 2, 3, [1, 2, 3])
    a[3][0] = ''
    print(a) # (1, 2, 3, ['1', 2, 3])
  • 判断序列中是否含有某个元素
  1. in:某个元素在序列中;
  2. not in:某个元素不在序列中;
  3. 3 in [1, 2, 3, 4, 5] —— True;
  4. 6 in [1, 2, 3, 4, 5] —— False;
  5. 3 not in [1, 2, 3, 4, 5] —— False;
  6. 6 not in [1, 2, 3, 4, 5] —— True;
  • len():返回序列元素个数;
  • max():返回最大元素;
  • min():返回最小元素;
  • ord():将字符转换为十进制数;ord('d') —— 100;
  • 空格符 == 32;

 3)集合 set

  • 集合是无序的,不能引索和切片操作;
  • 一般访问集合中的元素就是通过判断该元素是否存在该集合中来实现;
  • 集合中的元素是不重复的,没有相同的元素;
  1. 差集:{1, 2, 3, 4, 5} - {3, 4} == {1, 2, 5};
  2. 交集:{1, 2, 3, 4, 5} & {3, 4} == {3, 4};
  3. 并集:{1, 2, 3, 4, 5} | {3, 4, 5, 6, 7} == {1, 2, 3, 4, 5, 6, 7};
  4. type({}) —— dict;
  5. 定义空集合:set();type(set()) —— set;

 4)字典 dict

  • 格式:{key1:value1, key2:value2},通过 key 找到 value 数据;
  • 字典是无序的,不能引索和切片;
  • 字典中不能有相同的 key;
  • 通过 key 访问 value 数据:dict[key1, key2];
  • key 的类型必须是不可变的,如 Number、str、set,但不能是 list;
  • value 的内容可以是任意数据;
  • {}:表示空的字典;

 5)总结

二、变量与运算符

 1)变量名

  • 一般用很简单简洁的英文单词表示变量:three_leaf_grass;
  1. 组成变量名的字符只能是 字母、数字、下划线,且首字符不能是数字;
  2. 变量名不能与系统保留关键字一样;
  3. 组成变量名的字符区分大小写;

 2)值类型、引用类型

  • int、str、tuple:值类型,是不可变的;(如:'hello'[0] = 'w',是不可操作的)
  • list、set、dict:引用类型,可以改变;
  • a = 1
    b = a
    a = 3
    print(b) # a = [1, 2, 3]
    b = a
    a[0] = ''
    print(b) # ['1', 2, 3]
  • id():返回数据的内存地址;
  • 当 a = 3 时,内存中又多出了一个数据 3 ;而不是将原来的数据 1 更改为 3 ;

 3)运算符

  • 算术运算符、赋值运算符、比较(关系)运算符、逻辑运算符、成员运算符(in、not in)、身份运算符(is、is not)、位运算符;
  1. 赋值运算符:先运算,后赋值(c += 1,等效于 c = c + 1);
  2. str、list、tuple 进行比较运算时,以其中元素逐个进行比较,直到出现结果为止;
    'abcd' > 'adef'
    # False
  3. 逻辑运算只操作布尔类型,返回的也是布尔类型;
  4. 'a' and 'b' —— ‘b’、1 and 2 —— 2、1 or 2 —— 1、[] or [1, 2] —— [1, 2];
  5. 1 and 2,返回 2:跟计算机的解析顺序有关,当计算机读取到 2 时判断出了结果,就直接返回当前解析出的数据;
  6. 1 or 2,返回 1:当计算机解析到第一个数据 1 时就已经判断出结果,就直接返回当前解析出的数据 1;
  7. 非布尔类型的数据进行逻辑运算时,系统会对数据进行转换:非空非数字0为 True、0和空数据为 False;
  8. not '0' —— False;
  9. 字典的成员运算是针对 key 值确定的:
    a = {'c':1}
    b = 1
    b in a # False b = 'c'
    b in a # True
  10. is 和 == 的区别:== 比较的是两个数据的值是否相等,is 比较的是两个数据的身份是否相等(或者理解为:is 是比较两个变量的内存地址是否相等);
    a = 1
    b = 1.0
    a == b # True
    a is b # False
    a = {1, 2, 3}
    b = {3, 2, 1}
    a == b # True
    a is b # False --此处的 a 和 b 变量不是指向同一个内存地址
  11. 类型判断:isinstance、==;(一般不用 == 进行判断)
    a = 'abc'
    type(a) == str # True
    isinstance(a, str) # True
    isinstance(a,(int, float, str)) # True--只要 a 是 (int, float, str) 中的一种类型,返回True;
  • 位运算都是把数据当做二进制数进行运算:
  1. &:按位与;对应为都为 1 时返回 1,否则返回 0;

    a = 2
    b = 3
    a & b #

  • 对象的三大特征(value、is、type)进行判断,分别用:==、is、isinstance;

三、表达式

  • 运算符(operator)和操作数(operand)所构成的序列;

四、流程控制语句

  • 条件控制(if  else)、循环控制(for)、分支(while);
  • input() 函数得到的是 str 类型;
  • while:多用于递归;
  • for:多用于遍历;
  • print(x),默认换行打印;print(x, end=''),不换行打印;
  • break:强行跳出当前(内部循环,不包括外部循环)所有循环;
  • continue:跳出本次条件的循环,其它条件正常进行;
  • a = list(range(0, 10))
    b = a[0:len(a):2]
    print(b) # [0, 2, 4, 6, 8]

五、包、模块、类

  • 导入
  • import 只能导入模块,不能导入变量;

Python:基础复习的更多相关文章

  1. python基础复习

    复习-基础 一.review-base 其他语言吗和python的对比 c vs Python c语言是python的底层实现,解释器就是由python编写的. c语言开发的程序执行效率高,开发现率低 ...

  2. Python基础复习面向对象篇

    目录 类与对象的概念 实例方法 实例变量 初始化方法 析构方法 常用内置方法 继承 类方法与静态方法 动态扩展类与实例 @property装饰器 概述 面向对象是当前流行的程序设计方法,其以人类习惯的 ...

  3. Python基础复习_Unit one

    一. 编译&&安装Python2.7     1.安装python第三方模块管理工具 easy_install --->> easy_install-2.7 pip Ipy ...

  4. python基础复习-1-2 数据类型-str、list、tuple、dict

    数据类型 数字 引号: 123 数值 '123' 字符串 整数:ini long 范围:(-2**31 - 2**31) num = 123 长整型 long (L) num = 123L 浮点型:f ...

  5. python基础复习-1-1文件类型、变量、运算符、表达式

    文件类型: .py python源文件 由python解释器执行 .pyc python源码编译后生成的文件(字节代码) 编译方法: 源码文件中使用py_compile模块 import py_com ...

  6. python 基础复习

    1.简述cpu.内存.硬盘的作用 cpu (1)cpu:处理逻辑运算.算术运算 (2)cpu:接受指令传给电脑硬件,让其运行 内存: (1)内存:从硬盘中读取数据,供其cpu调取指令运行,短暂的存贮数 ...

  7. Python基础复习函数篇

    目录 1.猴子补丁2. global和nonlocal关键字3.迭代器和生成器4.递归函数5.高阶函数和lamdba函数6.闭包7.装饰器 1.   猴子补丁 猴子补丁主要用于在不修改已有代码情况下修 ...

  8. python 基础部分重点复习整理--从意识那天开始进阶--已结

    pythonic 风格编码 入门python好博客 进阶大纲 有趣的灵魂 老齐的教程 老齐还整理了很多精华 听说 fluent python + pro python 这两本书还不错! 元组三种遍历, ...

  9. python基础班-淘宝-目录.txt

    卷 TOSHIBA EXT 的文件夹 PATH 列表卷序列号为 AE86-8E8DF:.│ python基础班-淘宝-目录.txt│ ├─1-1 Linux基础│ ├─01-课程简介│ │ 01-课程 ...

  10. 开发技术--浅谈python基础知识

    开发|浅谈python基础知识 最近复习一些基础内容,故将Python的基础进行了总结.注意:这篇文章只列出来我觉得重点,并且需要记忆的知识. 前言 目前所有的文章思想格式都是:知识+情感. 知识:对 ...

随机推荐

  1. 编写一个方法去掉数组里面重复的内容 var arr=['abc','abcd','sss','2','d','t','2','ss','f','22','d'];

    function noRepeat(arr) { var arr1 = []; for (var i = 0; i < arr.length; i++) { var item = arr[i]; ...

  2. React_01_ECMAScript6

    ECMAScript6 1.ES6简介 1.1.什么是ES6 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了.它的目 ...

  3. ECMAScript6-1

    1.let与const ES205(ES6)新增两个重要的JavaScript关键字:let和const let声明的变量只在let命令所在的代码块内有效,const声明一个只读的常量,一旦声明,其值 ...

  4. Java 解压 zip 文件

    代码如下 package test_java; import java.io.File; import java.io.FileOutputStream; import java.io.IOExcep ...

  5. 51Nod1353 树

    51Nod1353 树 传送门 思路 我们定义\(dp[i][j]\)代表第i个点联通块大小为j的方案总数,也可以把它理解为等待分配(不确定归属)的联通块大小为j的方案总数. 那么每次转移我们就使用一 ...

  6. 第8课 常量表达式(constexpr)

    一. const 和constexpr的区别 (一)修饰变量时,const为“运行期常量”,即运行期数据是只读的.而constexpr为“编译期”常量,这是const无法保证的.两者都是对象和函数接口 ...

  7. 【原】无脑操作:Markdown可以这样玩

    一.背景: Markdown是一种纯文本格式的标记语言.通过简单的标记语法,可以使普通文本内容具有一定的格式.因为语法简单明了.功能又比纯文本强大,所以很适合作为开发人员的书写工具.Markdown的 ...

  8. 记一次node节点异常排查

    一.背景 公司进行kubernetes服务重启演练,集群重启后所有服务正常,仅node2节点处于notready状态 二.排查过程 查看对应节点的详细信息,发现kubelet一直处于starting状 ...

  9. docker 学习操作记录 4

    记录3 [BEGIN] // :: Connecting to ... Connection established. To escape to local shell, press Ctrl+Alt ...

  10. 使用 Jest 和 Supertest 进行接口端点测试

    如何创建测试是一件困难的事.网络上有许多关于测试的文章,却从来不告诉你他们是如何开始创建测试的. 所以,今天我将分享我在实际工作中是如何从头开始创建测试的.希望能够对你提供一些灵感. 目录: 使用 E ...