In [6]:
#dir给出了方法的名称
s=""
print(dir(s))
In [9]:
col = [i for i in range(10)]
print(col)
In [11]:
col = [i for i in range(10) if i%2==0]
print(col)
In [13]:
{x:ord(x) for x in "abc"} #字典解析
Out[13]:
In [14]:
10/5
Out[14]:
In [15]:
10//5 #floor除 省略小数点
Out[15]:
In [17]:
10/4.0
Out[17]:
In [18]:
10//4.0
Out[18]:
In [23]:
#floor和截断(trunc)
import math
print(math.floor(-2.5)) #四舍五入
print(math.trunc(-2.5)) #直接截断
In [1]:
#共享引用
l1 = 10
l2 = l1
l1 = 20
print(l2)
In [7]:
import sys
sys.getrefcount(l1) #获取引用次数
Out[7]:
In [20]:
#python中是引用赋值,而不是简单的copy
l1 = [1,2,3]
l2 = l1
l2[0] = 3
print(l1)
#另一个例子,在下面这种情况下依然是引用,这点一定要多加注意
l1 = [1,2,3]
l2 = [1,2,l1]
l1[0]=10
print(l2)
In [9]:
#关于== 和 is
# == 是判断值是否相等
# is 是判断是否相同对象,或者是否在同一个内存中
l1 = [1,2]
l2 = [1,2,3]
print(l1 is l2)
l1 = [1,2]
l2 = l1
print(l2 is l1)
In [11]:
#嵌套比较,按照顺寻比较
l1 = [(1,2),2]
l2 = [(1,2),3]
print(l1>l2)
In [15]:
print(None == True)
print([None,None] == True) #尽管有对象存在,依然表示False
In [18]:
#类型判断的两种方法
if type([1,2])==list:
print(True)
print(isinstance([1,2],list))
In [30]:
#关于赋值语句
a,b = 10,11
print(a,b)
a,b = range(2)
print(a,b)
In [33]:
a,b="cd"
print(a,b)
#可以使用*号来进行统配
a,*b = "string"
print(a,b)
In [29]:
((a,b),c)=("st","abc")
print(a,b,c)
In [31]:
#巧妙的赋值循环
L=[1,2,3,4,5]
while L:
front,L = L[0],L[1:]
print(front,L)
In [4]:
###关于反斜线续行,使用反斜线将没写完的续上,
if 1==1 and \
2==2:
print("a")
In [6]:
#或者使用()来续行
if (1==1 and 2
==2):
print("a")
In [9]:
#将代码写在一行,需要用 ; 号隔开
x = 1 ; print(x)
In [24]:
#python中的真值判断有些不同,python中返回真或者假而不是True或者False
print(1 and 0) #0代表假 所以返回0
print(1 and -2) #非0代表真所以就随意返回一个值,由于and需要计算最后一个数,所以一般返回后面哪个值
print({} and []) #{} 和 []都是假,所以计算了第一个值发现是假就返回第一个值,无需计算第二个
In [ ]:
#小技巧,利用bool返回值来进行列表元素选择
A = [1,2][bool(2)] #bool(2)返回True代表1,所以取出A[1]
print(A)
In [ ]:
#列表循环的小技巧
x = 'abcd'
while x:
print(x[0])
x = x[1:]
In [ ]:
#break会中断所处的那个while,不会中断最外层的while语句
x = "abcd"
while x:
while x:
if x[0] == 'b':
break;
print(x[0])
x = x[1:]
In [2]:
#python中有while..else..语句,当while执行完之后,会执行else语句
x = [1,2,3]
while x:
print(x[0])
x = x[1:]
else:
print("stop")
In [7]:
#关于for
#for语句中代码可以直接写在后面
for i in [1,2,3]:print(i)
In [8]:
#使用range
for i in range(3):print(i)
In [9]:
for i in range(-1,2):print(i)
In [11]:
for i in range(0,10,2):print(i,end=" ")
In [15]:
#zip 和 map 遍历
l1 = [1,2,3,4]
l2 = [6,7,8,9]
for (x,y) in zip(l1,l2):print(x,y,end=" ")
In [17]:
#以最短的为准,进行遍历
l1 = "abcd"
l2 = "rst"
l3 = "efghigk"
for i in zip(l1,l2,l3):print(i)
In [25]:
#zip可以用来构造字典
dict(zip([1,2,3],"abc"))
Out[25]:
In [24]:
#map是一个函数应用器
print(list(map(ord,"aaa")))
In [28]:
#enumerate使用,enumerate会返回元素的下标和这个元素值
for i in enumerate([1,2,3]):print(i)
In [4]:
#手工迭代
l = [1,2,3,4]
L = iter(l)
print(L.__next__())
In [11]:
#map迭代
M = map(abs,(-1,-2))
print(next(M))
In [12]:
##__doc__用法,下面是一个文件假设名为:test.py
"""
This is introduction
"""
def abc():
"""
This is function
"""
print("hello")
In [13]:
#引用函数时,会返回函数说明
print(abc.__doc__)
In [ ]:
## 引用文件时,会返回文件开头说明
import test
print(test.__doc__)
result:
this is introduction
In [14]:
class EE:
"this is a class"
pass
print(EE.__doc__) #返回函数说明
In [16]:
## 可以通过__doc__读取官方函数说明
import math
print(math.__doc__)
In [17]:
print(math.sqrt.__doc__)
In [22]:
#使用help可以读取这个模块中所有函数以及类的说明
help(math)
In [ ]:
In [ ]: