因为看过N个教程了,所以这里只记录python语法学习的一些细节
//:表示整数除法
/:表示浮点数除法,返回浮点数结果
单行注释:#
多行注释和行内注释:'''或""",行内注释示例如下
plt.figure(figsize=(12,6)) # 定义图的大小
#行内注释示例
plt.figure('''figsize=(12,6)''') # 定义图的大小
python文件名称为learn_test.py
文件地址为:/home/meng/deeplearning/yolov5/learn_test.py
运行指令:
python learn_test.py
import os
import sys
from pathlib import Path #path将str转换成path对象,使字符串路径易于操作
FILE = Path(__file__).resolve() #__file__:当前路径,.resolve():获取绝对路径
# print(FILE)----打印输出:/home/meng/deeplearning/yolov5/learn_test.py
ROOT = FILE.parents[0] # YOLOv5 root directory #.parents():路径的父目录
# print(ROOT)----打印输出:/home/meng/deeplearning/yolov5
if str(ROOT) not in sys.path: #sys.path是python的搜索模块的路径集,是一个list
sys.path.append(str(ROOT)) # add ROOT to PATH #sys.path.append():添加相关路径,但在退出python环境后自己添加的路径就会消失
#Path.cwd():返回当前工作目录,即运行脚本所在的全局目录:/home/meng/deeplearning/yolov5/learn_test.py
ROOT = Path(os.path.relpath(ROOT, Path.cwd())) # relative
# print(ROOT)----打印输出:.
根据上面程序运行结果,Path(os.path.relpath(path_1, path_2))应该输出的是path_2相对path_1的相对路径,上面程序中path_1=/home/meng/deeplearning/yolov5,path_2=/home/meng/deeplearning/yolov5/learn_test.py,即得结果为"."
返回大于括号里浮点数的最大小数
取整函数,默认取整到整数位,取整到几位小数需要加参数,如下所示的“3”:
round(1.2345678,3)
(yolov5py37) meng@meng:~/xxx$ python
Python 3.7.11 (default, Jul 27 2021, 14:32:16)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import math
>>> round(1.2345678,3)
1.235
>>>
取整规则与python版本有关,py2和py3有较大差异,分析见:python中round的用法_python中round函数如何使用_weixin_39926104的博客-CSDN博客
当变量名称和变量分开打印时:
print("cp_int:")
print(cp_int)
结果为:
meng@meng:~/Downloads/论文/张正友标定法/Calibration_ZhangZhengyou_Method-master$ python calib_RGB.py
cp_int:
[[ 0. 0. 0.]
[ 1. 0. 0.]
[ 2. 0. 0.]
[ 3. 0. 0.]
[ 4. 0. 0.]
[ 5. 0. 0.]
[ 6. 0. 0.]
[ 7. 0. 0.]
[ 8. 0. 0.]
[ 9. 0. 0.]
当变量名称和变量在一个语句里面打印时:
print("cp_int:",cp_int)
结果为:(因为输出有“()”,给人不整洁的感觉)
meng@meng:~/Downloads/论文/张正友标定法/Calibration_ZhangZhengyou_Method-master$ python calib_RGB.py
('cp_int:', array([[ 0., 0., 0.],
[ 1., 0., 0.],
[ 2., 0., 0.],
[ 3., 0., 0.],
[ 4., 0., 0.],
[ 5., 0., 0.],
[ 6., 0., 0.],
[ 7., 0., 0.],
报错:
File "plot_curve.py", line 1
SyntaxError: Non-ASCII character '\xe5' in file plot_curve.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
解决方案:
在py文件第一行加上
# -*- coding: utf-8
报错:
def getAverage(array_ymp=[],total_number):
^
SyntaxError: non-default argument follows default argument
对应程序:
def getAverage(array_ymp=[],total_number):
sum_tmp=0.0
index=0
while index
报错原因:non-default argument follows default argument----没有默认值的参数放在了有默认值的参数的后面,这里array_ymp有默认参数“[]”即空数组,而total_number没有默认值,
办法:
def getAverage(total_number,array_ymp=[]):
注意调用函数处也需要相应进行修改
def getAverage(array_ymp=[],total_number=500):