ISP成像算法基础Day1—Python基础

主要内容

• 流程图伪代码 • 基本编程元素 • 脚本函数和包 • 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保留字符

defifreturnandexecnot
delimporttryassertfinally

or

elifinwhilebreakforpass
elseiswithclassfromprint
exceptlamdayieldcontinueglobalraise

数字类型

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的⾼级部分

未完待续~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值