你好:、第一:帮助文档;第二种:dir(),小括号内是你想要了解的对象,这个函数还是很伟大的!
创新互联建站于2013年开始,先为江门等服务建站,江门等地企业,进行企业商务咨询服务。为江门企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
python语言最常见的括号有三种,分别是:小括号( )、中括号[ ]和大括号{ },分别用来代表不同的python基本内置数据类型。
1、python中的小括号( ):代表元组数据类型,元组是一种不可变序列。
2、python中的中括号[ ],代表list列表数据类型,需要注意的是python的list索引从0开始编号,并且取切片的时候是左闭右开区间,如下图所示:
3、python大括号{ }:代表 dic t字典数据类型,字典是由键对值组组成。冒号':'分开键和值,逗号','隔开组。用大括号创建的方法如下:
matlab中对小括号( )、中括号[ ]和大括号{}也有不同的使用方法:
1、matlab中的小括号一般用在函数调用或取位置
a=[1 2 3];
a(1)=1
2、matlab的中括号一般用于字符串的操作
a='matlab'
b='python'
c=[a,' ',b]
c='matlab python'
3、matlab中的大括号一般用于元胞数组的操作
a=[1 2 3]
b='str'
c{1}=a;c{2}=b;
c=
1*2 cell
{[1 2 3]},{'str'}
小括号表示元组
如
t=(1,2,3)
中括号表示列表
如l=[1,2,3]
大括号表示字典
如
d={1:1,2:2,3:3}
,
中括号还可以表示上述三种数据类型的下标,如t[0],l[0],d[1]
大括号也可以表示set
如
s={1,2,3}
小括号也可以用在函数调用
,改变表达式的优先级等
python生成器是用来代替"不一定能够使用全部元素的数组",等到使用某一元素时,才生成该元素,用来节省空间.
python生成器写法有两种
第一种:(数组生成式的中括号变成小括号)
# 生成器
arr = (x for x in range(1,6))
# 生成器下一个元素用next()来取得
print("--next1--")
print(next(arr))
print("--next2--")
print(next(arr))
print("--next3--")
print(next(arr))
输出结果:
--next1--
1
--next2--
2
--next3--
3
第二种方式: 使用关键字 yield 关键字
# 斐波那契数列生成器
def creatNum():
print("---开始执行生成器方法---")
a,b = 0,1
for i in range(0,5):
print("--step1--")
yield b
print("--step2--")
a,b = b,a+b
print("--step3--")
print("--..stop..--")
print("直接调用方法...")
print(creatNum())
#这里用一个标识符来指向生成器(不要把creatNum()当做函数)
func = creatNum()
#一次生成
print("使用next调用")
x = next(func)
print(x)
#又一次生成
print("使用next调用")
x = next(func)
print(x)
print("使用next调用")
x = next(func)
print(x)
输出结果:
直接调用方法...
使用next调用
---开始执行生成器方法---
--step1--
1
使用next调用
--step2--
--step3--
--step1--
1
使用next调用
--step2--
--step3--
--step1--
2
生成器还可以用 生成器.next 来调用,等价于 next(生成器)
如果使用next来调用,调用到生成器执行完毕,就会崩掉. 我们基本不会使用next来执行生成器
一般来说会用for循环来执行生成器:
# 斐波那契数列生成器
def creatNum():
print("---开始执行生成器方法---")
a,b = 0,1
for i in range(0,5):
print("--step1--")
yield b
print("--step2--")
a,b = b,a+b
print("--step3--")
print("--..stop..--")
print("直接调用方法...")
print(creatNum())
#这里用一个标识符来指向生成器(不要把creatNum()当做函数)
func = creatNum()
#使用for循环来执行生成器
for i in func:
print(i)
输出结果: (执行完毕不会崩溃)
直接调用方法...
---开始执行生成器方法---
--step1--
1
--step2--
--step3--
--step1--
1
--step2--
--step3--
--step1--
2
--step2--
--step3--
--step1--
3
--step2--
--step3--
--step1--
5
--step2--
--step3--
--..stop..--
在执行生成器时,可以使用 生成器.send(param) 方法
send方法不光是执行一步next操作,还会把send里面的参数传到生成器中充当yield表达式的返回值
**(注意:第一次执行,send里面的参数应该为None,或者使用next方法)
def test():
i = 0
while i 5:
temp = yield i
print(temp)
i += 1
t = test()
#先使用next执行,看能出来什么结果
t.__next__()
t.__next__()
print(t.__next__())
#使用send执行
t.send("1231231231223123")
print(t.send("hahahahhahaha"))
输出结果: (可见next输出temp为none , 而send 则把值传递进了生成器)
None
None
2
1231231231223123
hahahahhahaha
4