一、数据类型

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

 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. Socket网络编程——C++实现

    本代码可直接使用 根据TCP/IP三次握手,实验时可使用两台电脑,或者打开两个终端模拟通信. 服务器端: #include <iostream> #include <windows. ...

  2. 洛谷p2827蚯蚓题解

    题目 算法标签里的算法什么的都不会啊 什么二叉堆?? qbxt出去学习的时候讲的,一段时间之前做的,现在才写到博客上的 维护3个队列,队列1表示最开始的蚯蚓,队列2表示每一次被切的蚯蚓被分开的较长的那 ...

  3. PATA1028 List Sorting

    Excel can sort records according to any column. Now you are supposed to imitate this function. Input ...

  4. PATA1031 Hello World for U

    参考代码: #include <cstdio> #include <cstring> int main() { char str[100], ans[40][40]; scan ...

  5. C# 动态加载(转)

    原文链接地址:http://blog.csdn.net/lanruoshui/article/details/5090710 原理如下: 1.利用反射进行动态加载和调用. Assembly assem ...

  6. java web开发入门四(spring)基于intellig idea

    spring 1.spring简介 Spring框架,可以解决对象创建以及对象之间依赖关系的一种框架. 且可以和其他框架一起使用:Spring与Struts,  Spring与hibernate (起 ...

  7. python 项目实战之Django 邮件发送

    发送邮件¶ 虽然 Python 借助 smtplib 模块简化了发送邮件的流程,但是 Django 在其基础上提供了更简化的支持.这些封装意在加快邮件发送,方便在开发时测试发送邮件,在不支持 SMTP ...

  8. cad.net 块裁剪边界反向修剪

    Querying for XCLIP information inside AutoCAD using .NET  这里下面观众讨论了 How do I determine if an x-clip ...

  9. flume到flume消息传递

    环境:两台虚拟机( 每台都有flume) 第一台slave作为消息的产生者 第二台master作为消息的接收者    IP(192.168.83.133) 原理:通过监听slave中文件的变化,获取变 ...

  10. ElasticSearch 线程池类型分析之 ResizableBlockingQueue

    ElasticSearch 线程池类型分析之 ResizableBlockingQueue 在上一篇文章 ElasticSearch 线程池类型分析之 ExecutorScalingQueue的末尾, ...