python理解和相关语法
Python3 的六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
字符串:
矩阵和数组的区别:
跟普通变量查不多
i = ‘i love fishc.com ’
数组中的元素可以是字符等
矩阵中的只能是数
数组和列表的区别:
数组:(python中不存在)只能将数据类型一样的 放在同一个数组中
列表:可以将字符 整数 浮点数等 放在一起 入 a= [‘李’,1,3.14]
元组:括号 () 和逗号 ,
不可插入,删除等操作
c++和python的不同之处:
c++:数据类型不同,有结构体,构造器,析构器,虚方法,重载,友元,指针等等
python:数据类型不同,有魔术方法
format方法:
列表生成式(for循环前面有个变量):
classes = [d for d in os.listdir(dir) if os.path.isdir(os.path.join(dir, d))]
等价于
classes = []
for d in os.listdir(dir):
if os.path.isdir(os.path.join(dir, d)):
classes.append(d)
ls2 =[str(i) for i in ls1]
等价于
ls2 = []
for i in ls1:
ls2.append(str(i))
https://github.com/utiasSTARS/cat-net
在运行这里面 run_cat_vikitti.py 时报错 the following arguments are required:stage
An exception has occurred,use %tb to see the full traceback
parser.add_argument('stage',type=str,choices=['train','test','both']
实质上就是加参数的时候不规范 应该在stage前面加--(即'--stage## 标题')
print('Train {}: {} --> {}'.format(seq, cond, canonical))
#seq放到第一个{},cond放到第二个{}....
魔术方法
__str__
class Stu():
...
def __str__(self):
return...
...
s1 = Stu() #实例化
#则在print(s1)时会直接执行def __str__(self):下面的操作
Image.fromarray()
ource = Image.fromarray(self.source.get_rgb(idx)) #简而言之,就是实现array到image的转换
enumerate的理解:
for i,line in enumerate(lines):
pirnt("{}:{}".format(i,line))
i和line,分别表示循环lines中的第几个和具体值 用enmuerate返回的即是i,line元组
简单地理解Python中的if name == ‘main’
if name == 'main’的意思是:当.py(当前代码)文件被直接运行时,.py(当前代码)下的if name == 'main’之下的代码块将被运行;当.py(当前代码)文件以模块形式被导入时,.py(当前代码)if name == 'main’之下的代码块不被运行。
关于类方法的理解:
在调用类方法时,一般先直接实例化类,再调用里面的函数
class Solution:
def findLength(self, A, B):
n, m = len(A), len(B)
dp = [[0] * (m + 1) for _ in range(n + 1)]
ans = 0
for i in range(n - 1, -1, -1):
for j in range(m - 1, -1, -1):
dp[i][j] = dp[i + 1][j + 1] + 1 if A[i] == B[j] else 0
ans = max(ans, dp[i][j])
return ans
H=Solution()
k=H.findLength(C,D)
并不是这样:
K=Solution.findLength(C,D) 会报错
子类父类继承问题理解:
转自:https://www.runoob.com/w3cnote/python-extends-init.html,更多详情**(子类父类继承)**
insert用法
li=['a', 'b']
li.insert(0,"c")
输出为:['c', 'a', 'b']
布尔类型就是ture or false
filter()和map()函数
filter返回真
map生成一个列表
转自小甲鱼P22
lambda 与 def 比较
即lambda可以非常简便创建函数
在变量前加两个下划线(__name)就会变成私有变量: