本篇记录了Python学习过程中积累的基础知识,对于略微高级储备知识,见下篇
目录
Python简介
语言特色
解释性语言:开发过程中没有了编译环节
交互式语言:可以在一个提示符>>>后直接执行代码
面向对象语言:将相关代码进行封装在对象中
Python中文编码
Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字
解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*- 或者 # coding=utf-8 就行了
# -*- coding: UTF-8 -*-
# coding=utf-8
注意:Python3.X 源码文件默认使用utf-8编码,所以可以正常解析中文,无需指定 UTF-8 编码。
Python基础语法
1. Python 的代码块不使用大括号 {} 来控制类,用缩进来写模块
2. Python 可以同一行显示多条语句,方法是用分号 ; 分开,如:
>>> print ('hello');print ('runoob');
hello
runoob
我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:
total = item_one + \
item_two + \
item_three
Python注释
python中单行注释采用 # 开头。#可以在开头,可以在语句表达式末
python 中多行注释使用三个单引号 ''' 或三个双引号 """
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:test.py
'''
这是多行注释,使用单引号。
这是多行注释,使用单引号。
这是多行注释,使用单引号。
'''
"""
这是多行注释,使用双引号。
这是多行注释,使用双引号。
这是多行注释,使用双引号。
"""
Python空行
表示一段新的代码的开始
print输出
print 默认输出是换行的,如果要实现不换行需要,在变量末尾加上逗号 ,
#!/usr/bin/python
# -*- coding: UTF-8 -*-
x="a"
y="b"
# 换行输出
print x
print y
print '---------'
# 不换行输出
print x,
print y,
# 不换行输出
print x,y
Python变量类型
字符串
[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符,且头下标从0开始
加号(+)是字符串连接运算符,星号(*)是重复操作
#!/usr/bin/python
# -*- coding: UTF-8 -*-
str = 'Hello World!'
print str # 输出完整字符串
print str[0] # 输出字符串中的第一个字符
print str[2:5] # 输出字符串中第三个至第六个之间的字符串
print str[2:] # 输出从第三个字符开始的字符串
print str * 2 # 输出字符串两次
print str + "TEST" # 输出连接的字符串
列表
列表用 [ ] 标识
#!/usr/bin/python
# -*- coding: UTF-8 -*-
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
print list # 输出完整列表
print list[0] # 输出列表的第一个元素
print list[1:3] # 输出第二个至第三个元素
print list[2:] # 输出从第三个开始至列表末尾的所有元素
print tinylist * 2 # 输出列表两次
print list + tinylist # 打印组合的列表
元组
元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表
#!/usr/bin/python
# -*- coding: UTF-8 -*-
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tuple[2] = 1000 # 元组中是非法应用
list[2] = 1000 # 列表中是合法应用
Python字典
列表是有序的对象集合,字典是无序的对象集合。字典当中的元素是通过键来存取的,字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
d = {key1 : value1, key2 : value2 }
#!/usr/bin/python
# -*- coding: UTF-8 -*-
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'runoob','code':6734, 'dept': 'sales'}
print dict['one'] # 输出键为'one' 的值
print dict[2] # 输出键为 2 的值
print tinydict # 输出完整的字典
print tinydict.keys() # 输出所有键
print tinydict.values() # 输出所有值
Python条件语句
if-elif-elif-else
但需要判断多个条件时,可以使用and和or进行连接,若中途需要有限判断,可加入括号
num = 10
if num < 0 or num > 10: # 判断值是否在小于0或大于10
print 'hello'
else:
print 'undefine'
# 输出结果: undefine
Python循环语句
#!/usr/bin/python
# -*- coding: UTF-8 -*-
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print ('当前水果 : %s' % fruits[index])
print ("Good bye!")
Python Number(数字)
Python 中数学运算常用的函数基本都在 math 模块、cmath 模块中。
Python math 模块提供了许多对浮点数的数学运算函数。
Python cmath 模块包含了一些用于复数运算的函数。
要使用 math 或 cmath 函数必须先导入:
>>> import math
>>> dir(math)
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
>>>
Python 字符串
可以使用引号 ( ' 或 " ) 来创建字符串
Python函数自定义
自定义函数规则
- 以 def 关键词开头,后接函数名称和圆括号()。
- 函数内容以冒号起始,并且缩进。
- 任何传入参数和自变量必须放在圆括号中。
- 函数的第一行语句可以使用文档字符串存放函数说明。
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
def printme( str ):
"打印传入的字符串到标准显示设备上"
print str
return
Python模块
一个模块Module,是一个Python文件,以.py结尾。通过import导入该模块,若需调用模块里的函数,则通过模块名.函数名进行调用
一个模块只会被导入一次
可借助from……import^语句实现部分导入或全部导入
Python输入输出
str=raw_input("请输入:")
print"你输入的内容是:",str
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#input可以接受一个表达式作为输入
str = input("请输入:")
print "你输入的内容是: ", str
Python打开关闭文件
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 打开一个文件
fo = open("foo.txt", "w")
print "文件名: ", fo.name
#字符串的写入
fo.write( "www.runoob.com!\nVery good site!\n")
#字符串的读取
str = fo.read(10)
print "读取的字符串是 : ", str
# 关闭打开的文件
fo.close()
write()方法可将任何字符写入一个打开的文件
read()方法从一个打开的文件中读取一个字符串
tell()方法告诉你文件内的当前位置
seek(offset [,from])方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。
rename() 方法需要两个参数,当前的文件名和新文件名。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
# 重命名文件test1.txt到test2.txt。
os.rename( "test1.txt", "test2.txt" )
# 删除一个已经存在的文件test2.txt
os.remove("test2.txt")
remove()方法删除文件,需要提供要删除的文件名作为参数
使用os模块的mkdir()方法在当前目录下创建新的目录们
用chdir()方法来改变当前的目录
getcwd()方法显示当前的工作目录
rmdir()方法删除目录
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
# 创建目录test
os.mkdir("test")
# 将当前目录改为"/home/newdir"
os.chdir("/home/newdir")
# 给出当前的目录
print os.getcwd()
# 删除”/tmp/test”目录
os.rmdir( "/tmp/test" )
Python File方法
注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法
open()方法常用的形式是接受两个参数:文件名和模式
即open(file,mode='r')
Python异常处理
不想在异常发生时结束我们的程序,只需在try里捕获它
#!/usr/bin/python
# -*- coding: UTF-8 -*-
try:
fh = open("testfile", "w")
fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
print "Error: 没有找到文件或读取文件失败"
else:
print "内容写入文件成功"
fh.close()