python二郎成长笔记(一)(pip升级,python入门,基础,python2和3不同格式带来的问题,头文件引用的格式,变量的类型,__name__ == '__main__')
二郎的操作系统是windows,之前同时安装了python2和python3,因此在一些应用中还涉及了版本切换以及安装插件等问题。
同时安装是指在Anaconda中完成的,Anaconda(官方网站)就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。利用该软件可以快速实现版本之间的切换。
首先,二郎最初安装python是为了运行深度学习,帮旧照片上色的,成功了……之后就一直没用,现在是想要用python来做双目立体视觉,所以以这个目的为起点,那么,开始吧
首先,为了利用到python里面关于双目立体视觉的库,二郎需要安装插件
调出命令提示行
cmd
安装插件
pip install StereoVision
当然,二郎好久没用这个了,因此提醒我升级
用提醒的代码升级就可以了,有时候一次可能无法完成会出现很多红色字体,那么退出再来一遍就可以了。
pip install SomePackage 安装
pip install --upgrade SomePackage 安装升级
pip show --files SomePackage 展示插件是否被安装
pip uninstall SomePackage 卸载插件
pip list 列出所有插件
pip list --outdated 列出过时插件
这里是总体文件中的内容,要想到指定文件夹去运行指定程序
cd E:\QQ\FILIVE
在cmd中cd空格后面加地址即可
下面就是python文件的读写了,首先先安利几个文章,建议有疑问的先阅读一下
python里面的编程格式:https://www.imooc.com/article/38582;
定义新函数的方法:http://www.cnblogs.com/koala-king/p/10344055.html;
头文件引用的格式:https://www.cnblogs.com/taurusfy/p/7605787.html;
缩进要求:https://blog.****.net/w3071206219/article/details/83691598;
符号以及数据类型:https://www.cnblogs.com/xiaocen/p/4292094.html;
python2和3不同格式带来的问题:https://blog.****.net/dietime1943/article/details/79281386;
命令惯例
1、以单一下划线开头变量名(x)不会被from module import *语句导入
2、前后有下划线的变量名(x)是系统定义的变量名,对python解释器有特殊的意义
3、以两个下划线开头但结尾没有下划线的变量名(__x)是类的本地变量
4、交互式模式下,变量名""用于保存最后表达式的结果
整个程序的框图为
关于入口问题,c++之类的语言均需要从main函数开始执行,而Python属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,而是动态的逐行解释运行。也就是从脚本第一行开始运行,没有统一的入口。
这里说一下
from const import w #把const.py中的变量导入我们的程序
import const #把模块const.py加载进我们的程序,相当于直接把程序附近进入我们的程序,第一次加载只运行一次
Import const as ct #把模块的名字缩写为ct
实例
const.py
cox
xw
引用
import const
print(const.cox.xw())
from const import cox
print(cox.xw())
import const as ct
print(ct.cox.xw())
这里也可以看出,在哪个模块中的函数或者变量,可以Name.XXX表示
定义变量的类型
1.位置参数:在特定位置传递特定的值
def const (x,y)
c = x+y
return c
2.默认参数:该参数需要放在位置参数后,为参数定义默认值
def const (x,y=3) #y为默认参数
c = x+y
return c
3.可变参数:该参数的个数可变,其包含位置参数或者默认参数(定义时这样,使用时可直接加入参数),其实就是将位置参数打包
def const (*c) ……
#使用const(x,y)
4.关键字参数:字面理解关键字,其实就是将默认参数打包
def person(name,age,**ww):
print('name:',name,'age:',age,'other:',ww)
person('Tom','50')
person('Tom','50',city='Hangzhou')
person('Tom','50',gender='M',job='Teacher')
输出
name: Tom age: 50 other: {}
name: Tom age: 50 other: {'city': 'Shanghai'}
name: Tom age: 50 other: {'gender': 'M', 'job': 'Teacher'}
if name == ‘main’ 这一句是为了避免由于import加载时,模块需要执行一次而出现我们不需要的信息,其中__name__ 的值代表了结构,如果当前目录下直接运行模块,name == ‘main’ ;如果是引用import c,那么c中的__name__==‘c’。
下面例子来于:http://blog.konghy.cn/2017/04/24/python-entry-program/
1.不加
from const import PI
def calc_round_area(radius):
return PI * (radius ** 2)
def main():
print "round area: ", calc_round_area(2)
main()
输出
PI: 3.14
round area: 12.56
2.加上
PI = 3.14
def main():
print "PI:", PI
if __name__ == "__main__":
main()
输出
round area: 12.56