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保留字符
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__.pyprimitive/__init__.pyline.pyfill.pytext.pyformats/__init__.pypng.pyjpg.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 iprint(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 + 1print("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,nyx,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, nyx, y = move(100, 100, 60, math.pi / 6)
r = move(100, 100, 60, math.pi / 6)
print(x, y)
print(r)
return nx, nyif __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的⾼级部分
未完待续~
ISP成像算法基础Day1—Python基础相关推荐
- Day1 - Python基础1
Day1 - Python基础1 目录 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 python的创始人为吉多·范罗苏姆(Gui ...
- day1 计算机基础以及python基础
day1 计算机基础以及python基础 1.cpu 内存 硬盘 操作系统 cpu:计算机的运算和计算中心,相当于人类的大脑 内存:暂时存储数据,临时加载数据应用程序.一般有4G.8G.16G.32G ...
- 二十一. Python基础(21)--Python基础(21)
二十一. Python基础(21)--Python基础(21) 1 ● 类的命名空间 #对于类的静态属性: #类.属性: 调用的就是类中的属性 #对象.属性: 先从自己的内存空间里找名 ...
- python语言的单行注释以井号开头_推荐|零基础学习Python基础知识
原标题:推荐|零基础学习Python基础知识 Python是一种面向对象.解释型计算机程序设计语言.语法简洁清晰,强制用空白符作为语句缩进. Python具有丰富和强大的库,又被称为胶水语言.能把其他 ...
- Day1 python基础
一.python介绍 目前Python主要应用领域: 云计算: 云计算最火的语言, 典型应用OpenStack WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, ...
- Python全栈开发,Day1 - Python基础1
本章内容 Python是什么? Python的发展史 Python2与3的区别 Python的语言类型 Python的优缺点 一.Python是什么? Python的创始人是吉多·范罗苏姆(Guido ...
- Python on the Way, Day1 - Python基础1
一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...
- 合成孔径雷达成像算法与实现(信号处理基础知识点)
最近由于学业上需要,重新学习了<合成孔径雷达成像算法与实现>一书,其中第二章是信号处理基础,在此记录下学习过程. 一.信号处理基本概念 1.卷积与相关 卷积: 相关: 卷积从几何解 ...
- Python之路,Day1 - Python基础
本节内容 Python介绍 发展史 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决 ...
最新文章
- spring框架四大原则
- Android 急速发布项目到 JitPack
- Springboot+Apollo
- jQuery 输入框 在光标位置插入内容, 并选中
- 会员系统用php框架,代码基地会员中心的PHP签到系统结合thinkphp框架
- 判断大小简单算法_算法浅谈——人人皆知却很多人写不对的二分法
- 计算机组成原理微课版(谭志虎主编)预习笔记
- Android 原生的人脸识别Camera+FaceDetector示例
- 史上最完美将windows键盘映射成mac键盘,绝对不需要买HHKB了
- spss分析qpcr数据_手把手教你使用 SPSS 分析实时荧光定量数据
- 刚培训的java程序员怎么找工作,快来看鸭~
- bingo卡片js代码_Excel Bingo卡随机数代码
- 国家企业信用信息公示系统爬虫——流程分析
- 微信小程序生成图片分享朋友圈
- Android在线购物商城 app端+后台
- 浅谈cookie跨域的解决方案(domain)
- BatchNorm、LayerNorm、InstanceNorm、GroupNorm、WeightNorm
- 淘宝面试的几个算法题
- Jquery实现点击事件的四种写法
- springboot启动源码分析3-环境配置