Python 3 学习指南
- Python 3 学习指南
- 语法部分
- 基础语法
- 基本数据类型
- 数字类型
- 类型查看
- 删除操作
- 数值运算
- String(字符串)
- Index 索引与操作
- 格式化输出
- 循环遍历
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
- 输出操作
- 类型转换
- 数字类型
- 运算符
- 基本运算符
- 逻辑运算符
- 成员运算符
- 身份运算符
- 二、数据类型与函数
- Number(数字)
- 数学函数
- 随机数函数
- String(字符串)
- 内置字符串函数
- 字符串的格式化函数
- List(列表)
- 脚本型操作
- 内置列表函数
- Tuple(元组)
- Set(集合)
- 集合内置函数
- Dictionary(字典)
- 内置字典函数
- 字典注意事项
- Number(数字)
- 三、控制语句
- 条件控制
- if语句
- 循环控制
- while循环
- while-else循环
- for循环
- break,continue,pass语句
- 条件控制
- 进阶部分
- 迭代器与生成器
- 迭代器
- 生成器
- 函数
- 定义与声明
- 参数传递性
- 参数的类型
- 全局变量与局部变量
- 模块
- import 语句
- 包
- 输入输出控制
- 从键盘输入
- format格式输出
- 文件操作
- open操作
- 文件对象函数
- 异常处理
- 常见的异常分类
- 异常处理语法
- 迭代器与生成器
语法部分
基础语法
标识符
1)由字母、数字下划线组成,且大小写敏感。
2)查看保留字可以用 keyword.keylistkeyword.keylist。
注释
1)单行注释用#。
2)多行注释用”’(三个单引号)包含起来。
多行语句
1)如果多行语句可以在行末加上 \ ,若是在[ ],{ },( )内的语句,不需要 \ 。
2)若果需要在一行写多条语句,需要在行末加分号。
print用法
printprint 默认输出是换行的,如果需要不换行,print(a,end=” “)。
基本数据类型
Python3Python3中有多种数据类型,包括数字,字符串,列表,元组,集合,字典。
赋值
1)多变量赋一个值 a=b=c=1a=b=c=1。
2)多变量赋不同值a,b,c=1,2,"pengwill"a,b,c=1,2,"pengwill"。
数字类型
Python3Python3 支持 int、float、bool、complexint、float、bool、complex(复数)。
类型查看
1)可以用type()type()函数查看变量的对象类型。
2)或者用isinstance(a,int)isinstance(a,int)来查看对象类型。
>>> a=100
>>> print(type(a))
<class 'int'> >>> isinstance(a,int) Ture
区别在于:
1)type()type()不会认为子类是一种父类类型。
2)isinstance()isinstance()会认为子类是一种父类类型。
删除操作
1)可以用deldel + 变量名,来删除一个变量。
2)如若删除多个变量,用逗号分割开。
数值运算
>>> 5+3 # 加法
>>> 4.0-3 # 减法
>>> 4.0*5 # 乘法
>>> 100/3 # 除法,得到浮点数
>>> 100//3 # 除法,得到整数
>>> 100%3 # 取余
>>> 100**3 # 乘方
值得注意的是,在混合计算的时候,Python会把整数转换成浮点数进行运算。
String(字符串)
Index 索引与操作
1)字符串的索引值从0开始,-1表示倒数第二个。
2)+ 符号表示字符串的连接,* 字符表示字符串的复制次数(后面跟数字)。
3)PythonPython中的字符串用单引号或双引号括起来,同时使用反斜杠()转义字符。
4)PythonPython中的字符串不能发生改变,如str[0] = ‘a’会出错。
str = "pengwill"
print(str) # 直接输出字符串
print(str[0:-1]) # 输出从第0个字符 到 倒数第2个字符
print(str[2:]) # 输出从第3个字符到末尾
print(str*2) # 输出str两遍
print(str + "hello") # 连接两个字符串
len(str) # 求解字符串长度
格式化输出
使用类似C语言的输出方法。
1)基本形式为:print (“%s %d” % (‘abc’, 10))。
2)格式字符串同C语言,字符为%c,字符串%s,整数%d,浮点数%f,八进制%o,十六进制%x,科学计数法%e。
3)在字符串前加r/R表示原始字符串,原样输出。
循环遍历
使用此方法可以循环遍历字符串中的每一个字符
str = "pengwill"
for letter in str:dosomething
List(列表)
1)列表中的元素可以是任何数据类型,包括列表自身(嵌套)。
2)列表要用方括号[ ] 括起来,表示这是一个列表。
3)Index索引操作与字符串一致。
4)列表中的元素可以进行修改。
5)列表元素的删除,可以采用list[sta:end+1]= [ ]list[sta:end+1]=[] 的方法。
6)求解列表长度可以用len()len()方法。
7)列表中每个元素循环的方式同字符串。
Tuple(元组)
1)与list类似,不同之处在于元组不能修改,且需要用小括号( )。
2)构造一个空元组 tup1=()tup1=()。
3)构造一个元素的元组tup2=(20,)tup2=(20,),后面的逗号不能省略。
4)当需要函数返回多个参数的时候,实际是以元组形式返回的。
Set(集合)
1)集合中不允许包含重复元素。
2)可以用大括号{}或者set(),来创建一个集合,但是空集合必须使用set()来创建,因为空的{}表示创建一个空字典。
list1 =["a","b","c","d"]
a = set(list1)
b = set(list1[0:3])
print(a - b) # a和b的差集
print(a | b) # a和b的并集
print(a & b) # a和b的交集
print(a ^ b) # a和b中不同时存在的元素
Dictionary(字典)
1)字典类似于c++STLc++STL里的mapmap,key和value一一对应,但keykey并不是有序排列的。
2)字典用大括号{ },并且键与值之间要用冒号 : 连接,不同元素之间用逗号 , 分隔。
3)keykey不可以修改,且keykey唯一。
4)创建空字典用 dict={
}dict={}。
输出操作
dict = {
"mydic":1,"yourdic":2}
print(dict) # 输出完整的字典
print(dict.keys()) # 输出所有key
print(dict.values()) # 输出所有的value
print(dict["mydic"]) # 输出key为mydic的value
类型转换
语法 | 作用 | 解释 |
---|---|---|
int(x,base)int(x,base) | 将字符串或整数转换为整数 | xx为字符串或数字, 为进制,默认十进制 |
float(x)float(x) | 将字符串或者整数转换为浮点数 | 其中xx为字符串或者数字 |
将对象转换为字符串 | xx为一个对象 | |
计算字符串中的有效PythonPython表达式 | strstr为一个字符串类型计算表达式 | |
tuple(x)/list(x)tuple(x)/list(x) | 将xx转换为元组/列表 | 可为一个list/tuplelist/tuple |
ord(x)ord(x) | 将字符xx转换为对应整数值 | xx为单个字符 |
将整数xx转换为一个十六进制字符串 | 为一个整数 | |
oct(x)oct(x) | 将整数xx转换为八进制字符串 | 为一个整数 |
运算符
基本运算符
1)算数运算符、比较运算符、 赋值运算符、位运算符和C语言一致。
2)不同的是: ???? (两个乘号)表示次幂运算,//// (两个斜线)表示整除运算。
逻辑运算符
运算符 | 表达式 | 解释 | 例子 |
---|---|---|---|
andand | a and baandb | 布尔与,当aa为 时返回FalseFalse,否则返回bb的值 | |
oror | a or baorb | 布尔或,当aa为 返回xx的值,否则返回 的值 | 1 or 2=11or2=1 |
notnot | not xnotx | 布尔非,返回非xx |
成员运算符
运算符 | 解释 | 例子 |
---|---|---|
inin | 若对象在指定序列里,返回TrueTrue,否则返回FasleFasle,常用于循环 | for letter in wordlistforletterinwordlist |
not innotin | 若对象不在指定序列里,返回TrueTrue,否则返回FalseFalse | \ |
身份运算符
比较两个对象是否为一个存储单元的内容。
id(x)id(x)用于获取对象xx的内存地址编号。
运算符 | 解释 | 例子 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
当id(a)==id(b)id(a)==id(b)返回TrueTrue,否则返回FalseFalse a is baisb is notisnot 当id(a)!=id(b)id(a)!=id(b)时返回TrueTrue,否则返回FlaseFlase a is not baisnotb 二、数据类型与函数Number(数字)数学函数有些数学函数需要引入mathmath模块,而有些却不需要。 不需要引入mathmath模块的函数: 需要引入mathmath模块的函数: 还有一些三角函数,有兴趣可以查阅相关资料。 随机数函数以下函数都需要引入
模块。 String(字符串)内置字符串函数这里默认字符串函数对象为strstr。 1)len(str)len(str):返回字符串长度。 字符串的格式化函数请移步至4.4.2 format格式输出。 List(列表)脚本型操作可以方便的进行一些简单的操作,这里假定mlist=[0,1,2]mlist=[0,1,2],ylist=[4,5]ylist=[4,5]。 内置列表函数假定列表对象为listlist。 1)list.append(x)list.append(x):在listlist末尾追加对象xx。 Tuple(元组)可以理解为不能改变的列表。 Set(集合)集合内置函数假定集合对象为ss。 1)
:将xx加入到集合
中。 Dictionary(字典)内置字典函数在字典中clear(),copy()clear(),copy()操作与列表操作一致。 假定字典对象为dictdict,给出一些操作及其含义。 1)dict.popitem()dict.popitem():删除ditcditc末尾的键值对。 字典注意事项1)字典中值可以是任何对象,但键不可以。 三、控制语句条件控制if语句基本语法 循环控制while循环基本语法 while-else循环基本语法 当不满足whilewhile循环条件的时候,将进入elseelse语句块。 for循环基本语法 break,continue,pass语句break continue pass 进阶部分本部分介绍关于迭代器与生成器,函数的参数与返回值,文件操作,读入输出操作,以及异常处理等问题。 迭代器与生成器迭代器在使用方面,Python3Python3的迭代器与C++C++的迭代器并无太大差异。基本作用均为遍历序列。值得注意的是,迭代器只能向前访问,不能向后访问。 生成器emmm…生成器还需要好好理解,先挖个坑,回来再填。 函数定义与声明1)函数由关键字defdef定义,后面接着函数名称,和用( )()括起来的参数表列。 参数传递性在Python3Python3中分为可更改对象(mutable)(mutable)和不可更改对象(immutable)(immutable)。 参数传递的方式,根据对象的可更改性来决定。 参数的类型Python3Python3参数分为必须参数,关键字参数,默认参数和不定长参数。
全局变量与局部变量变量的作用域
几乎一样。 如果需要在函数内部修改全局变量,或者在嵌套结构内修改结构外变量,就要涉及到global,nonlocalglobal,nonlocal关键字。 模块模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。 import 语句解释器遇到importimport语句,就会当将前目录中对应的.py.py文件导入,应该将importimport语句放在程序的顶端。 包等待填坑 输入输出控制从键盘输入Python3提供从键盘输入的方法input()函数。其读入的结果为字符串。 format格式输出在Python3Python3中可以使用formatformat函数,解析输出,方便的连接不同类型的变量或内容。 基本语法为:“{ }的成绩分别是:{ },{ },平均分是{}”.format(“pengwill”,”100”,”0”,”50.0”) 文件操作open操作open()open()会返回一个filefile对象,基本语法为:open(filename,mode)open(filename,mode)。
文件对象函数假定已经打开一个文件对象为filefile。 1)file.read(size)file.read(size):读取一个文件的内容,作为字符串返回。参数sizesize可选,表示数据规模,默认为文件全部内容。 异常处理常见的异常分类Exception 所有异常的基类 异常处理语法异常处理的结构有很多种,基本上室友try...except...try...except...结构组成。 1)首先执行trytry内语句块,若发现异常,转至其后的exceptexcept。 如果想要主动抛出异常,可以用raiseraise语句。 当然也可以继承ExceptionException类来自定义自己的异常。 相关文章第2章 C++简单程序设计 难点
第2章 C简单程序设计 难点 VC与C的区别 VC是IDE(集成开发环境),而C是一种面向对象编程的语言。 基本数据类型范围 类型名长度(字节)取值范围bool1false,truechar1?27?27?1?27?27?1unsigned char1…
阅读更多...
Travel With Haskell 1 — Haskell环境配置与编辑器安装
Travel With Haskell 1 — Haskell环境配置与编辑器安装 Haskell环境配置 在 https://www.haskell.org/downloads 中的 Downlaods中下载Haskell PlatForm,下载完成后一路安装即可。 安装成功后,环境就配置好了。 可以打开cmd,输入stack查看…
阅读更多...
Travel With Haskell 2 — 运算与List初步
Travel With Haskell 2 — 运算与List初步 Travel With Haskell 2 — 运算与List初步运算运算符简单的内置函数Haskell的if语句格式 ListList的合并List的索引List的函数Range方法 运算 运算符 运算符大同小异,下面是几点需要注意的。 乘方符号为 ????不等号…
阅读更多...
POJ 2080 ZOJ 1256 日期计算实例
POJ 2080 题意分析 输出 2000年1月1日后 n 天后的日期与星期。 首先算整年,在整年不满足的情况下,计算整月,在月不满足的情况下,计算天数。最后求和,即是日期。根据2000年1月1日式星期天,设定wstr星期字…
阅读更多...
数据结构实验1— 线性表、链表的实现
实现顺序表各种基本操作实验要求程序代码运行结果 实现单链表各种基本操作实验要求程序代码运行结果 约瑟夫环问题实验要求问题描述基本要求测试数据 程序代码运行结果 实现顺序表各种基本操作 实验要求 编写程序实现顺序表的各种基本运算,并在此基础上设计一个主…
阅读更多...
数据结构实验2-栈和队列
实现顺序栈的基本运算实验要求程序代码运行结果 实现链栈基本运算实验要求程序代码运行结果 实现循环队列的基本运算实验要求程序代码运行结果 实现链队列的基本运算实验要求程序代码运行结果 实现顺序栈的基本运算 实验要求 编写一个程序,实现顺序栈的各种基本运…
阅读更多...
数据结构实验3-串和数组
串的模式匹配运算实验要求程序代码运行结果 数组的操作实验要求要求 程序代码运行结果 串的模式匹配运算 实验要求 编写一个程序,实现顺序串的各种模式匹配运算,并在此基础上设计主程序完成如下功能: (1)建立目标串…
阅读更多...
数据结构实验4-树与二叉树先序/中序/后续遍历
实验要求程序代码运行结果 实验要求 任务1:以算法6.4创建二叉树的存储结构,树的具体形态自定。 任务2:对任务1中的二叉树分别实现先序、中序、后序遍历(递归实现)和中序遍历的非递归实现以及层序遍历; 任…
阅读更多...
数据结构实验6-图算法 最小生成树 BFS与DFS
实验要求 编写一个程序,实现图的相关运算,并在此基础上设计一个主程序,完成如下功能: 建立如教材图7.所示的有向图G的邻接矩阵,并分别输出顶点表和邻接矩阵。在图G的邻接矩阵存储表示基础上,实现深度优先…
阅读更多...
数据结构实验7-有向图的邻接表与Dijkstra
实验要求 编写一个程序,实现图的相关运算,并在此基础上设计一个主程序,完成如下功能: 设计并实现有向图的邻接表表示实现Dijkstra算法。输出Dijkstra中从目标起点到各顶点的最短路径 程序代码 #include <iostream> #inc…
阅读更多...
最新文章
|