Python的小技巧

  • 循环和条件语句都要有:
  • 标准的条件结构:
if xxx...:
    blabla
elif xxx...:
    blabla...
else:
    blabla...
  • python 有一些关键字和C不一样,比如说and, or, not, in之类的

  • lendel不是list和dic的方法

  • join是string的方法,因为返回的是一个string

  • () - 元组

  • [] - 数组

  • {} - 字典

  • print可以这样用print(string, number)

  • **是python中的幂操作符

  • string不可变,listdict可变

  • string可以使用*+

  • list可以使*+

  • 这样也可以强势插入(尽管推荐使用insert和append函数):

alist = ['a', 'd', 'f']
alist[1:1] = ['b', 'c']  # [`a`, 'b', 'c', 'd', 'f']
print alist
alist[4:4] = ['e']  # [`a`, 'b', 'c', 'e', 'd', 'f']
print alist
  • variable refers to object.
  • 不可变的类型,比如string,被python优化为相同的string指向同一地址。但对于不可变的类型比如list和dic则指向不同的地址。
a = 'banana'
b = 'banana'
print(a==b) #True
print(a is b)   #True
print("next part...\n")

aList = ['1', 1]
bList = ['1', 1]
print(aList == aList)   #True
print(aList is bList)   #False
bList[1] = 'haha'
print(aList)    #['1', 1]
print('next part...\n')
  • alias操作的意思是起个别名,这个对于mutable的数据类型尤其需要注意,python会默认将他们优化为 指向相同的内存地址。
alist = [4,2,8,6,5]
blist = alist
print(alist == blist)   #True
print(alist is blist)   #True
blist[3] = 999
print(alist)    #[4, 2, 8, 999, 5],这里改的是blist,alist也跟着变了

# 如果要深拷贝数组:
blist = alist[:]
print(alist == blist)   #True
print(alist is blist)   #False

# 字典的话请使用内部函数copy
acopy = opposites.copy()
acopy['right'] = 'left'  # does not change opposites
  • for可以遍历item也可以遍历index:

    • 遍历item:for item in alist:
    • 遍历index:for i in range(len(list)):
  • 最简单的文件操作方式:

filename= "yourfile.txt"
fileref = open(filename,"r")
for lin in fileref: # 比readlines要好,因为不需要一次读取整个文件
    ## operations on lin
fileref.close() 
  • dic在赋值的时候,如果key不存在,会立刻创建一个key而不会有runtime error。

  • 函数参数的默认值是在定义(define)的时候决定的,而不是在调用(invoke/call)的时候。比如说:

value = 10
def f(x = value):
  print("x is:", x)

value = 1
f() # x is 10
  • 函数参数的默认值如果是可变对象的话,这个对象会在每次调用的时候共享。比如说:
def f(a, L=[]):
        L.append(a)
        return L
    
print f(1)
print f(2)
print f(3)
print f(4, ["Hello"])
print f(5, ["Hello"])
  • 单元素tuple的声明需要在最后加上逗号,否则会被看作基本类型
t = (5,)
print type(t)

x = (5)
print type(x)

你可能感兴趣的:(Python的小技巧)