hhajhh 发表于 2018-8-16 11:01:05

python 学习之 PythonAdvance2

#!/usr/bin/python  
#coding=utf-8
  
#循环设计
  
#范围函数
  
S = 'abcdefghijk'             #a b c d e f g h i j k
  
for i in range(0, len(S), 2):#0 1 2 3 4 5 6 7 8 9 10 11
  
    print S
  
print len(S)
  
#遍历数组
  
S = 'abcdefghijk'
  
for (index, char) in enumerate(S):
  
    print index
  
    print char
  
#多个等长的序列
  
ta =
  
tb =
  
tc = ['a', 'b', 'c']
  
for (a, b, c) in zip(ta, tb, tc):
  
    print(a, b, c)
  
#分解聚合
  
ta =
  
tb =
  
# cluster
  
zipped = zip(ta,tb)
  
print (zipped)
  
# decompose
  
na, nb = zip(*zipped)
  
print(na, nb)
  
#循环对象
  
f = open('test.txt')
  
f.next()
  
f.next()
  
f.next()
  
f.next()
  
f.next()
  
f.next()
  
f.next()
  
for line in open('test.txt'):
  
    print line
  
#生成器
  
def gen():
  
    a = 100
  
    yield a
  
    a = a*8
  
    yield a
  
    yield 1000
  
for i in gen():
  
    print i
  
def gen():
  
    for i in range(4):
  
      yield i
  
G = (x for x in range(4))
  
#表推导
  
L = []
  
for x in range(10):
  
    L.append(x**2)
  
print L
  
L =
  
print L
  
#函数对象
  
#lambda函数
  
func = lambda x,y: x + y
  
print func(3, 4)
  
def func(x, y):
  
    return x + y
  
print func(3, 4)
  
#函数作为参数传递
  
def test(f, a, b):
  
    print 'test'
  
    print f(a, b)
  
test(func, 3, 5)
  
def U(a, b, c):
  
    print 'U'
  
    print a(b, c)
  
U(func, 5, 6)
  
#map()函数,map()的功能是将函数对象依次作用于表的每一个元素
  
re = map((lambda x:x+3),)
  
print re
  
re = map((lambda x,y: x+y),,)
  
print re
  
#filter()函数,如果函数对象返回的是True,则该次的元素被储存于返回的表中
  
def func(a):
  
    if a > 100:
  
      return True
  
    else:
  
      return False
  
print filter(func, )
  
#reduce()函数,reduce可以累进地将函数作用于各个参数
  
print reduce((lambda x, y: x + y), )
  
#错误处理
  
re = iter(range(5))
  
try:
  
    for i in range(100):
  
      print re.next()
  
except StopIteration:
  
    print 'here is end ',i
  
print 'HaHaHaHa'
  
'''
  
re = iter(range(5))
  
for i in range(100):
  
    print re.next()
  
print 'HaHaHaHa'
  
try:
  
    print(a*2)
  
except TypeError:
  
    print("TypeError")
  
except:
  
    print("Not Type Error & Error noted")
  
def test_func():
  
    try:
  
      m = 1/0
  
    except NameError:
  
      print("Catch NameError in the sub-function")
  
try:
  
    test_func()
  
except ZeroDivisionError:
  
    print("Catch error in the main program")
  
print 'Lalala'
  
raise StopIteration('this is error')
  
print 'Hahaha'
  
'''
  
#动态类型
  
a = 3
  
a = 'au'
  
print a
  
a = 5
  
b = a
  
a = a + 2
  
print a
  
print b
  
L1 =
  
L2 = L1
  
L1 = 1
  
print L1, L2
  
L1 =
  
L2 =L1
  
L1 = 10
  
print L2
  
#从动态类型看函数的参数传递
  
def f(x):
  
    x = 100
  
    print x
  
a = 1
  
f(a)
  
print a
  
def f(x):
  
    x = 100
  
    print x
  
a =
  
f(a)
  
print a
  
xl =
  
yl =
  
L =
  
print L
  
#通过参数传递,判断数字、字符串、list、tuple、词典等数据类型是否为可变数据对象
  
a = 2
  
b = '啊哈'
  
c =
  
d = (1, 2, 3)
  
e = {'tom': 11, 'sam': 57, 'lily': 100}
  
def num(x):       #数字
  
    x = 100
  
    print x
  
num(a)
  
print a
  
def str(x):      #字符串
  
    x = 'ade'
  
    print x
  
str(b)
  
print b
  
def list(x):      #list
  
    x = 100
  
    print x
  
list(c)
  
print c
  
def tuple(x):       #tuple
  
    x = 100
  
    print x
  
    tuple(d)
  
    raise StopIteration()
  
print d
  
def dic(x):         #词典
  
    x['tom'] = 100
  
    print x
  
dic(e)
  
print e


页: [1]
查看完整版本: python 学习之 PythonAdvance2