python3简明教程学习
实验1 开启python之旅
- 1.使用交互模式的Python3解释器
- 2.简单使用vim编写Python3脚本
- 3.执行Python3脚本
- 4.Python3代码风格建议
- 5.Python3中使用注释
- 6.认识Python3模块
Python 使用缩进来定义语句块,缩进是 Python 语法的一部分,这与其它大多数语言不同。所以如果是用空格,就一直用空格缩进,不要使用制表符。
导入math模块:import math
代码风格设定::
- 使用 4 个空格来缩进
- 永远不要混用空格和制表符
- 在函数之间空一行
- 在类之间空两行
- 字典,列表,元组以及参数列表中,在 , 后添加一个空格。对于字典,: 后面也添加一个空格
- 在赋值运算符和比较运算符周围要有空格(参数列表中除外),但是括号里则不加空格:a = f(1, 2) + g(3, 4)
写足够的注释:在 # 后跟一个空格,然后再写注释。
一些标准的注释:
# FIXME -- fix these code later
# TODO -- in future you have to do this
hello world:
helloworld.py:
实验2 变量和数据类型
- 1.python关键字
- 2.变量的定义与赋值
- 3.input()函数
- 4.字符串的格式化
在 Python 中 我们不需要为变量指定数据类型。所以你可以直接写出 abc = 1 ,这样变量 abc 就是整数类型。如果你写出 abc = 1.0 ,那么变量 abc 就是浮点类型。是只需要输入变量名和值就行了。
python关键字:
数值比较:
testhunderd.py
investmen.py
实验3 运算符和表达式
- 1.关系/逻辑运算
- 2.表达式
- 3.类型转换
对于逻辑 与,或,非,我们使用 and,or,not 这几个关键字。
逻辑运算符 and 和 or 也称作短路运算符:它们的参数从左向右解析,一旦结果可以确定就停止。例如,如果 A 和 C 为真而 B 为假,A and B and C 不会解析 C 。作用于一个普通的非逻辑值时,短路运算符的返回值通常是能够最先确定结果的那个操作数。
关系运算可以通过逻辑运算符 and 和 or 组合,比较的结果可以用 not 来取反意。逻辑运算符的优先级又低于关系运算符,在它们之中,not 具有最高的优先级,or 优先级最低,所以 A and not B or C 等于 (A and (notB)) or C。当然,括号也可以用于比较表达式。
使用 format 可以控制输出的小数位数,可以使用 '{:.10f}'.format() 来进行格式化输出保留 10 位小数
运算符:
关系运算符:
类型转换函数:
实验4 控制流If-else
- 1.if语句
- 2.else语句
- 3.真值检测
Python 中的很多值是具有布尔意义的
number.py:
实验5 循环
- 1.while循环
- 2.print()函数的end参数
- 3.列表
- 4.索引
- 5.切片
- 6.for循环
- 7.range()函数
- 8.continue关键字
- 9.for循环中的else关键字
默认情况下,print() 除了打印你提供的字符串之外,还会打印一个换行符,所以每调用一次 print() 就会换一次行。你可以通过 print() 的另一个参数 end 来替换这个换行符。
列表的数据结构。它可以写作中括号之间的一列逗号分隔的值。列表的元素不必是同一类型。如果我们使用负数的索引,那将会从列表的末尾开始计数。
切成不同的部分,这个操作称为切片。
切片并不会改变正在操作的列表,切片操作返回其子列表,
对于非负索引,如果上下都在边界内,切片长度就是两个索引之差。例如 a[2:4] 是 2。
Python 中有关下标的集合都满足左闭右开原则,切片中也是如此,也就是说集合左边界值能取到,右边界值不能取到。
一个过大的索引值(即大于列表实际长度)将被列表实际长度所代替,当上边界比下边界大时(即切片左值大于右值)就返回空列表:
切片操作还可以设置步长
如同 break ,我们可以在循环中使用另一个语句 continue。它会跳过其后的代码回到循环开始处执行。
我们可以在循环后面使用可选的 else 语句。它将会在循环完毕后执行,除非有 break 语句终止了循环。
while循环:
斐波那契(Fibonacci)数列:
列表切片:
range():
for循环:
实验6 数据结构
- 1.列表的方法与列表元素的删除
- 2.将列表用作栈和队列
- 3.列表推导式
- 4.元组、集合、字典的创建与操作
- 5.
enumerate()
和zip()
函数
常用函数:
- 调用列表:
a.append()
- 在列表索引位置添加相应元素:
a.insert()
- 列表方法返回也列表元素数量:
a.count()
- 移除任意指定值:
remove()
- 反转列表:
reverse()
- 将列表b中所有元素加入列表a:
a.extend(b)
- 列表元素可比较,排序:
sort
- 删除指定位置的列表元素:
del
- 传入一个参数 i 即 pop(i) 会将第 i 个元素弹出:
pop()
任何一个元组执行拆封操作并赋值给多个变量。元组是不可变类型,这意味着你不能在元组内删除或添加或编辑任何值。
集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。集合对象还支持 union(联合),intersection(交),difference(差)和 symmetric difference(对称差集)等数学运算。
大括号或 set() 函数可以用来创建集合。注意:想要创建空集合,你必须使用 set() 而不是 {}。后者用于创建空字典。
字典是是无序的键值对(key:value)集合,同一个字典内的键必须是互不相同的。一对大括号 {} 创建一个空字典。初始化字典时,在大括号内放置一组逗号分隔的键:值对,这也是字典输出的方式。我们使用键来检索存储在字典中的数据。
因实验楼卡顿,我在自己电脑上进行了实验6.
常用函数:
列表推导式:
元组:
type():
set()的一些尝试:
students.py
路径错误:
查看python安装路径:
实验7 字符串
- 1.字符串的3种表示
- 2.字符串的分割、连接、大小写转换、搜索等常用操作
常用字符串:
- %s 字符串(用 str() 函数进行字符串转换)
- %r 字符串(用 repr() 函数进行字符串转换)
- %d 十进制整数
- %f 浮点数
- %% 字符“%”
字符串的表示:
字符串的方法
回文检查:
单词计数:
实验8 函数
- 1.函数的定义
- 2.局部/全局变量的概念
- 3.默认参数,关键字参数及强制关键字参数
- 4.文档字符串的使用
- 5.高阶函数,map()函数
我们使用关键字 def 来定义一个函数,语法描述如下所示:
def 函数名(参数):
语句1
语句2
默认参数值:
- 具有默认值的参数后面不能再有普通参数,比如 f(a,b=90,c) 就是错误的。
- 默认值只被赋值一次,如果默认值是任何可变对象时会有所不同,比如列表、字典或大多数类的实例。例如,下面的函数在后续调用过程中会累积(前面)传给它的参数:
其它高级语言常见的函数重载,Python 是没有的,这是因为 Python 有默认参数这个功能,函数重载 的功能大都可以使用默认参数达到。
实验9 文件处理
- 1.文件打开模式
- 2.文件读取与写入
- 3.
with
语句
open() 函数打开文件需要两个参数:
- 第一个参数是文件路径或文件名
- 第二个是文件的打开模式。
打开模式:
- "r",以只读模式打开,你只能读取文件但不能编辑/删除文件的任何内容
- "w",以写入模式打开,如果文件存在将会删除里面的所有内容,然后打开这个文件进行写入
- "a",以追加模式打开,写入到文件中的任何数据将自动添加到末尾
open() 函数的默认的模式为只读模式
拷贝文件:
#!/usr/bin/env python3
import sys
if len(sys.argv) < 3:
print("Wrong parameter")
print("./copyfile.py file1 file2")
sys.exit(1)
f1 = open(sys.argv[1])
s = f1.read()
f1.close()
f2 = open(sys.argv[2], 'w')
f2.write(s)
f2.close()
with语句使用:
>>> with open('sample.txt') as fobj:
... for line in fobj:
... print(line, end = '')
...
I love Python
I love shiyanlou
实验10 异常
- 1.NameError
- 2.TypeError
- 3.异常处理(tryexcept)
- 4.异常抛出(raise)
- 5.finally子句
实验11 类
- 1.类的定义
- 2.对象初始化
3实验12 模块
- 1.模块的导入
- 2.包
- 3.默认/第三方模块介绍
- 4.命令行参数
实验13 Collections模块
- 1.Counter类
- 2.defaultdict类
- 3.namedtuple类
实验14 PEP8代码风格指南
- 1.代码排版
- 2.字符串引号
- 3.表达式和语句中的空格
- 4.注释
- 5.版本注记
- 6.命名约定
- 7.公共和内部接口
- 8.程序编写建议