Python基础知识回顾
- 1. Python 的特点和应用概述
- 2. Python基础知识(语法,判断、循环)
- 2.1 Python的关键字
- 2.2 数据类型转换
- 2.3 Python推导式(重点)
- 2.4 python的数字
- 2.5 Python的列表
- 2.4 python的元组
- 2.4.1 元组基础知识
- 2.4.2 元组常用函数
- 2.5 python的字典(映射)
- 2.6 Python的日期与时间
- 2.7 Python的函数
- # 2.8 Python模块
1. Python 的特点和应用概述
Python是一种解释型,面向对象、动态数据类型的高级程序设计语言
- Python的特点(列举了自己所不熟悉的)
- Python丰富的库
- Python的应用
Pycharm和Python的下载和安装
VScode和Python的下载和安装
2. Python基础知识(语法,判断、循环)
2.1 Python的关键字
在 Python 3 中,可以用中文作为变量名,非 ASCII 标识符也允许,但作为一名程序员,我们还是保持基本素养,哈哈哈,英文yyds
import keyword
keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class',
'continue', 'def', 'del', 'elif', 'else', 'except', 'finally',
'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda',
'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try',
'while', 'with', 'yield']
单行注释用 # ,多行注释用 “”“” 内容 “”“” 或’'‘内容 ‘’’
我们可以使用反斜杠 \ 来实现多行语句
空行(便于日后代码的维护或重构)
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口
之间也用一行空行分隔,以突出函数入口的开始。
input() —等待用户输入
Python 可以在同一行中使用多条语句,语句之间使用分号 ; 分割
不换行输出 print( x, end=" " )
import 与 from…import
Python的数据类型
int bool float complex string
#查看python数据类型
type()
2.2 数据类型转换
隐式类型转换 - 自动完成
显式类型转换 - 需要使用类型函数来转换
内置数据类型强转以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
int()
float()
str()
chr()
ord()
hex()
oct()
repr() 将对象 x 转换为表达式字符串
eval() 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple() list() set() dict() frozenset() 传入序列,转换为元组、列表、集合、字典、不可变集合
2.3 Python推导式(重点)
Python 推导式是一种独特的数据处理方式,从一个数据序列构建另一个新的数据序列的结构体。
2.3.1列表(list)推导式
[表达式 for 变量 in 列表]
[表达式 for 变量 in 列表 if 条件]
# 例如
new_names = [name.upper()for name in names if len(name)>3]
列表生成元素表达式,可以是有返回值的函数。
2.3.2 字典(set)推导式
{ key_expr: value_expr for value in collection if condition }
listdemo = ['Google','Runoob', 'Taobao']
# 将列表中各字符串值为键,各字符串的长度为值,组成键值对
>>> newdict = {key:len(key) for key in listdemo}
>>> newdict
{'Google': 6, 'Runoob': 6, 'Taobao': 6}
2.3.3 元组(tuple)推导式
元组推导式可以利用 range 区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的元组。
(expression for item in Sequence )
a = (x for x in range(1,10))
Pyhon解释器的配置,交互式编程和脚本编程
python的运算符
2.4 python的数字
Python 数字数据类型用于存储数值。
数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间
\t \r \n
2.5 Python的列表
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
2.5.1 Python列表的访问(索引)、修改(=)、删除(del)、更新( append() )
list1 = ['Google', 'Runoob', 'Taobao']
list1.append('Baidu')
del list[2]
2.5.2 Python列表操作符(重点)
len()--->>>求长度
+ --->>>组合
["a"]*4 --->>>["a","a","a","a"] 重复
3 in [1,2,3] --->>>True 判断
for x in [1, 2, 3]: print(x, end=" ") --->>>迭代
常用
list() 将元组转换为列表
cmp() 比较两个列表的元素
len() 列表元素个数
max() 返回列表的最大值
min() 返回列表的最小值
2.5.3 Python(重点)
# 添加元素
list.append()
list.extend(seq)
list.insert(index, obj)
# 删除
list.remove(obj)
list.pop([index=-1])
list.index(obj) # 索引
# 排序和反转
list.sort(cmp=None, key=None, reverse=False)
list.reverse()
2.4 python的元组
2.4.1 元组基础知识
Python 的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"
元组中只包含一个元素时,需要在元素后面添加逗号
任意无符号的对象,以逗号隔开,默认为元组
元组运算符 与 与列表运算符相同
2.4.2 元组常用函数
元组内置函数
cmp(tuple1,tuple2)
len(tuple)
min(tuple)
tuple(seq)
2.5 python的字典(映射)
字典是另一种可变容器模型,且可存储任意类型对象
字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
tinydict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
访问字典里的值:
#!/usr/bin/python
tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "tinydict['Name']: ", tinydict['Name']
print "tinydict['Age']: ", tinydict['Age']
访问(索引),删除(del),修改(=)
字典的特性
dict.clear() 删除字典的所有元素
popitem() 返回并删除字典中的最后一对键和值
pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
dict.copy() 返回字典的浅复制
dict.update(dict2) 把字典dict2的键/值对更新到dict里
**dict.fromkeys(seql,val)** 以seql作键,val作值(重要)
dict.get(key,default=None) 返回指定键的值
dict.has_key(key) 如果键在字典dict里返回true,否则返回false
dict.keys() 以列表返回一个字典所有的键
dict.values() 以列表返回字典中的所有值
2.6 Python的日期与时间
Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。
1970年后的时间戳
import time # 引入time模块
cur_time = time.time() #用于获取当前时间戳==
- 时间元组
很多Python函数用一个元组装起来的9组数字处理时间
几个时间函数(获取当前时间:time.localtime:
localtime = time.localtime(time.time())
print "本地时间为 :", localtime
打印结果:
获取格式化的时间time.asctime()可以根据需要选取各种格式:
localtime = time.asctime( time.localtime(time.time()) )
print "本地时间为 :", localtime
格式化日期time.strftime(format[, t])
根据格式化符号,可查.
格式化成2016-03-20 11:45:39形式
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
格式化成Sat Mar 28 22:24:24 2016形式
print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())
获取某月月历
import calendar
cal = calendar.month(2016, 1)
print "以下输出2016年1月份的日历:"
print cal
2.7 Python的函数
定义一个函数;
def关键字开头,后跟函数名括号和参数冒号
[tab]函数体
[tab]返回值
def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]
Python 传不可变对象实例 strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象,类似 c++ 的值传递\
可变类型:类似 c++ 的引用传递,如 列表,字典
传可变对象实例
- 参数:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 可写函数说明
def printinfo( arg1, *vartuple ):
"打印任何传入的参数"
print "输出: "
print arg1
for var in vartuple:
print var
return
# 调用printinfo 函数
printinfo( 10 )
printinfo( 70, 60, 50 )
# 2.8 Python模块
当你导入一个模块,Python 解析器对模块位置的搜索顺序是:
当前目录\shell变量的PYTHONPATH的每个目录\如果都找不到,会查看默认路径。
例如在UNIX下的典型目录:
set PYTHONPATH=/usr/local/lib/python
- 命名空间和作用域
- dir() 函数一个排好序的字符串列表,内容是一个模块里定义过的名字
返回的列表容纳了在一个模块里定义的所有模块,变量和函数。如下一个简单的实例
import math
content = dir(math)
globals() 和 locals() 函数可被用来返回全局和局部命名空间里的名字
reload() 函数
当一个模块被导入到一个脚本,模块顶层部分的代码只会被执行一次。
因此,如果你想重新执行模块里顶层部分的代码,可以用 reload() 函数。该函数会重新导入之前导入过的模块
2.8.1 Python中的包
包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境
包就是文件夹,但该文件夹下必须存在 init.py 文件, 该文件的内容可以为空。init.py 用于标识当前文件夹是一个包。
3. 1 Python的文件IO
open() 方法
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数说明:
file: 必需,文件路径(相对或者绝对路径)。
mode: 可选,文件打开模式 w r b + a
buffering: 设置缓冲
encoding: 一般使用utf8
errors: 报错级别
newline: 区分换行符
closefd: 传入的file参数类型
opener: 设置自定义开启器,开启器的返回值必须是一个打开的文件描述符。
file.open()
file.write()
file.append()
file.seek(offset[, whence])
file.isatty()
file.readline([size])
file.seek(offset[, whence])
3. 2 Python异常处理(python程序在运行中出现的异常和错误)
- 异常处理
异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。 - 断言(Assertions)
捕捉异常可以使用try/except语句。
Python异常处理中的标准异常
try:
fh = open("testfile", "w")
fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
print "Error: 没有找到文件或读取文件失败"
else:
print "内容写入文件成功"
fh.close()
try:
fh = open("testfile", "w")
fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
print "Error: 没有找到文件或读取文件失败"
else:
print "内容写入文件成功"
fh.close()
python test.py
内容写入文件成功
$ cat testfile # 查看写入的内容
这是一个测试文件,用于测试异常!!
关注我,后续继续追加,认为重要的基础知识!