主要内容
• 流程图伪代码 • 基本编程元素 • 脚本函数和包 • Numpy
伪代码到程序
第一个脚本
•1 建⽴项⽬和脚本 •2 运⾏ •3 Debug,查看断点 •4 步进,查看系统函数的代码 •5 查看
行和缩进
python的最大特色就是用缩进来区分模块和逻辑
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行
if True:
print ("True")
else:
print("False")
变量
python中的变量赋值不需要类型声明。每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。等号=用来给变量赋值
在内存中存储的数据可以有多种类型
例如,⼀个⼈的年龄可以⽤数字来存储,他的名字可以⽤字符来存储。Python 定义了⼀些标准类型,⽤于存储各 种类型的数据。Python有五个标准的数据类型:
Numbers(数字)
String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)
counter = 100 #赋值整型变量
miles = 1000.0 #浮点型
name = "john" #字符串
print(counter,miles,name)
Python保留字符
def | if | return | and | exec | not |
del | import | try | assert | finally | or |
elif | in | while | break | for | pass |
else | is | with | class | from | |
except | lamda | yield | continue | global | raise |
数字类型
python支持四种不同的数字类型
int 有符号整型
long 长整型 也可以表示八进制和十六进制
float 浮点型
complex复数
在NumPy中,有24种新的基本Python类型来描述不同类型的 标量。这些类型描述符主要基于CPython编写的C语⾔中可⽤ 的类型,其他⼏种类型与Python的类型兼容。
N维数组,列表,元组
Python没有默认数组需要numpy库支持,只有列表list和元组tuple
list是列表,list中的元素的数据类型可以不一样。数组中的元素的数据类型必须是一样的,列表中的元素可以是多种类型
元组一旦创建不不可改变,元组不能追加append元素,弹出pop元素,相当于只读的list
ndarray:全程n-dimensional array object 是储存单一数据类型的多维数组
tuple = ('runoob',786,'join',70.2)
list = ['runoob',786,'join',70.2]
# tuple[2] = 1000
list[2] = 1000
print(tuple)
print(tuple[0])
print(tuple[1:3])
print(tuple[2:])
print(list)
print(list[0])
print(list[1:3])
print(list[2:])
二维列表
列表也可以是多维的
nums = [[1,2,3],[4,5,6],[7,8,9],[3,4,7]]
total = 0
for i in nums:
for j in i:
total += j
print(total)
列表和元组可以套在一起
#元组列表
tuple_list=[(1,2),(3,4)]
tuple_list[0]=(1,2) #合法
#tuple_list[0][0]=1 #⾮法
python字典
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是⽆序的对象集合。 两者之间的区别在于:字典当中的元素是通过键来存取的,⽽不是通过偏移存取。 字典⽤"{ }"标识。字典由索引(key)和它对应的值value组成
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name':'join','code':6734,'dept':'sales'}
print(dict['one']) # 输出键为'one' 的值
print(dict[2]) # 输出键为 2 的值
print(tinydict) # 输出完整的字典
print(tinydict.keys()) # 输出所有键
print(tinydict.values()) # 输出所有值
Python模块
Python 模块(Module),是⼀个 Python ⽂件,以 .py 结尾,包含了 Python 对象定义和 Python语句。模块让你能够有逻辑地组织你的 Python 代码段。把相关的代码分配到⼀个 模块⾥能让你的代码更好⽤,更易懂。模块能定义函数,类和变量,模块⾥也能包含可执 ⾏的代码。 模块的使⽤是通过import 复杂的模块也可以由多个⽂件组成,这个时候需要通过包的形式来管理
__init__.py
primitive/
__init__.py
line.py
fill.py
text.py
formats/
__init__.py
png.py
jpg.py
引用模块
Python 模块(Module),是⼀个 Python ⽂件,以 .py 结尾,包含了 Python 对象定义和Python语句。
import module1
• import module1 as name
• from module1 import function
• from module1 import function as name
• from module1 import *
判断语句
if 判断条件: 执⾏语句…… else: 执⾏语句……
# flag = False
# name = 'luren'
# if name == 'python': #判断变量是否是python
# flag = True #条件成立时设置标志为真
# print('welcome boos') #并输出欢迎信息
# else:
# print(name) #条件不成立时输出变量名称
num = 5
if num == 3: #判断num 的值
print('boss')
elif num == 2:
print('user')
elif num == 1:
print('worker')
elif num < 0: # 值⼩于零时输出
print('error')
else:
print('roadman') # 条件均不成⽴时输出
for 循环
def find_target(target, nums): # 找出排序数组的索引
for i in range(len(nums)):
if nums[i] == target:
return i
print(find_target(5, [1, 3, 5, 6]))
n=5
for i, j in zip(range(n-1, 0, -1), range(n//2)):
print ('i = {0}, j = {1} '.format(i, j))
range() 函数⽤法
range(start, stop[, step]) • start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5); • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 • step:步⻓,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
while 循环
count = 0
while count < 9:
print('The count is:', count)
count = count + 1
print("Good bye")
函数
定义⼀个函数 你可以定义⼀个由⾃⼰想要功能的函数,以下是简单的规则: • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。 • 任何传⼊参数和⾃变量必须放在圆括号中间。圆括号之间可以⽤于定义参数。 • 函数的第⼀⾏语句可以选择性地使⽤⽂档字符串—⽤于存放函数说明。 • 函数内容以冒号起始,并且缩进。 • return [表达式] 结束函数,选择性地返回⼀个值给调⽤⽅。不带表达式的return相当于返回 None。
def move(x, y, step, angle=0):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
函数的返回值和调⽤
函数体内部的语句在执⾏时,⼀旦执⾏到return,函数就执⾏完毕,并将结果返回。 如果没有return语句,函数执⾏完毕后也会返回结果,只是结果为None。return None可以简写为return。
import math
def move(x,y,step,angle=0):
nx = x +step *math.cos(angle)
ny = y - step * math.sin(angle)
return nx,ny
x,y = move(100,100,60,math.pi/6)
r = move(100,100,60,math.pi/6)
print(x,y)
print(r)
文章默认函数入口
1.通过默认的函数名字
if __name__ =='__main__':
2.脚本和函数混编
缺点容易有对⻬问题
import math
def move(x, y, step, angle=0):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
x, y = move(100, 100, 60, math.pi / 6)
r = move(100, 100, 60, math.pi / 6)
print(x, y)
print(r)
return nx, ny
if __name__ == ‘__main__':
环境设置
PYTHONPATH 变量 作为环境变量,PYTHONPATH 由装在⼀个列表⾥的许多⽬录组成。PYTHONPATH 的语 法和 shell 变量 PATH 的⼀样
在 Windows 系统,典型的 PYTHONPATH 如下: set PYTHONPATH=c:\python27\lib; 在 UNIX 系统,典型的 PYTHONPATH 如下: set PYTHONPATH=/usr/local/lib/python
Pycharm 1)打开File--》Setting—》打开 Console下的Python Console,把选项(Add source roots to PYTHONPAT)点击勾选上 2)右键点击⾃⼰的⼯作空间,找下⾯的Mark Directory as 选择Source Root,就可以解 决上⾯的问题了
常用标准库
操作系统接⼝
import os
os.getcwd() # 返回当前的⼯作⽬录
os.chdir('/server/accesslogs') # 修改当前的⼯作⽬录
os.system('mkdir today') # 执⾏系统命令 mkdir
⽂件通配符
import glob
glob.glob('*.py')
数学
import math
math.cos(math.pi / 4)
math.log(1024, 2)
⽇期和时间
Python的⾼级部分
未完待续~