python 入门(一)

函数

1. 有 参数, 返回值

>>> def add(x):
	x=x+1
	return x


>>> add(3)
4
>>> a=add(2)
>>> a
3
>>> print a
3

2.   默认参数

>>> def f(arg1,arg2=2,arg3=3):
	print 'arg1 = ', arg1
	print 'arg2 = ', arg2
	print 'arg3 = ', arg3

	
>>> f(1)
arg1 =  1
arg2 =  2
arg3 =  3
>>> f(1,3,3)
arg1 =  1
arg2 =  3
arg3 =  3

3. 递归


"""非递归方式呈现"""
sum = 0
for obj in range(1,101):
    sum+=obj
print sum

""""1+2+3+...+100"""
def foo(n):
    if n>0:return n+foo(n-1)
    if n<=0:return 0
print foo(100)

"""阶乘"""
def fac(n):
    if n==0 or n==1:
        return 1
    else:
        return n*fac(n-1)
print fac(10)    

  Python实现递归遍历文件夹目录

#! /usr/bin/python
# filename : scandir.py

import os

def scandir(startdir, target) :
    os.chdir(startdir)
    for obj in os.listdir(os.curdir) :
        if obj == target :
            print os.getcwd() + os.sep + obj
        if os.path.isdir(obj) :
            scandir(obj, target)
            os.chdir(os.pardir) #!!!

startdir = raw_input('Please input startdir: ')
target = raw_input('Please input target: ')
scandir(startdir, target)


'''
os.chdir()——改变目录到指定目录
os.curdir:返回当前目录('.')
os.listdir()返回指定目录下的所有文件和目录名
os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径
os.sep 可以取代操作系统特定的路径分割符
os.pardir 获取当前目录的父目录字符串名:('..')
os.path.join(path,name):连接目录与文件名或目录

'''

参考自: http://blog.chinaunix.net/uid-26137687-id-2183259.html


4. 嵌套函数


def f():
    char='hello'
    print char 
def f1():
    print "world"
    f()
结果:
>>> f1()
world
hello

5.  for 循环

for a in [3,4.4,'life']:
    print a

idx = range(5)
print idx
结果:
idx是[0,1,2,3,4]

for a in range(10):
    print a**2
结果:
>>> 
0
1
4
9
16
25
36
49
64
81

for i in range(10):
    if i == 2: 
        continue
    elif i==5:
        break
    print i
结果;
>>> 
0
1
3
4

a = ['cat', 'window', 'defenestrate']
for x in a:
     print x, len(x)
for x in a[:]: # make a slice copy of the entire list
    print x,len(x)
结果:
>>> 
cat 3
window 6
defenestrate 12
cat 3
window 6
defenestrate 12

字符串

strcpy(sStr1,sStr2)

sStr1 = 'strcpy'
sStr2 = sStr1
sStr1 = 'strcpy2'
print sStr2
print sStr1

结果:
>>> 
strcpy
strcpy2

strcat(sStr1,sStr2)


#strcat(sStr1,sStr2)
sStr1 = 'strcat'
sStr2 = 'append'
sStr1 += sStr2
print sStr1

strchr(sStr1,sStr2)


#strchr(sStr1,sStr2)  查找字符< 0 未找到 
sStr1 = 'strchr'
sStr2 = 's'
nPos = sStr1.index(sStr2)
print nPos #0

将字符串中的大小写转换

#strlwr(sStr1)
sStr1 = 'JCstrlwr'
sStr1 = sStr1.upper()
#sStr1 = sStr1.lower()
print sStr1 #JCSTRLWR

追加指定长度的字符串


#strncat(sStr1,sStr2,n)
sStr1 = '12345'
sStr2 = 'abcdef'
n = 3
sStr1 += sStr2[0:n]
print sStr1 #12345abc

查找字符串


#strstr(sStr1,sStr2)
sStr1 = 'abcdefg'
sStr2 = 'cde'
print sStr1.find(sStr2)# 2

分割字符串


s = 'ab,cde,fgh,ijk'
print(s.split(','))
#['ab', 'cde', 'fgh', 'ijk']


参考自: http://www.jb51.net/article/47956.htm

os模块

http://www.jb51.net/article/57995.htm

局部变量和全局变量

在Python中的任何变量都有其特定的作用域,比如在一个函数中定义的变量一般只能在该函数内部使用,这些只能在程序的特定部分使用的变量我们称之为局部变量;比如在一个文件顶部定义的变量可以供该文件中的任何函数调用,这些可以为整个程序所使用的变量称为全局变量。


上面是从空间的角度来考察变量的局部性和全局性,如果从时间的角度来看,不妨简单地认为在程序运行的整个过程中,全局变量一直占据着内存,并且它的值可以供所有函数访问;而局部变量则是只有在其所在函数被调用时才给它分配内存,当函数返回时,其所占内存就会被释放,所以它只能供其所在的函数所访问——换句话说,当某个函数退出时,其局部变量原先所占的内存将被分配给其它函数的局部变量。打个不太贴切的比方,全局变量就好比您自己买的房子,通常一家人要在那里住上好几十年,如果我要找您要债,我会老往您家里跑;而局部变量好像旅馆,今天您租住这件房间,我可以到这个房间来找您,但是到明天再来这间房间的话,找到的可能就是别人了。
# -*- coding: cp936 -*-
#定义全局变量
globalInt = 9

#定义一个函数
def myAdd():
    <span style="white-space:pre">					</span>localInt = 3     #在函数中定义一个局部变量
   <span style="white-space:pre">			</span> return globalInt + localInt

#测试变量的局部性和全局性
print myAdd() //12
print globalInt //9
<span style="white-space:pre">			</span>print localInt //<span style="color: rgb(51, 51, 51); font-family: 宋体; font-size: 14px; line-height: 28px; text-indent: 28px; background-color: rgb(248, 248, 248);">错误提示说“localInt”没有定义</span>

# -*- coding: cp936 -*-
#定义全局变量
a = 'hello'
print '全局变量a =', a

#定义一个函数
def f():
    global a    #将变量a声明为全局变变量
    a = 'byby'
    print '函数f()中的变量a =',a
      
#测试变量的局部性和全局性
f()
print '全局变量a =', a
结果:
>>> 
全局变量a = hello
函数f()中的变量a = byby
全局变量a = byby






你可能感兴趣的:(python 入门(一))