Python 基础学习的几个小例子

  最近在研究动态脚本语言 Python , 出于对其语言精简度的喜欢及大学时期对 matlab 这样的数学领域语言的怀念, 再加上笔者是C++起家,Python中所涉及的del机制与特殊方法重载(类比于c++中的运算符重载)等

, 让笔者不自觉地玩起了 Python 。关于Python 发展历程与基本语法这里不再多说,主要记录一下学习过程中敲的一些样例代码。

  首先介绍一下最基本的多行、带中文字符和特殊字符的字符串打印:

# -*- coding: utf-8 -*-
#注意在首行加上上面这行注释,否则解释器会报错

print r'''中文测试/('')
来个高难度的‘’/*
哈哈!()""
'''

  关于带默认参数、可变参数的自定义函数及偏函数:

import functools

print '------------ 自定义默认参数函数 -----------------'

def power(x,n = 2):
    s = 1
    while n > 0:
        s = s * x
        n = n - 1
    return s

print power(3)
print power(3, 3)

print '------------ 算定义可变参数 -----------------'

def fn(*args):
    print args

print fn(36,'39',47)    

print '------- 函数默认参数 -----'
def myInt2(x,n = 2):
    return int(x,n)
print myInt2('1101')

print '------------ partial -----------------'
int2 = functools.partial(int,base = 2)
print int2('1001')

  生成列表打印及其在条件过滤和嵌套循环中的应用:

print '------------直接打印------------'
print range(0,13)

print '------------生成列表---------------'
print [x * x for x in range(1,8)]

print '-------------- 生成列表的高级用法 ------------------'
d = { 'Adam': 90, 'Lisa': 80, 'Bart': 68}
tdList = ['<tr><td>%s</td><td>%s</td></tr>' % (name,score) for name,score
          in d.iteritems()]
print '<table>'
print '<tr><th>Name</th><th>Score</th></tr>'
print '\n'.join(tdList)
print '</table>'
print tdList

print '------------------ 列表条件过滤 ------------------'
print [x * x for x in range(1,11) if x % 2 != 0]


print '------------- 两种方式 实现多层嵌套打印 ----------------'
print '------------ 1.传统方式 -----------'
L = []
for m in 'ABC':
    for n in '123':
        L.append(m + n)
print L

print '------------- 2.生成列表 ---------'
print [m + n for m in 'abc' for n in '123']

  关于迭代,这里以dict的迭代为例:

print '------------ enumerate ---------------'
L = ['Adam','Lisa','Bart','Paul']

for index,value in enumerate(L):
    print index,'-',value

print '------------- iteration of dict -----------'
d = {'Adam': 95, 'Lisa': 80, 'Bart': 60}


print '------ 直接打印值 --------'
print d.values()

print '------ 普能迭代 --------'
for v in d.values():
    print v
    
print '------ 省内存迭代 --------'
for v in d.itervalues():
    print v
    

print '------ 直接打印键值对  --------'
print d.items()

print '------ 键值一起迭代  --------'
for k,v in d.iteritems():
    print k,':',v

  最后提一下lambda函数,感觉它跟生成列表一样,能帮助使用者快生成一个自定义函数:

f = lambda x: x * x
print f(3)

myabs = lambda x: -x if x < 0 else x
print myabs(-11)
print myabs(12)

 

posted @ 2016-11-21 14:36  笑叹词穷  阅读(1988)  评论(0编辑  收藏  举报